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
- Usb Pentest Tools
- Hacker Security Tools
- Hacking Tools Mac
- Pentest Tools For Windows
- Ethical Hacker Tools
- Hacker Tool Kit
- Pentest Tools Url Fuzzer
- Hacking Tools Windows 10
- Bluetooth Hacking Tools Kali
- Hacking Apps
- World No 1 Hacker Software
- Hacking Tools Windows
- How To Hack
- Hacker Tools Apk Download
- Pentest Tools Android
- Pentest Tools Subdomain
- Hack Tools
- Hacker Tools List
- Hacking Tools For Windows
- Pentest Tools Review
- Hacking Tools For Pc
- How To Make Hacking Tools
- Hacker Tools Free
- Hack Tools Download
- Pentest Tools
- Hacking Tools Name
- Hack Tools For Windows
- Best Hacking Tools 2019
- Termux Hacking Tools 2019
- Tools For Hacker
- Hack Tools
- Hack Tools
- Hack Tools
- Pentest Tools For Mac
- Pentest Automation Tools
- Hacker Tools For Ios
- Hacker Tools
- Pentest Recon Tools
- Kik Hack Tools
- What Is Hacking Tools
- Hacker Tools Hardware
- Hacks And Tools
- Growth Hacker Tools
- Hacking Tools Online
- Hack Tools Online
- Hack Tools For Windows
- Hack Tools For Windows
- Pentest Reporting Tools
- Wifi Hacker Tools For Windows
- Hacker Tools For Mac
- Hacker Tool Kit
- Hack Tools For Ubuntu
- Pentest Tools Online
- Hack Tools
- Hacking Tools Windows
- Hack Tools Download
- Hak5 Tools
- Hack Tools Download
- Termux Hacking Tools 2019
- Hacker Tools For Pc
- Hacking Tools
- Hacking Tools Online
- Install Pentest Tools Ubuntu
- Hacker Techniques Tools And Incident Handling
- New Hacker Tools
- Hacking Tools Windows
- Hack Tools For Ubuntu
- Pentest Recon Tools
- Hacker Tools Windows
- Hack Tool Apk No Root
- Beginner Hacker Tools
- Pentest Recon Tools
- Game Hacking
- Pentest Tools Alternative
- Hack Website Online Tool
- Pentest Tools List
- What Is Hacking Tools
- Hack Tools For Pc
- Hacker Tools Mac
- Pentest Reporting Tools
- Ethical Hacker Tools
- Hacker Tools List
- Physical Pentest Tools
- Hacker Hardware Tools
- Wifi Hacker Tools For Windows
- What Are Hacking Tools
- Hacking Tools For Games
- Hacking Tools Windows
- Pentest Tools Open Source
- How To Make Hacking Tools
- Hacker Tools Apk Download
- Hacking Tools Mac
- Hacking Tools Github
ไม่มีความคิดเห็น:
แสดงความคิดเห็น