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()
- Hack Tools Github
- Pentest Tools Website
- Hacking Tools For Mac
- Hack Apps
- Hack Tools Online
- Pentest Tools Open Source
- Pentest Tools Find Subdomains
- Hacker Tools 2020
- Pentest Tools Linux
- Ethical Hacker Tools
- Free Pentest Tools For Windows
- Black Hat Hacker Tools
- Hacking Apps
- Hacking Tools For Windows Free Download
- World No 1 Hacker Software
- Hacker Techniques Tools And Incident Handling
- Nsa Hack Tools Download
- Hack Tools Online
- Pentest Tools Find Subdomains
- Hacking Tools Windows 10
- Hack Tools Mac
- Pentest Tools Online
- Hacking Tools And Software
- Hacking Tools Mac
- Hack Website Online Tool
- Nsa Hack Tools
- Hack Tools For Windows
- World No 1 Hacker Software
- Hacking Tools For Games
- Hacking Tools Hardware
- Hacking Tools For Windows Free Download
- Install Pentest Tools Ubuntu
- Hacker Tools Free
- Hacker Search Tools
- Hacking Apps
- Hacking Tools And Software
- World No 1 Hacker Software
- Hack Tools For Games
- Pentest Tools Online
- Kik Hack Tools
- Hack Tools Pc
- New Hacker Tools
- Hacker
- Tools For Hacker
- Hacker Tools Github
- Hacker Search Tools
- Hacker Tools Github
- Pentest Tools Android
- Pentest Tools Android
- Pentest Tools Tcp Port Scanner
- Hacks And Tools
- Hack Tools Pc
- Tools Used For Hacking
- Pentest Tools Open Source
- Kik Hack Tools
- Hacker Tools Online
- Bluetooth Hacking Tools Kali
- Hacker Hardware Tools
- Pentest Tools List
- Hack Tools
- Hacker Tools 2019
- Hacking Tools For Pc
- How To Make Hacking Tools
- Pentest Tools Tcp Port Scanner
- How To Make Hacking Tools
- Hacker Tools Software
- How To Make Hacking Tools
- Hacking Tools For Pc
- Hacker Tools
- Hack Website Online Tool
- How To Install Pentest Tools In Ubuntu
- Pentest Tools Online
- Pentest Tools Free
- Pentest Tools Website Vulnerability
- Hacker Tools Apk Download
- Hacker Techniques Tools And Incident Handling
- Hack Rom Tools
- Hacking Tools Pc
- Hack And Tools
- Best Hacking Tools 2019
- Hacking Tools Windows 10
- Pentest Tools List
- Underground Hacker Sites
- Hacking App
- Hacker Hardware Tools
- Blackhat Hacker Tools
- Pentest Tools For Ubuntu
- Hacker Tools Software
- Install Pentest Tools Ubuntu
- Hacking App
- Hacking Tools
Nenhum comentário:
Postar um comentário