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()
- Ethical Hacker Tools
- Pentest Tools Online
- Hacking Tools 2020
- Hack Tools Pc
- Hacker Tools
- Hacking Tools Download
- Top Pentest Tools
- Hacking Tools For Beginners
- Wifi Hacker Tools For Windows
- Nsa Hacker Tools
- Best Pentesting Tools 2018
- Tools Used For Hacking
- Pentest Tools Alternative
- Kik Hack Tools
- Pentest Tools Android
- Pentest Tools Subdomain
- Hacking Tools For Windows 7
- Pentest Tools List
- Nsa Hack Tools
- Free Pentest Tools For Windows
- Hacker Tools List
- Hacker Tools Github
- Hack Tools
- Pentest Tools
- New Hacker Tools
- Pentest Tools Open Source
- Pentest Tools Port Scanner
- Hacker Search Tools
- Hacking Tools For Kali Linux
- New Hacker Tools
- Pentest Tools Bluekeep
- Hacking Apps
- Tools For Hacker
- Nsa Hack Tools
- Hacking Tools 2019
- Pentest Tools List
- World No 1 Hacker Software
- Hacking Tools Windows 10
- Pentest Tools Linux
- Hacking App
- Pentest Tools Port Scanner
- Hacking Tools 2020
- Android Hack Tools Github
- Hacker Tools Apk
- Hacking Tools Pc
- Hacking Tools Software
- Best Pentesting Tools 2018
- Hacker Tools For Pc
- Pentest Tools For Mac
- Pentest Tools Website
- Hacking Tools Hardware
- Hacking Tools Kit
- Hacking Tools Kit
- Pentest Tools Free
- Pentest Recon Tools
- Tools For Hacker
- Hack Apps
- Hacking Tools And Software
- Pentest Tools Alternative
- Hacking App
- Hacker Techniques Tools And Incident Handling
- Hack Tool Apk
- Hack Tools Online
- Pentest Tools Linux
- Pentest Tools Github
- Pentest Tools For Ubuntu
- Hacking Tools For Mac
- Pentest Automation Tools
- Android Hack Tools Github
- Hacker Tools For Ios
- Hacking Tools Free Download
- Hacker Tools Mac
- Hack Tools
- Hack Tools Pc
- Hacker Search Tools
- Pentest Tools Github
- Hack Tools Online
- Pentest Tools Online
- Tools For Hacker
- Hackers Toolbox
- Pentest Tools List
- Hacker Tools For Ios
- Hacker Tools Software
- Hacker Security Tools
- Pentest Tools Port Scanner
- Nsa Hack Tools
- Hacker Tools Mac
- Hacking Tools Hardware
- Pentest Tools Apk
- Hacking Tools Windows 10
- Pentest Tools Linux
- Pentest Tools Android
- Hack Tools Pc
- Tools For Hacker
- Hack Website Online Tool
- Hacker Tools For Mac
- Hacker Tools For Ios
- Hack App
- Kik Hack Tools
- Underground Hacker Sites
- Hacking Tools For Windows Free Download
- Hacking Tools For Windows Free Download
- Hacker
- Pentest Tools List
No comments:
Post a Comment