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()
More information
- Tools 4 Hack
- Nsa Hack Tools Download
- Pentest Tools For Mac
- Hacking Tools Software
- Hack Tools
- Top Pentest Tools
- Black Hat Hacker Tools
- Hacker Tools 2019
- Hack Tools
- Pentest Tools Find Subdomains
- Black Hat Hacker Tools
- Hacker Tools Online
- Tools 4 Hack
- Hack Tools For Mac
- Pentest Tools For Android
- Hacker Tools Free Download
- Hack Tools For Ubuntu
- Termux Hacking Tools 2019
- Black Hat Hacker Tools
- Nsa Hacker Tools
- Usb Pentest Tools
- Pentest Tools
- Hacking Tools Windows 10
- Hacker Security Tools
- Hacking Tools And Software
- Hacker Security Tools
- World No 1 Hacker Software
- Hack Tools Github
- Nsa Hacker Tools
- Hacker Tool Kit
- Pentest Tools For Mac
- Hack Tools For Pc
- Hacker Tools Github
- Hack Tools 2019
- Hacking Tools For Kali Linux
- Physical Pentest Tools
- Hacker Tools For Windows
- What Are Hacking Tools
- Nsa Hack Tools Download
- Android Hack Tools Github
- Hak5 Tools
- Pentest Tools Website
- Nsa Hacker Tools
- Hack Tools Mac
- Easy Hack Tools
- Hacking Tools For Mac
- Pentest Tools Github
- Hacker Security Tools
- Hacker
- Pentest Tools Github
- Hacker Tools Free Download
- Hack Apps
- Hack Tools Github
- Hacker Tools Online
- Hack And Tools
- Hack Tools
- Hacker Tools Free
- Hackrf Tools
- Hacker
- Github Hacking Tools
- Pentest Tools Free
- Hack Tools Pc
- Hacking Tools Software
- Best Hacking Tools 2019
- Top Pentest Tools
- Hacker Tools 2019
- Hacker Tools Software
- Hacker Tools
- Hacking Tools Download
- Hacking Tools 2020
- Hacking Tools Software
- Pentest Tools Bluekeep
- Hacking Tools For Beginners
- New Hacker Tools
- Pentest Tools Alternative
- Kik Hack Tools
- Hack App
- What Are Hacking Tools
- Hack Tools
- Hacker Security Tools
- Hacker Search Tools
- Black Hat Hacker Tools
- Black Hat Hacker Tools
No comments:
Post a Comment