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 info
- Hacking Tools Github
- Hack Tool Apk No Root
- Hacking Tools For Pc
- Hack And Tools
- Hacker
- Pentest Tools Free
- Hacker Tools Github
- Hacking Tools For Mac
- Pentest Tools Apk
- Pentest Tools Subdomain
- Hacker Tools Linux
- Pentest Tools Subdomain
- Hack Tools For Mac
- Pentest Automation Tools
- Pentest Tools Find Subdomains
- Pentest Tools For Android
- Hackers Toolbox
- Pentest Tools Nmap
- Hack Tools For Mac
- Hack Tools
- New Hack Tools
- World No 1 Hacker Software
- Hacker Tools Hardware
- How To Install Pentest Tools In Ubuntu
- Hacker Tools For Ios
- Github Hacking Tools
- Pentest Box Tools Download
- Pentest Tools Linux
- Hacking Tools Windows 10
- Pentest Tools List
- Hack Apps
- Hacker Search Tools
- Computer Hacker
- Hacking Tools For Windows
- Blackhat Hacker Tools
- Hacker Tools For Pc
- Underground Hacker Sites
- Pentest Tools Website
- Hacking Tools Download
- Hack Tools For Pc
- Pentest Tools Linux
- Pentest Tools Nmap
- Pentest Tools Review
- Hacker Tools For Ios
- Hacking App
- Best Hacking Tools 2019
- Pentest Tools Url Fuzzer
- Hackers Toolbox
- Hacking App
- Pentest Tools Website Vulnerability
- Hacking Tools For Beginners
- Pentest Tools Download
- Pentest Reporting Tools
- Hacking Tools Mac
- Hacking Tools Download
- How To Hack
- Kik Hack Tools
- Hacking Tools Github
- Hacking Tools For Games
- Game Hacking
- Hacker Tools Windows
- Tools For Hacker
- Pentest Tools Open Source
- Hack Tools Online
- Pentest Recon Tools
- How To Install Pentest Tools In Ubuntu
- Hacking Tools Free Download
- Pentest Tools List
- Physical Pentest Tools
- Hack Tools Github
- Hacking Apps
- Pentest Tools For Android
- Pentest Box Tools Download
- Hackrf Tools
- Hacks And Tools
- Hacker Tools Free
- Hacking Apps
- Pentest Tools List
- Hacking Tools For Games
- Best Pentesting Tools 2018
- Hackers Toolbox
- Hacker Tools Windows
- New Hack Tools
- Hak5 Tools
- Hacker Tools Hardware
- Pentest Tools Port Scanner
- Pentest Tools Subdomain
- Hacking Tools Windows 10
- Hacker Tools Hardware
- Hacking Tools Usb
- Hacker Tools Github
- Hacking Tools For Kali Linux
- Hack Tool Apk No Root
- Hacker Tools Free Download
- Hack Apps
- Hack Tools For Pc
- Hacking Tools Software
- Hacking Tools For Pc
- How To Hack
- Best Pentesting Tools 2018
- Pentest Recon Tools
- Pentest Tools Website Vulnerability
- Hacking Tools For Kali Linux
- Bluetooth Hacking Tools Kali
- Hacker Tools Apk
- Hack And Tools
- Pentest Tools Apk
- Hacker Hardware Tools
- Pentest Tools Tcp Port Scanner
- Pentest Tools Kali Linux
- Pentest Tools Free
- Hacker Tools Online
- Hacker Tools Apk Download
- Hack Tools For Mac
- Pentest Tools Free
- Hacker Tools Github
- Hack Tools For Mac
- Nsa Hack Tools Download
- Pentest Tools Android
- Pentest Tools Port Scanner
- Pentest Tools For Windows
- Pentest Tools Windows
- Hacking Tools For Pc
- Hacking Tools 2019
- Pentest Tools Port Scanner
- Pentest Tools Kali Linux
- Tools 4 Hack
- Hacking Tools Kit
- New Hack Tools
- Pentest Tools Review
- Tools For Hacker
- Pentest Tools Free
- Hack Tools For Pc
- Best Pentesting Tools 2018
- Pentest Tools For Ubuntu
- Pentest Tools Url Fuzzer
- Hack Tools For Pc
- Bluetooth Hacking Tools Kali
- Hacking Tools For Beginners
- What Are Hacking Tools
- Black Hat Hacker Tools
- Hacking Tools Hardware
- Hacking Tools Mac
- How To Hack
- Hacking Tools Software
- Hack Tools For Windows
- Pentest Tools Subdomain
- Hacking Tools Name
- Hacking App
- Easy Hack Tools
- Pentest Tools For Mac
- Pentest Tools Website
- New Hack Tools
- Hacking Tools For Beginners
- Hacking Tools
- Hacker Tools Github
- Hacking Tools Name
- Hacking Tools For Games
- Pentest Tools Url Fuzzer
Comments