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()
Continue reading
- Hack App
- Easy Hack Tools
- Pentest Tools Open Source
- Physical Pentest Tools
- Pentest Tools Open Source
- Best Pentesting Tools 2018
- Hacker Tools
- Pentest Automation Tools
- Hack Tools
- Hacker
- Hack Tools Github
- Hacking Tools Kit
- Hack Rom Tools
- Hacking Tools Windows
- Pentest Recon Tools
- Black Hat Hacker Tools
- Pentest Tools Review
- Hack Tool Apk
- Nsa Hack Tools
- Hacker Tools
- Hacking Tools Download
- Blackhat Hacker Tools
- Hacker Tools 2020
- Pentest Tools Review
- Hack Tool Apk
- Android Hack Tools Github
- Hacking Tools Github
- Wifi Hacker Tools For Windows
- Hacker Tools Apk
- Pentest Tools List
- Hacker Tools Free
- Nsa Hack Tools Download
- World No 1 Hacker Software
- Best Hacking Tools 2020
- Free Pentest Tools For Windows
- Pentest Tools Alternative
- Hack Tools Mac
- Hacker Tools
- Blackhat Hacker Tools
- Hacking Tools And Software
- Hacker Tools For Ios
- Install Pentest Tools Ubuntu
- Pentest Tools Framework
- Hacking Tools For Windows
- Hack Website Online Tool
- Hack Tools Online
- Hack And Tools
- Free Pentest Tools For Windows
- Hack Tool Apk No Root
- Pentest Tools
- Pentest Box Tools Download
- Hacking Tools Github
- Pentest Tools Free
- What Is Hacking Tools
- Hacks And Tools
- Blackhat Hacker Tools
- Hack Tools Download
- Hacker Tools Software
- Hacker Tools For Windows
- Hack Tools 2019
- Blackhat Hacker Tools
- Hackrf Tools
- Free Pentest Tools For Windows
- Hacker Security Tools
- Hacker Tools Mac
- Hacker Tools Linux
- Hack Tools For Windows
- Hacker Security Tools
- Android Hack Tools Github
- New Hacker Tools
- World No 1 Hacker Software
- Hackers Toolbox
No hay comentarios:
Publicar un comentario