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()
- Hacking Tools Windows 10
- Hacker Tools For Mac
- Kik Hack Tools
- Hack Tools For Mac
- Hacker Tools For Windows
- Hacker Tools Mac
- Game Hacking
- Best Hacking Tools 2019
- What Is Hacking Tools
- Hacker Search Tools
- Hacking Tools Github
- Hacking Tools Hardware
- Hacking Tools For Mac
- Hacker Tools Github
- Pentest Tools Website
- Hack Tools Pc
- Computer Hacker
- Easy Hack Tools
- Pentest Tools Url Fuzzer
- Hacking Tools For Windows Free Download
- Hacking Apps
- Hacking Tools Name
- How To Install Pentest Tools In Ubuntu
- How To Hack
- Hacking Tools Pc
- Hacking Tools Mac
- Pentest Tools For Mac
- Bluetooth Hacking Tools Kali
- Hacker Tools
- Hacking Apps
- Pentest Tools Website Vulnerability
- Bluetooth Hacking Tools Kali
- Hack Tools Mac
- Hack Tools Download
- Pentest Tools Android
- Pentest Tools
- Pentest Tools Linux
- Pentest Tools Android
- Hacking Tools For Windows 7
- Tools 4 Hack
- Hack Tools For Ubuntu
- Hacker Tool Kit
- Hacker Hardware Tools
- Hacker Tools Linux
- Nsa Hacker Tools
- Github Hacking Tools
- Hackers Toolbox
- Growth Hacker Tools
- Hacking Tools For Mac
- Hacking Tools For Windows 7
- Pentest Tools For Windows
- Pentest Tools Kali Linux
- Wifi Hacker Tools For Windows
- Hacker Tools Hardware
- Pentest Tools For Android
- Pentest Tools Windows
- Hacker Tools Apk
- Easy Hack Tools
- Blackhat Hacker Tools
- Hack Tool Apk
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Framework
- What Is Hacking Tools
- Pentest Tools Framework
- Hacker Tools Mac
- Tools 4 Hack
- Hacking Tools Free Download
- Pentest Tools Kali Linux
- Kik Hack Tools
- Hacker Search Tools
- Hacking Tools Windows
- Hacker Tools For Mac
- Hacking Tools 2019
- Hacker Tools Online
- Hack Tools For Ubuntu
- Hacker Tools For Mac
- Hacker Tools Hardware
- New Hack Tools
- Hacker Tools 2019
- Hack Tools 2019
- Hacker Tools List
- Game Hacking
- Hack Tools For Windows
- Best Hacking Tools 2020
- Pentest Tools Linux
- Hacker Tools List
- Pentest Tools Url Fuzzer
- Hacker Tools Free
- Pentest Tools Windows
- Pentest Automation Tools
- Hack And Tools
- Pentest Tools Nmap
- Pentest Tools Website
0 comentarios:
Publicar un comentario