1
mirror of https://github.com/rapid7/metasploit-payloads synced 2025-01-02 11:36:22 +01:00

Posix meterpreter makefile changes

* Cleans more things
* No longer removes outputs on clean
* Changes tmp directory to be more descriptive
This commit is contained in:
Joshua Drake 2013-02-22 17:49:47 -06:00 committed by James Lee
parent d30655d60c
commit b820d3ec74

View File

@ -10,10 +10,11 @@ objects += source/bionic/compiled/libssl.so
objects += source/bionic/compiled/libsupport.so
objects += source/bionic/compiled/libmetsrv_main.so
objects += source/bionic/compiled/libpcap.so
objects += data/meterpreter/msflinker_linux_x86.bin
objects += data/meterpreter/ext_server_stdapi.lso
objects += data/meterpreter/ext_server_sniffer.lso
objects += data/meterpreter/ext_server_networkpug.lso
outputs = data/meterpreter/msflinker_linux_x86.bin
outputs += data/meterpreter/ext_server_stdapi.lso
outputs += data/meterpreter/ext_server_sniffer.lso
outputs += data/meterpreter/ext_server_networkpug.lso
BIONIC=$(PWD)/source/bionic
LIBC=$(BIONIC)/libc
@ -26,7 +27,7 @@ OSSL_CFLAGS=-Os -Wl,--hash-style=sysv -march=i386 -m32 -nostdinc -nostdlib -fno-
workspace = workspace
all: $(objects)
all: $(objects) $(outputs)
debug: DEBUG=true
# I'm 99% sure this is the wrong way to do this
@ -48,17 +49,17 @@ source/bionic/compiled/libdl.so:
$(MAKE) -C $(BIONIC)/libdl && [ -f $(BIONIC)/libdl/libdl.so ]
cp $(BIONIC)/libdl/libdl.so $(COMPILED)/libdl.so
source/bionic/compiled/libcrypto.so: tmp/openssl-0.9.8o/libssl.so
cp tmp/openssl-0.9.8o/libcrypto.so source/bionic/compiled/libcrypto.so
source/bionic/compiled/libcrypto.so: posix-meterp-build-tmp/openssl-0.9.8o/libssl.so
cp posix-meterp-build-tmp/openssl-0.9.8o/libcrypto.so source/bionic/compiled/libcrypto.so
source/bionic/compiled/libssl.so: tmp/openssl-0.9.8o/libssl.so
cp tmp/openssl-0.9.8o/libssl.so source/bionic/compiled/libssl.so
source/bionic/compiled/libssl.so: posix-meterp-build-tmp/openssl-0.9.8o/libssl.so
cp posix-meterp-build-tmp/openssl-0.9.8o/libssl.so source/bionic/compiled/libssl.so
tmp/openssl-0.9.8o/libssl.so:
[ -d tmp ] || mkdir tmp
[ -d tmp/openssl-0.9.8o ] || wget -O tmp/openssl-0.9.8o.tar.gz http://openssl.org/source/openssl-0.9.8o.tar.gz
[ -f tmp/openssl-0.9.8o/Configure ] || tar -C tmp/ -xzf tmp/openssl-0.9.8o.tar.gz
(cd tmp/openssl-0.9.8o && \
posix-meterp-build-tmp/openssl-0.9.8o/libssl.so:
[ -d posix-meterp-build-tmp ] || mkdir posix-meterp-build-tmp
[ -d posix-meterp-build-tmp/openssl-0.9.8o ] || wget -O posix-meterp-build-tmp/openssl-0.9.8o.tar.gz http://openssl.org/source/openssl-0.9.8o.tar.gz
[ -f posix-meterp-build-tmp/openssl-0.9.8o/Configure ] || tar -C posix-meterp-build-tmp/ -xzf posix-meterp-build-tmp/openssl-0.9.8o.tar.gz
(cd posix-meterp-build-tmp/openssl-0.9.8o && \
cat Configure | grep -v 'linux-msf' | \
sed -e 's#my %table=(#my %table=( \
"linux-msf", "gcc:$(OSSL_CFLAGS) -DL_ENDIAN -DTERMIO -Wall::$(OSSL_CFLAGS) -D_REENTRANT::$(OSSL_CFLAGS) -ldl:BN_LLONG $${x86_gcc_des} $${x86_gcc_opts}:$${x86_elf_asm}:dlfcn:linux-shared:$(OSSL_CFLAGS) -fPIC::.so.\\$$\\$$(SHLIB_MAJOR).\\$$\\$$(SHLIB_MINOR)",\
@ -67,28 +68,28 @@ tmp/openssl-0.9.8o/libssl.so:
grep linux-msf Configure && \
./Configure --prefix=/tmp/out threads shared no-hw no-dlfcn no-zlib no-krb5 no-idea 386 linux-msf \
)
(cd tmp/openssl-0.9.8o && make depend all ; [ -f libssl.so.0.9.8 -a -f libcrypto.so.0.9.8 ] )
(cd posix-meterp-build-tmp/openssl-0.9.8o && make depend all ; [ -f libssl.so.0.9.8 -a -f libcrypto.so.0.9.8 ] )
mkdir -p source/openssl/lib/linux/i386/
cp tmp/openssl-0.9.8o/libssl.so* tmp/openssl-0.9.8o/libcrypto.so* source/openssl/lib/linux/i386/
cp posix-meterp-build-tmp/openssl-0.9.8o/libssl.so* posix-meterp-build-tmp/openssl-0.9.8o/libcrypto.so* source/openssl/lib/linux/i386/
source/bionic/compiled/libpcap.so: tmp/libpcap-1.1.1/libpcap.so.1.1.1
cp tmp/libpcap-1.1.1/libpcap.so.1.1.1 source/bionic/compiled/libpcap.so
source/bionic/compiled/libpcap.so: posix-meterp-build-tmp/libpcap-1.1.1/libpcap.so.1.1.1
cp posix-meterp-build-tmp/libpcap-1.1.1/libpcap.so.1.1.1 source/bionic/compiled/libpcap.so
tmp/libpcap-1.1.1/libpcap.so.1.1.1:
[ -d tmp ] || mkdir tmp
[ -f tmp/libpcap-1.1.1.tar.gz ] || wget -O tmp/libpcap-1.1.1.tar.gz http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
[ -f tmp/libpcap-1.1.1/configure ] || tar -C tmp -xzf tmp/libpcap-1.1.1.tar.gz
(cd tmp/libpcap-1.1.1 && ./configure --disable-bluetooth --without-bluetooth --without-usb --disable-usb --without-can --disable-can --without-usb-linux --disable-usb-linux --without-libnl)
echo '#undef HAVE_DECL_ETHER_HOSTTON' >> tmp/libpcap-1.1.1/config.h
echo '#undef HAVE_SYS_BITYPES_H' >> tmp/libpcap-1.1.1/config.h
echo '#undef PCAP_SUPPORT_CAN' >> tmp/libpcap-1.1.1/config.h
echo '#undef PCAP_SUPPORT_USB' >> tmp/libpcap-1.1.1/config.h
echo '#undef HAVE_ETHER_HOSTTON' >> tmp/libpcap-1.1.1/config.h
echo '#define _STDLIB_H this_works_around_malloc_definition_in_grammar_dot_c' >> tmp/libpcap-1.1.1/config.h
(cd tmp/libpcap-1.1.1 && patch --dry-run -p0 < ../../source/libpcap/pcap_nametoaddr_fix.diff && patch -p0 < ../../source/libpcap/pcap_nametoaddr_fix.diff)
sed -i -e s/pcap-usb-linux.c//g -e s/fad-getad.c/fad-gifc.c/g tmp/libpcap-1.1.1/Makefile
sed -i -e s^"CC = gcc"^"CC = gcc $(PCAP_CFLAGS)"^g tmp/libpcap-1.1.1/Makefile
make -C tmp/libpcap-1.1.1
posix-meterp-build-tmp/libpcap-1.1.1/libpcap.so.1.1.1:
[ -d posix-meterp-build-tmp ] || mkdir posix-meterp-build-tmp
[ -f posix-meterp-build-tmp/libpcap-1.1.1.tar.gz ] || wget -O posix-meterp-build-tmp/libpcap-1.1.1.tar.gz http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
[ -f posix-meterp-build-tmp/libpcap-1.1.1/configure ] || tar -C posix-meterp-build-tmp -xzf posix-meterp-build-tmp/libpcap-1.1.1.tar.gz
(cd posix-meterp-build-tmp/libpcap-1.1.1 && ./configure --disable-bluetooth --without-bluetooth --without-usb --disable-usb --without-can --disable-can --without-usb-linux --disable-usb-linux --without-libnl)
echo '#undef HAVE_DECL_ETHER_HOSTTON' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
echo '#undef HAVE_SYS_BITYPES_H' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
echo '#undef PCAP_SUPPORT_CAN' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
echo '#undef PCAP_SUPPORT_USB' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
echo '#undef HAVE_ETHER_HOSTTON' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
echo '#define _STDLIB_H this_works_around_malloc_definition_in_grammar_dot_c' >> posix-meterp-build-tmp/libpcap-1.1.1/config.h
(cd posix-meterp-build-tmp/libpcap-1.1.1 && patch --dry-run -p0 < ../../source/libpcap/pcap_nametoaddr_fix.diff && patch -p0 < ../../source/libpcap/pcap_nametoaddr_fix.diff)
sed -i -e s/pcap-usb-linux.c//g -e s/fad-getad.c/fad-gifc.c/g posix-meterp-build-tmp/libpcap-1.1.1/Makefile
sed -i -e s^"CC = gcc"^"CC = gcc $(PCAP_CFLAGS)"^g posix-meterp-build-tmp/libpcap-1.1.1/Makefile
make -C posix-meterp-build-tmp/libpcap-1.1.1
data/meterpreter/msflinker_linux_x86.bin: source/server/rtld/msflinker.bin
@ -137,17 +138,20 @@ clean:
depclean:
rm -f source/bionic/lib*/*.o
find source/bionic/ -name '*.a' -print0 | xargs -0 rm -f 2>/dev/null
find source/bionic/ -name '*.so' -print0 | xargs -0 rm -f 2>/dev/null
rm -f source/bionic/lib*/*.so
rm -rf source/openssl/lib/linux/i386/
rm -rf posix-meterp-build-tmp
clean-pcap:
#(cd tmp/libpcap-1.1.1/ && make clean)
#(cd posix-meterp-build-tmp/libpcap-1.1.1/ && make clean)
# This avoids the pcap target trying to patch the same file more than once.
# It's a pretty small tar, so untar'ing goes pretty quickly anyway, in
# contrast to openssl.
rm -r tmp/libpcap-1.1.1 || true
rm -r posix-meterp-build-tmp/libpcap-1.1.1 || true
clean-ssl:
(cd tmp/openssl-0.9.8o/ && make clean)
(cd posix-meterp-build-tmp/openssl-0.9.8o/ && make clean)
really-clean: clean clean-ssl clean-pcap depclean