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()
Related links
- Hacker Tools For Pc
- Pentest Tools Tcp Port Scanner
- Hacker Techniques Tools And Incident Handling
- Hacking Tools Hardware
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Subdomain
- Physical Pentest Tools
- Best Pentesting Tools 2018
- Hacker Tools For Windows
- Hacker Security Tools
- Hacker Tools For Windows
- Hacking Tools For Windows
- New Hack Tools
- Hacker Tools For Windows
- Hacker Tools 2019
- Hacker Tools For Pc
- Hacker Hardware Tools
- Hacker Tools For Mac
- Tools Used For Hacking
- Hacker Tools For Ios
- Hack Tools For Pc
- Hacker Tools Apk
- Hack Website Online Tool
- Hacker Tools List
- Hacker Tools For Windows
- Pentest Tools Port Scanner
- Hackrf Tools
- Hack Apps
- Hacking Tools Pc
- Hacker Tool Kit
- Pentest Tools
- Android Hack Tools Github
- Hack Tools
- Hacking Tools Software
- Pentest Tools Download
- Computer Hacker
- Hacker Tools For Windows
- Easy Hack Tools
- Hack Tools For Games
- Pentest Tools Download
- Hacking Tools Hardware
- Hack Tools For Games
- Ethical Hacker Tools
- Hacker Tools Linux
- Hacker Tools Online
- Best Pentesting Tools 2018
- Hacker Tools Free Download
- Hacker Hardware Tools
- Hacker
- Usb Pentest Tools
- Hack Apps
- Pentest Tools Apk
- Hacking Tools For Pc
- Termux Hacking Tools 2019
- Hacking Tools For Games
- Hacker Tools Free Download
- Hacking Tools For Windows Free Download
- Hacking Tools Free Download
- Pentest Tools Bluekeep
- Hacks And Tools
- Pentest Tools For Ubuntu
- Hacker Tools Apk Download
- Pentest Tools Url Fuzzer
- Pentest Tools
- Hackrf Tools
- Hacker Tools Apk
- Hacking Tools For Games
- Hacking Tools For Beginners
- Growth Hacker Tools
- Hacker Tools 2019
- Blackhat Hacker Tools
- Pentest Tools Free
- Blackhat Hacker Tools
- Ethical Hacker Tools
- Blackhat Hacker Tools
- Easy Hack Tools
- Ethical Hacker Tools
- Hack And Tools
- Hacker Search Tools
- Pentest Recon Tools
- Tools Used For Hacking
- Hack Website Online Tool
- Pentest Box Tools Download
- Wifi Hacker Tools For Windows
- Hacker Tools 2020
- Hacker Tools
- Hacker Tools List
- World No 1 Hacker Software
- Game Hacking
- Hacker Tools Apk
- Best Hacking Tools 2019
- Hack Tool Apk
- Hacker
- Best Hacking Tools 2019
- Game Hacking
- World No 1 Hacker Software
- Hacker Tools Windows
- Hacker Tools Hardware
- Pentest Tools
- Hack Tool Apk
- Hack Rom Tools
- World No 1 Hacker Software
- Hacking Tools 2019
- Pentest Tools For Android
- Nsa Hack Tools
- Best Hacking Tools 2020
- Hack Tools For Windows
- Hacker Tools Github
No comments:
Post a Comment