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 word
- Hackers Toolbox
- What Is Hacking Tools
- Hacker Tools Hardware
- Hack Tools Mac
- What Is Hacking Tools
- Hacking Tools For Kali Linux
- Growth Hacker Tools
- Computer Hacker
- Pentest Tools Download
- Beginner Hacker Tools
- New Hack Tools
- Hacking Tools Free Download
- Pentest Tools Linux
- Hacker Tools Free
- Hacking Tools And Software
- Pentest Box Tools Download
- Bluetooth Hacking Tools Kali
- Hacking Tools Usb
- Hacking Tools 2019
- Underground Hacker Sites
- What Are Hacking Tools
- Hacker Tools Online
- Hacker Tools Linux
- Hacking Tools For Windows 7
- Usb Pentest Tools
- Hacker Tools For Windows
- Pentest Tools Bluekeep
- Pentest Recon Tools
- Hack Tools Pc
- Pentest Box Tools Download
- Pentest Tools Windows
- Hack App
- Hack App
- What Are Hacking Tools
- Hacking Tools For Windows
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Review
- Pentest Tools For Windows
- Hack Tools For Mac
- Hack Tools For Games
- Tools For Hacker
- Hak5 Tools
- Pentest Tools Apk
- Pentest Tools Free
- How To Hack
- Hacking Tools Kit
- Pentest Tools Review
- Pentest Tools Open Source
- Hack Tools Github
- Best Pentesting Tools 2018
- Hacking Tools Usb
- Kik Hack Tools
- Hacker Tools Free Download
- Pentest Box Tools Download
- Hacking Tools Github
- Best Hacking Tools 2019
- Hacker Security Tools
- Pentest Tools Nmap
- Hacking Tools Mac
- Hacking Tools 2019
- Bluetooth Hacking Tools Kali
- What Are Hacking Tools
- Nsa Hack Tools
- Hack Tools For Windows
- Nsa Hack Tools Download
- Pentest Recon Tools
- Hack Tools
- Best Pentesting Tools 2018
- Physical Pentest Tools
- Hacker Tools List
- Hacker Tool Kit
- Hack Tools For Mac
- Github Hacking Tools
- How To Hack
- Hacker Tools Apk Download
- Hack And Tools
- Pentest Tools Review
- Hacking Tools Hardware
- Hack Tools Mac
- Hacking Tools 2019
- What Are Hacking Tools
- Bluetooth Hacking Tools Kali
- Pentest Tools Linux
- Tools 4 Hack
- Pentest Automation Tools
- Hacker Hardware Tools
- Hacker Tools Free
- Hacking Tools Download

.jpg)
No comments:
Post a Comment