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()
- Tools For Hacker
- Hacking Tools Hardware
- Hacking Tools For Mac
- Hacker Tools Windows
- Blackhat Hacker Tools
- Hacking Tools Free Download
- Hacks And Tools
- Physical Pentest Tools
- Hacking Tools Kit
- Hacker Tool Kit
- Best Hacking Tools 2019
- Hacker Tools For Mac
- Hacker Techniques Tools And Incident Handling
- Hacker Tools
- Pentest Tools Bluekeep
- Pentest Tools Url Fuzzer
- Game Hacking
- Pentest Tools Website Vulnerability
- Pentest Tools List
- Hacking Tools Pc
- Hacking App
- Hacker Search Tools
- Hacker Hardware Tools
- Hacking Tools For Mac
- Hack Tools
- Hacking Tools Download
- Hack Tool Apk No Root
- Hacking Tools Windows
- Wifi Hacker Tools For Windows
- Install Pentest Tools Ubuntu
- Pentest Tools Linux
- Hacker Tools Free Download
- Pentest Tools Review
- Pentest Tools Download
- Hack Website Online Tool
- Hacker Security Tools
- Best Hacking Tools 2020
- Nsa Hack Tools
- Hack Tools Pc
- Hacker Hardware Tools
- Pentest Tools Bluekeep
- Pentest Tools Website Vulnerability
- Hackrf Tools
- World No 1 Hacker Software
- Hacker Tools Software
- Hack Tools For Mac
- Pentest Tools Free
- Pentest Tools Free
- Android Hack Tools Github
- Pentest Tools Review
- Pentest Tools Framework
- Pentest Tools List
- Pentest Tools Nmap
- Hacking Tools And Software
- Hack Tool Apk
- Pentest Reporting Tools
- Hack Tools
- Hack Tools
- Nsa Hack Tools
- Hack App
- Hack Rom Tools
- Hack Tools For Windows
- Pentest Tools Find Subdomains
- Pentest Tools For Ubuntu
- Pentest Tools Url Fuzzer
- Hackers Toolbox
- Hacks And Tools
- Hack App
- Hacker Tools For Windows
- Hacking Tools For Windows Free Download
- Hack Tool Apk No Root




0 comentarios:
Publicar un comentario