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
- Underground Hacker Sites
- Hacker Tools Linux
- Hacking Tools 2019
- Termux Hacking Tools 2019
- Hacker Hardware Tools
- Hacking Tools And Software
- Pentest Recon Tools
- Free Pentest Tools For Windows
- Pentest Tools For Android
- Hacker Tools For Ios
- Hacking App
- Hacker Hardware Tools
- Best Hacking Tools 2020
- Hack Tools For Mac
- Pentest Tools List
- Hacker Tools Hardware
- Pentest Tools Port Scanner
- Tools Used For Hacking
- New Hack Tools
- Hacking Tools And Software
- Hacking Tools Download
- Hack Tools For Ubuntu
- Github Hacking Tools
- Hack Tools
- Top Pentest Tools
- Pentest Tools
- Hacking Tools Github
- New Hack Tools
- Pentest Tools Framework
- Pentest Tools For Android
- Bluetooth Hacking Tools Kali
- World No 1 Hacker Software
- Hacking Tools For Mac
- Github Hacking Tools
- Game Hacking
- Ethical Hacker Tools
- Hacker Tools Linux
- Hack Tools
- Hacking Tools For Windows 7
- Pentest Automation Tools
- Pentest Tools Nmap
- Hack Tools Download
- Pentest Tools Free
- Hacker Tools For Windows
- Pentest Tools List
- Pentest Recon Tools
- Hack Tools
- Hacking Tools For Pc
- Usb Pentest Tools
- Hacking Tools For Mac
- Android Hack Tools Github
- Hacking Tools Download
- Easy Hack Tools
- Growth Hacker Tools
- Hack Tools 2019
- Pentest Tools
- Hack Tools Download
- Hacking Tools Pc
- Hack Website Online Tool
- Free Pentest Tools For Windows
- Hacker Tools Linux
- Hacking Tools 2020
- Pentest Tools Nmap
- Hacker Tools Mac
- Hack Tools For Games
- Black Hat Hacker Tools
- What Is Hacking Tools
- Wifi Hacker Tools For Windows
- Pentest Tools List
- Hak5 Tools
- Top Pentest Tools
- Hacking Tools Free Download
- Tools Used For Hacking
- Growth Hacker Tools
- Hacking Tools For Beginners
- Pentest Tools Alternative
- Hacking Tools For Pc
- What Is Hacking Tools
- Pentest Tools Android
- Hacker Tools List
- Hack Tools For Windows
- Pentest Tools Apk
- Pentest Tools Online
- Black Hat Hacker Tools
- Hack Tools For Windows
- Nsa Hack Tools
- Hacking Tools For Beginners
- Pentest Tools Tcp Port Scanner
- Pentest Tools Website Vulnerability
- Hacker Tools Hardware
- Pentest Tools Url Fuzzer
- Android Hack Tools Github
- Hacker Tools For Ios
- Pentest Tools Android
- Hacking Tools Mac
- Hack Rom Tools
- Hacker
- Underground Hacker Sites
- Hacker Security Tools
- Best Hacking Tools 2020
- Hacking Tools 2019
- Pentest Tools Windows
- Hacking Tools Github
- Pentest Tools Framework
- Hacking Tools For Windows
- Pentest Box Tools Download
- Hacker Search Tools
- Tools 4 Hack
- Hacker Tools For Pc
- Hacker Hardware Tools
- New Hack Tools
- Hacker
- Hacking Tools 2019

No comments:
Post a Comment