Just connecting to the service, a 64bit cpu registers dump is received, and so does several binary code as you can see:
The registers represent an initial cpu state, and we have to reply with the registers result of the binary code execution. This must be automated becouse of the 10 seconds server socket timeout.
The exploit is quite simple, we have to set the cpu registers to this values, execute the code and get resulting registers.
In python we created two structures for the initial state and the ending state.
finalRegs = {'rax':'','rbx':'','rcx':'','rdx':'','rsi':'','rdi':'','r8':'','r9':'','r10':'','r11':'','r12':'','r13':'','r14':'','r15':''}
We inject at the beginning several movs for setting the initial state:
for r in cpuRegs.keys():
code.append('mov %s, %s' % (r, cpuRegs[r]))
The 64bit compilation of the movs and the binary code, but changing the last ret instruction by a sigtrap "int 3"
We compile with nasm in this way:
os.popen('nasm -f elf64 code.asm')
os.popen('ld -o code code.o ')
And use GDB to execute the code until the sigtrap, and then get the registers
fd = os.popen("gdb code -ex 'r' -ex 'i r' -ex 'quit'",'r')
for l in fd.readlines():
for x in finalRegs.keys():
...
We just parse the registers and send the to the server in the same format, and got the key.
The code:
from libcookie import *
from asm import *
import os
import sys
host = 'catwestern_631d7907670909fc4df2defc13f2057c.quals.shallweplayaga.me'
port = 9999
cpuRegs = {'rax':'','rbx':'','rcx':'','rdx':'','rsi':'','rdi':'','r8':'','r9':'','r10':'','r11':'','r12':'','r13':'','r14':'','r15':''}
finalRegs = {'rax':'','rbx':'','rcx':'','rdx':'','rsi':'','rdi':'','r8':'','r9':'','r10':'','r11':'','r12':'','r13':'','r14':'','r15':''}
fregs = 15
s = Sock(TCP)
s.timeout = 999
s.connect(host,port)
data = s.readUntil('bytes:')
#data = s.read(sz)
#data = s.readAll()
sz = 0
for r in data.split('\n'):
for rk in cpuRegs.keys():
if r.startswith(rk):
cpuRegs[rk] = r.split('=')[1]
if 'bytes' in r:
sz = int(r.split(' ')[3])
binary = data[-sz:]
code = []
print '[',binary,']'
print 'given size:',sz,'bin size:',len(binary)
print cpuRegs
for r in cpuRegs.keys():
code.append('mov %s, %s' % (r, cpuRegs[r]))
#print code
fd = open('code.asm','w')
fd.write('\n'.join(code)+'\n')
fd.close()
Capstone().dump('x86','64',binary,'code.asm')
print 'Compilando ...'
os.popen('nasm -f elf64 code.asm')
os.popen('ld -o code code.o ')
print 'Ejecutando ...'
fd = os.popen("gdb code -ex 'r' -ex 'i r' -ex 'quit'",'r')
for l in fd.readlines():
for x in finalRegs.keys():
if x in l:
l = l.replace('\t',' ')
try:
i = 12
spl = l.split(' ')
if spl[i] == '':
i+=1
print 'reg: ',x
finalRegs[x] = l.split(' ')[i].split('\t')[0]
except:
print 'err: '+l
fregs -= 1
if fregs == 0:
#print 'sending regs ...'
#print finalRegs
buff = []
for k in finalRegs.keys():
buff.append('%s=%s' % (k,finalRegs[k]))
print '\n'.join(buff)+'\n'
print s.readAll()
s.write('\n'.join(buff)+'\n\n\n')
print 'waiting flag ....'
print s.readAll()
print '----- yeah? -----'
s.close()
fd.close()
s.close()
- Kik Hack Tools
- Usb Pentest Tools
- Computer Hacker
- Hackrf Tools
- Hacking Tools Online
- Underground Hacker Sites
- Hacker Tools 2019
- Kik Hack Tools
- Easy Hack Tools
- Underground Hacker Sites
- Hack Tools For Ubuntu
- Nsa Hack Tools Download
- Hacking Tools For Pc
- Hacker Search Tools
- Pentest Tools Kali Linux
- Pentest Tools Kali Linux
- Pentest Tools For Ubuntu
- Hacking Tools Windows 10
- Hacker Tools Mac
- Hacking Tools Hardware
- Hack Tools For Mac
- Pentest Reporting Tools
- Hack Tools Download
- Pentest Tools Free
- Wifi Hacker Tools For Windows
- Pentest Tools Download
- Hacking Tools And Software
- Growth Hacker Tools
- Hack Tools For Pc
- Hacking Tools For Windows Free Download
- Hacker Tools For Ios
- What Are Hacking Tools
- Ethical Hacker Tools
- Hack Tool Apk No Root
- Hack Tools
- Hacking Tools Windows
- Usb Pentest Tools
- Hack Tools For Ubuntu
- Black Hat Hacker Tools
- Wifi Hacker Tools For Windows
- Hack Tools Mac
- Hacking Tools 2020
- Hacker Tools Free
- Hacking Tools Download
- Hacking Tools For Pc
- Pentest Tools Kali Linux
- Nsa Hack Tools Download
- How To Hack
- Hacking Tools For Beginners
- Pentest Tools Open Source
- Pentest Recon Tools
- Hacker Techniques Tools And Incident Handling
- Usb Pentest Tools
- Hack Tools For Windows
- Pentest Tools Apk
- Hacking App
- Hacking Tools For Mac
- Pentest Tools Tcp Port Scanner
- What Are Hacking Tools
- Hackrf Tools
- Bluetooth Hacking Tools Kali
- Hacking Tools 2019
- Bluetooth Hacking Tools Kali
- Kik Hack Tools
- Pentest Tools Online
- Hacker Hardware Tools
- Hak5 Tools
- Hack Apps
- Computer Hacker
- Top Pentest Tools
- Pentest Tools Apk
- Wifi Hacker Tools For Windows
- Hack Tool Apk No Root
- Ethical Hacker Tools
- Pentest Box Tools Download
- Install Pentest Tools Ubuntu
- Ethical Hacker Tools
- Pentest Automation Tools
- Hack Tool Apk
- Hack Tools 2019
- Hacking Tools
- Hacking Tools For Windows
- Hacker Tools List
- Beginner Hacker Tools
- Hack Tools For Ubuntu
- Pentest Tools For Ubuntu
- Pentest Tools Github
- Pentest Tools Download
- Pentest Tools For Ubuntu
- Hacking Tools Download
- New Hack Tools
- Hacker Search Tools
- Hacker Tools Mac
- Pentest Tools For Mac
No hay comentarios:
Publicar un comentario