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()
Continue reading
- Hacker Tools
- Nsa Hack Tools
- Pentest Tools Review
- Hacking Tools 2019
- Hack Tools Mac
- Beginner Hacker Tools
- Github Hacking Tools
- Hacking Tools For Windows
- Hack Tools Online
- Pentest Tools Apk
- Hack Tools 2019
- Hack Tools Pc
- World No 1 Hacker Software
- Hacker Tools Mac
- Pentest Tools For Ubuntu
- Hacker Tools Mac
- Hacker Security Tools
- What Are Hacking Tools
- Best Hacking Tools 2020
- Hack Tools For Pc
- Pentest Tools For Windows
- New Hacker Tools
- Top Pentest Tools
- Hacking Tools For Pc
- Hacker Tools 2020
- Hack Tools
- Hacker Tools Online
- Hacker Tools Linux
- Hacking Tools For Pc
- Hacker Tools For Windows
- Pentest Tools
- Best Hacking Tools 2020
- Hacking Tools Windows
- Hacking Tools Usb
- How To Make Hacking Tools
- Hacker Tools Hardware
- Hacker Tools Free
- Hacker Tools
- Hack Tools 2019
- Nsa Hack Tools Download
- Game Hacking
- Pentest Tools Open Source
- Hack Tools For Games
- Pentest Tools For Android
- Pentest Tools Find Subdomains
- Hack Rom Tools
- Hacker Tools
- Nsa Hack Tools Download
- Hacker Security Tools
- Hack Tools Pc
- Hack Tools For Pc
- Android Hack Tools Github
- Best Hacking Tools 2019
- Hacker Tools Github
- Pentest Recon Tools
- Hack Tools
- Pentest Tools Free
- Pentest Tools List
- Hacker
- Hacking Tools Windows 10
- Hacker Tools For Mac
- Hackrf Tools
- Github Hacking Tools
- Hacker Tools Free
- Pentest Tools Download
- What Is Hacking Tools
- Pentest Tools Free
- Hack Tools Download


Nincsenek megjegyzések:
Megjegyzés küldése