7afd470eb0
Now you can "make single_bind_tcp_shell", or the like, and build one payload instead of the kludgy embedded shell script that always builds all of them. Need to do the same with BSD.
44 lines
1.2 KiB
Makefile
44 lines
1.2 KiB
Makefile
STAGERS=stager_sock_bind stager_sock_bind_udp stager_sock_bind_icmp \
|
|
stager_egghunt stager_sock_find stager_sock_reverse \
|
|
stager_sock_reverse_icmp stager_sock_reverse_udp \
|
|
stager_sock_reverse_udp_dns
|
|
STAGES=stage_tcp_shell stage_udp_shell
|
|
SINGLE=single_adduser single_bind_tcp_shell single_find_tcp_shell \
|
|
single_reverse_tcp_shell single_reverse_udp_shell single_exec
|
|
|
|
OBJS=${STAGERS} ${STAGES} ${SINGLE}
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .asm .hex .disasm .o
|
|
|
|
# Tell Make not to delete these intermediate files
|
|
.PRECIOUS: %.hex %.disasm
|
|
|
|
all: $(SINGLE) $(STAGES) $(STAGERS)
|
|
|
|
%.o: %.asm %.bin %.hex %.disasm
|
|
@nasm -o $@ -f elf $<
|
|
|
|
%.bin: %.asm
|
|
@nasm -o $@ -f bin $<
|
|
|
|
# Replace 00 with \x00. Put quotes at beginning and end of line. Put plus at
|
|
# end of all lines but the last. This ends up outputting an escaped string
|
|
# suitable for use in a Ruby script.
|
|
%.hex: %.bin
|
|
@xxd -c 16 -ps $< | \
|
|
sed -e 's/\([0123456789abcdef][0123456789abcdef]\)/\\x\1/g' \
|
|
-e 's/^/"/;s/$$/"/;$$ b;s/$$/+/;' > $@
|
|
|
|
%.disasm: %.bin
|
|
@ndisasm -b 32 $< > $@
|
|
|
|
$(SINGLE) $(STAGES) $(STAGERS): %: %.o
|
|
@echo "Building $@... (`wc -c $(<:.o=.bin)|awk '{print $$1}'` bytes)"
|
|
@ld -i -m elf_i386 $< -o $@
|
|
@chmod +x $@
|
|
|
|
|
|
clean:
|
|
rm -f *.bin *.tmp *.o *.hex ${OBJS} *.disasm
|