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 Apk Download
- Hacking Tools 2019
- Hackers Toolbox
- Blackhat Hacker Tools
- Hacker Tools For Ios
- Hacker Tools Mac
- Hacker Tools 2020
- Pentest Tools Android
- Blackhat Hacker Tools
- Blackhat Hacker Tools
- Tools 4 Hack
- Pentest Automation Tools
- Pentest Tools Website Vulnerability
- Tools 4 Hack
- Hack Tools 2019
- Pentest Tools Kali Linux
- Termux Hacking Tools 2019
- Hacks And Tools
- Hacker Tool Kit
- Pentest Tools Bluekeep
- Hack Apps
- Hack Tools
- Hacker Tools Github
- Hack Apps
- Best Pentesting Tools 2018
- Hacker
- Top Pentest Tools
- Hacker Tools Windows
- Hacking Tools For Pc
- Nsa Hack Tools Download
- Hacks And Tools
- Hacking Tools For Windows 7
- Hack Tools
- Bluetooth Hacking Tools Kali
- Kik Hack Tools
- Hacker Tools Online
- Pentest Tools Windows
- Pentest Tools Linux
- Hacker Hardware Tools
- Pentest Tools Windows
- Hack Tools
- Pentest Tools Url Fuzzer
- Pentest Tools Url Fuzzer
- Hack Tools
- Pentest Tools Online
- Beginner Hacker Tools
- Tools Used For Hacking
- Pentest Tools Free
- Wifi Hacker Tools For Windows
- Hacking Tools 2020
- Hacker Hardware Tools
- Hack Tool Apk No Root
- Pentest Tools Github
- Hacker Tools Mac
- Underground Hacker Sites
- Hack App
- Hacker Tools Software
- Hacker Tool Kit
- Pentest Recon Tools
- Hacking Tools
- Pentest Reporting Tools
- Wifi Hacker Tools For Windows
- Best Hacking Tools 2020
- Hack Website Online Tool
- Hacking Tools Kit
- Hack Tools Download
- Computer Hacker
- Pentest Tools For Android
- Black Hat Hacker Tools
- Hackers Toolbox
- Pentest Tools For Ubuntu
- Hacker Tools Mac
- Hacker Tools Hardware
- Pentest Tools Nmap
- Hacking Tools Online
- Pentest Tools Url Fuzzer
- Hack Website Online Tool
- Hacking Tools For Games
- Bluetooth Hacking Tools Kali
- Pentest Tools Linux
- Hacking Tools For Windows Free Download
- Hacker Tools Apk Download
- Usb Pentest Tools
- Hacking Tools Kit
- Termux Hacking Tools 2019
- Hacker Tools Online
- Hack Tool Apk
- Easy Hack Tools
- Best Hacking Tools 2020
- Hacker
- Hack Tools For Ubuntu
- Hacking Tools Mac
- Hack Tools 2019
- Hacking Tools Mac
- Easy Hack Tools
- Pentest Box Tools Download
- Install Pentest Tools Ubuntu
- Hack Tools Pc
- Hack Tools Mac
- Nsa Hacker Tools
- Hacker Tools For Ios
- Pentest Tools Website Vulnerability
- How To Hack

No comments:
Post a Comment