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()
Read more
- Hack Tool Apk
- What Are Hacking Tools
- Hacker Tools Online
- Hack And Tools
- Hacking Tools For Pc
- Android Hack Tools Github
- Pentest Tools Apk
- Pentest Tools Port Scanner
- Hak5 Tools
- Hacker Tools Linux
- Pentest Tools Website
- Hacking Tools For Pc
- Hacker Tools Linux
- Pentest Tools Open Source
- Hacking Tools
- Hackrf Tools
- Hack Tools Download
- Hacking Tools For Games
- Ethical Hacker Tools
- New Hack Tools
- Pentest Tools Alternative
- Hack Tool Apk No Root
- Pentest Tools Port Scanner
- Hacker Search Tools
- Pentest Tools Nmap
- Pentest Tools Tcp Port Scanner
- Hacker Tools 2019
- Pentest Tools Android
- Hacking Tools For Kali Linux
- Hacker Tools Github
- How To Make Hacking Tools
- Hacking Tools For Games
- Pentest Tools Open Source
- Hack Tools
- Hack Apps
- Hacker Tools 2020
- Pentest Tools For Windows
- Hacker Tools Free
- Hacker Tools For Ios
- Underground Hacker Sites
- Hacker Tools Software
- Hacks And Tools
- Pentest Tools Website Vulnerability
- Hacker Tools 2019
- Best Pentesting Tools 2018
- Hack Tool Apk No Root
- Hacking App
- Hacker Tools 2019
- Pentest Tools Github
- Hack Tools For Mac
- Hack Website Online Tool
- Pentest Tools Android
- Pentest Automation Tools
- Hacker Tools Online
- Hacking Tools Kit
- Black Hat Hacker Tools
- Pentest Tools Github
- Install Pentest Tools Ubuntu
- World No 1 Hacker Software
- Nsa Hack Tools Download
- Computer Hacker
- Hacking Tools 2019
- Pentest Automation Tools
- Hack Apps
- Hacking Tools Pc
- Hacking Tools And Software
- Hack App
- Hacking Tools Windows 10
- Pentest Recon Tools
- Hacker Tools For Mac
- Wifi Hacker Tools For Windows
- Best Pentesting Tools 2018
- Hacking Tools Usb
- Hacker Tools For Ios
- What Is Hacking Tools
- Hacking Tools Software
- Github Hacking Tools
- Hacker Tools Mac
- Free Pentest Tools For Windows
- Usb Pentest Tools
- Hack Tools Mac
- Pentest Tools For Ubuntu
- Game Hacking
- Pentest Tools Review
- Hacker Tools For Windows
- Hack Tools For Ubuntu
- Hacking Tools For Mac
- Hacks And Tools
- Computer Hacker
- Hack And Tools
- How To Hack
- Hacking Tools Kit
- Hack Tool Apk No Root
- Install Pentest Tools Ubuntu
- Hacking Tools Windows 10
- Hack Tool Apk No Root
- Hacker Tool Kit
- Pentest Tools Find Subdomains
- Hack App
- Pentest Tools Nmap
- Pentest Tools Apk
- Physical Pentest Tools
- Hacker
- Hack Tool Apk
- Hackrf Tools
- Hack Website Online Tool
- Hack Tools For Mac
- Hacker Tools For Pc
- Hackrf Tools
- Pentest Tools Apk
- Tools 4 Hack
- Physical Pentest Tools
- Hacking Tools Windows
- Hacking Tools For Windows Free Download
- Top Pentest Tools
- Hacker Tools Mac
- Hacker Tools 2020
- Pentest Tools Framework
- Hacking Tools 2020
- Hack Tools Pc
- Hacking Tools For Windows
No comments:
Post a Comment