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
- Pentest Tools Online
- Hacker Tools Windows
- Hacking Tools Windows 10
- Pentest Tools For Android
- Hacker Tools Github
- Hacker Tools Hardware
- Hacker Tools Free
- Hacking App
- Hacker Tools Free
- Hack Apps
- Pentest Tools Port Scanner
- Pentest Tools Find Subdomains
- Hack Tools Mac
- Pentest Automation Tools
- Pentest Reporting Tools
- Hak5 Tools
- Hacker Tools Hardware
- Pentest Tools Port Scanner
- Hack Tools For Mac
- Hacking Tools Github
- Pentest Tools Tcp Port Scanner
- Android Hack Tools Github
- Hacking Tools Pc
- Hacking Tools For Windows 7
- Pentest Tools
- Hacking Tools Download
- Hacker Tools Apk Download
- Hack Tools Online
- Computer Hacker
- Pentest Tools Nmap
- Kik Hack Tools
- Hacking Tools
- Pentest Tools Website
- Pentest Tools Free
- Pentest Tools Github
- Hacking Tools For Beginners
- Hacker Tools Free Download
- Underground Hacker Sites
- Physical Pentest Tools
- Hacker Tools Github
- Hacker Security Tools
- Pentest Tools For Ubuntu
- Pentest Tools Website
- Hacking Tools Windows 10
- Hacking Tools For Windows Free Download
- Hacking Tools For Pc
- How To Make Hacking Tools
- Game Hacking
- Hack Tool Apk No Root
- Hacking Tools
- Hacker Tools
- Hack Apps
- Wifi Hacker Tools For Windows
- Pentest Tools Review
- Hacking Tools Online
- Hacker Tools 2020
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Subdomain
- Pentest Tools List
- Hacking Tools Name
- Hacking Tools For Windows 7
- Hacker Tools Mac
- Hacking Tools For Kali Linux
- Hacker Tools Free
0 comentarios:
Publicar un comentario