1
mirror of https://github.com/rapid7/metasploit-payloads synced 2025-03-24 18:16:24 +01:00

Add new libs and docs for the same.

This commit is contained in:
Tod Beardsley 2014-06-05 14:50:52 -05:00
parent 8d46311f8a
commit b0a0202956
3 changed files with 120 additions and 16 deletions
c/meterpreter
README.md
source/openssl/lib/win

@ -41,6 +41,17 @@ $ git submodule init && git submodule update
At this point the dependencies will be ready to use and Meterpreter should be ready to
build.
* [OpenSSL][openssl]
Occasionally, new versions of OpenSSL are released and need to be
incorporated into the Meterpreter build. See the README under
`source/openssl/lib` for build instructions. You will also need to
refresh the header files from the source tarball as well. TODO: This
entire process appears automatable given a proper build environment.
An example of updating OpenSSL is detailed in
[Pull Request #86](https://github.com/rapid7/meterpreter/pull/86).
Running the Build
-----------------
@ -190,3 +201,4 @@ Good luck!
[framework]: https://github.com/rapid7/metasploit-framework
[build_icon]: https://ci.metasploit.com/buildStatus/icon?job=MeterpreterWin
[rdi]: https://github.com/rapid7/ReflectiveDLLInjection
[openssl]: https://github.com/rapid7/meterpreter/tree/master/source/openssl

@ -0,0 +1,108 @@
# Build instructions for libeay32.lib and ssleay32.lib
These are the instructions for building static DLLs for OpenSSL for
Windows. The procedure here assumes **0.9.8za**, released June 5, 2014.
If this is not the correct version, it should be straightforward enough
to replace all references **za** with whatever is current.
## Preparing the build environment
On a 64-bit build machine (Windows 7 64-bit will do nicely):
- Download openssl from https://openssl.org
- Download ActiveState ActivePerl
- Install ActivePerl
- Download 7zip
- Install 7zip
- Download Visual Studio per Meterpreter instructions
- Install Visiual Studio Express. Takes many clicks.
- Extract source to C:\openssl-0.9.8za (whatever the correct version is)
- Create C:\openssl-0.9.8za-bin
- Create C:\openssl-0.9.8za-bin-64
- Open a Developer Command Prompt for VS2013 (from the Start menu)
## Compiling 32-Bit Binaries
- Get to the source directory:
````
cd C:\openssl-0.9.8za
````
- Start off with a clean slate:
````
rmdir /s /q out32
nmake -f ms\nt.mak clean
````
- Configure for a Win32 build target and installation directory.
````
perl Configure VC-WIN32 no-asm --prefix=C:\openssl-0.9.8za-bin
ms\do_ms
````
- Don't treat warnings as errors (because there are warnings). Edit
`ms\nt.mak` `CFLAGS` with notepad, replacing `/W3 /WX` with `/W3 /WX-`
(Hopefully, this step will not be required in future versions of
OpenSSL).
- Compile:
````
nmake -f ms\nt.mak
````
Test your results.
````
nmake -f ms\nt.mak test
````
- See the "passed all tests" statement. Yay.
- Copy to the named install directory:
- nmake -f ms\nt.mak install
Now your libs are in openssl-0.9.8za-bin\lib . Hooray!
## Compiling 64-Bit binaries
The process is quite similar.
````
cd C:/openssl-0.9.8za
rmdir /s /q out32
nmake -f ms\nt.mak clean
perl Configure VC-WIN64A no-asm --prefix=C:\openssl-0.9.8za-bin-64
ms\do_win64a
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
nmake -f ms\nt.mak install
````
## Updating Meterpeter source
Copy the resulting binaries (easiest if your build environment is a
Windows VM and your git checkout is either the host OS or another VM on
the same host). They should end up in:
https://github.com/rapid7/meterpreter/tree/master/source/openssl/lib/win
and
https://github.com/rapid7/meterpreter/tree/master/source/openssl/lib/win/x64
## Build Meterpreter
Follow the instructions at:
https://github.com/rapid7/meterpreter/blob/master/README.md
## You're done!

@ -1,16 +0,0 @@
1. Install Windows SDK in order to get the x64 build enviroment.
2. Install perl if not allready present.
3. Download the latest stable openssl source.
4. Remove the bufferoverflowu.lib references from the openssl make files as this lib is not shipped in new Win SDK.
5. Open a Windows SDK command prompt (installed into the start menu)...
C:\Program Files\Microsoft SDKs\Windows\v6.1>SetEnv /Release /x64
C:\Program Files\Microsoft SDKs\Windows\v6.1>cd c:\openssl-0.9.8k
C:\openssl-0.9.8k>perl Configure VC-WIN64A
C:\openssl-0.9.8k>ms\do_win64a
C:\openssl-0.9.8k>nmake -f ms\nt.mak
C:\openssl-0.9.8k>cd out32
C:\openssl-0.9.8k\out32dll>copy /b ssleay32.lib c:\msf3\external\source\meterpreter\source\openssl\lib\win\x64\
C:\openssl-0.9.8k\out32dll>copy /b libeay32.lib c:\msf3\external\source\meterpreter\source\openssl\lib\win\x64\
6. If the include file need to be updated copy them over.