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 posts
- Hacking Tools For Pc
- Pentest Tools Android
- Beginner Hacker Tools
- Pentest Tools Url Fuzzer
- World No 1 Hacker Software
- Hacking Tools For Windows Free Download
- Hacking Tools For Games
- Pentest Tools Windows
- Underground Hacker Sites
- Pentest Automation Tools
- Blackhat Hacker Tools
- Pentest Tools Android
- Pentest Box Tools Download
- Hacking Tools Windows 10
- Hacking Tools For Pc
- Android Hack Tools Github
- Hacker Tools 2020
- Computer Hacker
- Hacker Tools Linux
- Pentest Tools Nmap
- Hack Tools Online
- New Hack Tools
- Hacking Tools Usb
- Usb Pentest Tools
- Hacking Tools Online
- Hacking Tools And Software
- Hacker Tools Hardware
- Pentest Tools Website
- Hacking Tools 2020
- Hacker Tools For Mac
- Hacking Apps
- Pentest Tools Alternative
- Hacking Tools For Windows
- Nsa Hacker Tools
- Termux Hacking Tools 2019
- Pentest Recon Tools
- Hacker Tools Apk Download
- Hacking Tools Usb
- Hacker Tools 2020
- Beginner Hacker Tools
- Hack Tools Mac
- Pentest Tools Free
- Hacking Tools Hardware
- Hack Tools
- Pentest Tools Linux
- Hacker Tools 2020
- Tools For Hacker
- Pentest Tools Windows
- Pentest Automation Tools
- Hak5 Tools
- Pentest Tools Github
- Hacker Tools Free Download
- Pentest Tools For Ubuntu
- Hacking Tools For Games
- Blackhat Hacker Tools
- Hacking Tools Download
- Hacking Tools Windows
- Hacking Tools For Windows
- Pentest Tools Open Source
- New Hacker Tools
- Hack Tools For Ubuntu
- Hack Tools
- Hacking Tools For Mac
- Pentest Tools Windows
- Hacking Tools 2020
- Hack Tools For Windows
- Hacking Tools Download
- Tools For Hacker
- Hacking Tools Download
- Bluetooth Hacking Tools Kali
- Usb Pentest Tools
- Pentest Tools For Android
- Pentest Tools Website
- Hack Tool Apk No Root
- Usb Pentest Tools
- Pentest Tools Windows
- Pentest Tools Open Source
- Hack App
- Best Hacking Tools 2019
- Best Pentesting Tools 2018
- Android Hack Tools Github
- Pentest Tools Tcp Port Scanner
- Underground Hacker Sites
- Hack Tools Download
- Hacker Tools For Ios
- Hacking Tools For Mac
- Hack Tools For Ubuntu
- Hacking Tools Windows
- Hak5 Tools
- Pentest Tools Open Source
- How To Install Pentest Tools In Ubuntu
- Hacking Tools And Software
- Hack And Tools
- Hack Tools Mac
- Hacking Tools Mac
- Nsa Hack Tools Download
- Hack And Tools
- Hack Tools
- Physical Pentest Tools
- Growth Hacker Tools
- Physical Pentest Tools
- Hacker Tools Apk
- Underground Hacker Sites
- Usb Pentest Tools
- What Is Hacking Tools
- Hacks And Tools
- Hack Tools
- Underground Hacker Sites
- Hack Tools For Pc
- Tools For Hacker
- How To Make Hacking Tools
- Pentest Box Tools Download
- Pentest Tools Port Scanner
- Wifi Hacker Tools For Windows
- Hacking Tools For Pc
- How To Make Hacking Tools
- Hacker Tool Kit
- Game Hacking
- Pentest Automation Tools
- New Hacker Tools
- Hacker Tools For Ios
- Pentest Tools Kali Linux
- Hack Tools Online
- Hack Rom Tools
- Hack Tools For Games
- Hacking Tools For Windows 7
- Hack Tools 2019
- Hacker Security Tools
- Computer Hacker
- Beginner Hacker Tools
- Hacker Tools Mac
- New Hack Tools
- Hacker Tools Apk
- Pentest Tools Port Scanner
- Hacking App
- Hacker Tools Windows
- New Hacker Tools
- Hack Tools For Mac
- Pentest Recon Tools
- Pentest Tools Url Fuzzer
- Pentest Tools Framework
- Pentest Tools For Ubuntu
- Pentest Tools Free

No comments:
Post a Comment