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 links
- Hacker Tools For Ios
- Hacker Tools Free
- Hacking Tools For Kali Linux
- Pentest Tools Nmap
- Game Hacking
- New Hacker Tools
- Hacker Techniques Tools And Incident Handling
- Hacking Tools Free Download
- Hacking Tools Hardware
- Pentest Tools For Mac
- Hacking Tools For Windows Free Download
- Hacking App
- Pentest Tools Alternative
- Hack Apps
- Hacking Tools For Windows
- Tools For Hacker
- Pentest Tools Download
- Nsa Hacker Tools
- Hacking Tools Hardware
- Hacker Tools Windows
- Hack Tools For Pc
- Install Pentest Tools Ubuntu
- Pentest Recon Tools
- Hacker Tools List
- Hack Rom Tools
- Best Hacking Tools 2019
- Hack Tools Download
- How To Hack
- Blackhat Hacker Tools
- Hacker Security Tools
- Hack Tools 2019
- Pentest Tools List
- New Hack Tools
- Termux Hacking Tools 2019
- Hack Tools Github
- Underground Hacker Sites
- Hacker Security Tools
- Nsa Hack Tools Download
- Hacker Tools Hardware
- Wifi Hacker Tools For Windows
- Hacker Tool Kit
- Hacker Security Tools
- How To Install Pentest Tools In Ubuntu
- Best Pentesting Tools 2018
- Wifi Hacker Tools For Windows
- Free Pentest Tools For Windows
- Hack Tools For Games
- Hacker Tools Mac
- Game Hacking
- Hack Apps
- Hacking Tools For Windows
- Tools 4 Hack
- Pentest Recon Tools
- Hacker Tools Apk
- Hacker Tools Apk Download
- Hackers Toolbox
- Pentest Tools For Windows
- Hacker Search Tools
- Hackers Toolbox
- Computer Hacker
- Bluetooth Hacking Tools Kali
- Beginner Hacker Tools
- Pentest Tools Free
- What Is Hacking Tools
- Hacking Tools Name
- Hack Tools For Windows
- Hack Tools For Pc
- Hacking Tools Kit
- Hacking App
- Pentest Automation Tools
- Hacking Tools Kit
- Hacker Tools Windows
- How To Install Pentest Tools In Ubuntu
- Best Pentesting Tools 2018
- Hacker Tools Apk
No hay comentarios:
Publicar un comentario