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
- Pentest Tools For Ubuntu
- Pentest Tools For Android
- Pentest Tools Apk
- Hacker Tools Free
- Android Hack Tools Github
- Pentest Reporting Tools
- Bluetooth Hacking Tools Kali
- Black Hat Hacker Tools
- Wifi Hacker Tools For Windows
- Wifi Hacker Tools For Windows
- Hacking Tools For Windows
- What Are Hacking Tools
- Hack Tool Apk
- Hack Tools For Ubuntu
- New Hacker Tools
- Pentest Tools Nmap
- Hacking Tools
- Pentest Tools Apk
- Hacker Search Tools
- Pentest Tools Github
- Hack Tool Apk No Root
- Hacker Tools Hardware
- Kik Hack Tools
- Pentest Tools Nmap
- Pentest Tools Open Source
- What Are Hacking Tools
- Hack Tools
- Hacking Tools For Windows
- Pentest Recon Tools
- Black Hat Hacker Tools
- Pentest Tools Review
- Hacking Tools For Windows 7
- New Hacker Tools
- Pentest Tools Apk
- Hacking Tools
- Pentest Tools Apk
- Hackrf Tools
- Hacking Tools Pc
- Underground Hacker Sites
- Pentest Tools Framework
- Hacking Tools Github
- How To Install Pentest Tools In Ubuntu
- Pentest Automation Tools
- Pentest Box Tools Download
- Pentest Tools For Android
- Pentest Tools Alternative
- Pentest Automation Tools
- Hack App
- Pentest Tools Bluekeep
- Android Hack Tools Github
- Hack Tool Apk
- Computer Hacker
- Pentest Tools Free
- Best Hacking Tools 2020
- Pentest Tools Free
- Android Hack Tools Github
- Hacking Tools
- Hacking Tools 2020
- Pentest Tools Port Scanner
- Hacking Tools For Windows
- Hacker Tools Apk
- Pentest Tools Tcp Port Scanner
- Pentest Tools Kali Linux
- Hacker Tools For Mac
- Hack And Tools
- Hacking Tools
- Pentest Tools Website Vulnerability
- Hacker Tools Github
- Wifi Hacker Tools For Windows
- Pentest Tools Url Fuzzer
- How To Hack
- Hacker Tool Kit
- Hacking Tools Kit
- Hack Tools For Mac
- How To Hack
- Pentest Automation Tools
- Hacker Tools 2020
- Hacking Apps
- Hack Tools
- Hacking Tools For Windows 7
- Hak5 Tools
- Hacking Tools Windows 10
- Bluetooth Hacking Tools Kali
- Hacking Tools Free Download
- Pentest Tools Apk
- Hacking Tools For Windows
- Hacking Tools 2020
- Tools 4 Hack
- Hacking Tools Name
- Hack Tools For Mac
- Hacker Search Tools
- Hack Website Online Tool
- Hacker Tools Hardware
- Best Hacking Tools 2020
- Pentest Box Tools Download

No hay comentarios:
Publicar un comentario