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
- Pentest Tools Github
- Pentest Tools Port Scanner
- Hacker
- Pentest Tools Linux
- How To Hack
- Hacking Tools Online
- What Is Hacking Tools
- Hacking Tools Download
- Hacker Tools For Windows
- Hacker Tools For Pc
- Hacking Tools Download
- Hack Tool Apk
- Best Hacking Tools 2019
- Termux Hacking Tools 2019
- Pentest Tools Port Scanner
- Hacker Tools Software
- Top Pentest Tools
- Hack Tools For Pc
- Hack Tool Apk
- Hack Tools Download
- Pentest Tools Kali Linux
- Hack Tools For Mac
- Hacking App
- Hack Tools For Mac
- Hacking Tools 2019
- How To Hack
- Nsa Hack Tools Download
- Pentest Tools List
- Computer Hacker
- Hacker Tools 2020
- Install Pentest Tools Ubuntu
- Pentest Tools Alternative
- Pentest Tools Online
- Black Hat Hacker Tools
- Hack Tools For Pc
- Hacking Tools Download
- Hack Tool Apk
- Hacker Tools Online
- Hacking Tools For Windows 7
- Hack Tool Apk No Root
- Hacking Tools Usb
- Pentest Tools Linux
- Github Hacking Tools
- Top Pentest Tools
- Hacking Tools For Games
- Nsa Hack Tools Download
- What Are Hacking Tools
- Hacker Tools Apk
- Hacking Tools Github
- Android Hack Tools Github
- Best Hacking Tools 2020
- New Hack Tools
- Hacker Tools Apk Download
- Pentest Tools For Windows
- Hack Tools
- Pentest Tools Kali Linux
- Pentest Tools Android
- Pentest Tools For Ubuntu
- Pentest Tools For Mac
- New Hacker Tools
- Hak5 Tools
- Hackers Toolbox
- Hack Tools Github
- Pentest Tools Download
- Hacking Tools For Windows
- New Hacker Tools
- Hack Tools For Mac
- Pentest Tools Open Source
- Hack And Tools
- New Hack Tools
- Hacking Tools Hardware
- Pentest Tools Download
- Termux Hacking Tools 2019
- Pentest Tools Framework
- Hack Tools For Mac
- Hacker Tools Hardware
- Hacking Apps
- Hack App
- Hacking Tools Software
- Hacker Search Tools
- Tools 4 Hack
- Termux Hacking Tools 2019
- Hack Tool Apk
- Hacking Tools For Mac
- Pentest Tools Github
- Hack App
- Black Hat Hacker Tools
- Hacking Apps
- Pentest Reporting Tools
- Hacker Tools 2019
- How To Hack
- Hacking Apps
- Hacker Tool Kit
- Best Hacking Tools 2019
No comments:
Post a Comment