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 news
- Best Pentesting Tools 2018
- Hack Tools Pc
- Pentest Automation Tools
- Hacker Tools 2019
- Nsa Hack Tools Download
- Hacker
- Hacks And Tools
- Hacker Tools For Pc
- Hacking App
- Hacker Tools Github
- Bluetooth Hacking Tools Kali
- Hack Tool Apk No Root
- Hacking Tools For Kali Linux
- Hack Tools 2019
- Hack Tools For Windows
- Termux Hacking Tools 2019
- Tools Used For Hacking
- Hack Tools For Mac
- Hacker Tools Apk
- Hacking Tools 2019
- Hacks And Tools
- Nsa Hack Tools Download
- Hack Tools For Windows
- Best Hacking Tools 2020
- Hack Tools Github
- Pentest Tools Nmap
- Hack Tools Pc
- Install Pentest Tools Ubuntu
- Pentest Tools Download
- Hak5 Tools
- New Hack Tools
- Pentest Tools Nmap
- Pentest Box Tools Download
- Pentest Tools Review
- Hacking Tools Free Download
- Pentest Tools Subdomain
- Hacking Tools For Beginners
- Computer Hacker
- Hack Tools
- Hacking Tools Software
- Hacking Tools Kit
- Underground Hacker Sites
- Pentest Tools For Windows
- Top Pentest Tools
- Hack Tool Apk No Root
- Hack Apps
- Bluetooth Hacking Tools Kali
- Hacking Tools For Games
- Pentest Tools Windows
- Hack Tool Apk No Root
- Hack Website Online Tool
- Pentest Tools Linux
- Hacker Tools Free Download
- New Hack Tools
- Pentest Tools Url Fuzzer
- Hacking Tools For Pc
- Pentest Automation Tools
- Hacking Tools And Software
- Pentest Box Tools Download
- Hacker Tools
- Pentest Tools Website
- Hacking Tools Pc
- Hacker Search Tools
- Hak5 Tools
- Free Pentest Tools For Windows
- Hack Tools For Windows
- Hack Tools For Pc
- Hacker Tools List
- Usb Pentest Tools
- Blackhat Hacker Tools
- Pentest Tools Find Subdomains
- Bluetooth Hacking Tools Kali
- Hacking Tools 2019
- Pentest Tools Online
- Android Hack Tools Github
- Hacking Tools Pc
- Computer Hacker
- Hacker Tools For Ios
- Hacking Tools Mac
- Hack App
- Hacker Tools Github
- Hacker Tools Linux
- Bluetooth Hacking Tools Kali
- Pentest Tools Open Source
- Pentest Tools Bluekeep
- Hack Rom Tools
- Hacking Tools Online
- Top Pentest Tools
- Hacking Tools Hardware
- Pentest Tools Tcp Port Scanner
- Blackhat Hacker Tools
- Hacking Tools For Windows 7
- Hacker Tools Github
- Pentest Tools Subdomain
- World No 1 Hacker Software
- Pentest Recon Tools
- Wifi Hacker Tools For Windows
- Hack Tools For Mac
- Hack Tools Mac
- Hack Tool Apk
- Beginner Hacker Tools
- Hacker Tools
- Hacker Tools Hardware
- Hacker Tools Apk
- Hacker Tools Software
- Nsa Hack Tools Download
- Hacker Tools For Pc
- Hacking Tools For Beginners
- Hacking Tools For Pc
- Hak5 Tools
- Hack Tool Apk
- Hacker Tools Free Download
- Black Hat Hacker Tools
- Hacker Tools Hardware
- Hack Tools Pc
- Hack Tools
- Computer Hacker
- Hack Tools Pc
- Hacker Tools Apk Download
- Hack Tool Apk
- Pentest Automation Tools
- Hacks And Tools
- Underground Hacker Sites
No comments:
Post a Comment