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()
- Hacking Tools For Windows 7
- Pentest Tools Free
- Pentest Automation Tools
- Hacker Tools Github
- Hacker Tools Linux
- Hacker Tool Kit
- Hack Tool Apk No Root
- Hacker Tools Online
- Hacker Tools 2020
- Pentest Tools Review
- Pentest Tools Review
- Hacker Tools Free
- Hacker Search Tools
- What Are Hacking Tools
- Easy Hack Tools
- Blackhat Hacker Tools
- Hack Tools Pc
- Pentest Tools Find Subdomains
- Pentest Tools Android
- Ethical Hacker Tools
- Hacking Tools Pc
- Best Pentesting Tools 2018
- Termux Hacking Tools 2019
- Hack Tools Mac
- Hacker Tools Windows
- Nsa Hack Tools Download
- Hack App
- Hacker Tools Mac
- Hacking Tools For Beginners
- Hacker Tools Mac
- Pentest Tools Bluekeep
- Hacking Tools For Windows 7
- Pentest Tools Subdomain
- Hack Tools
- Hacker Tools Online
- Hack App
- Hacking Tools Free Download
- Hack Tool Apk No Root
- Hack Tools For Ubuntu
- Hack Tool Apk
- Hacking Tools 2020
- Hacker Tools Mac
- Hack Tools 2019
- Usb Pentest Tools
- Hacking Tools 2019
- Pentest Tools Website
- Pentest Tools List
- Hak5 Tools
- Hacks And Tools
- Pentest Box Tools Download
- Hacking Tools Kit
- How To Hack
- What Is Hacking Tools
- Hack Apps
- Hacker Tools For Mac
- Hacker Tools Windows
- Pentest Box Tools Download
- Hacking Tools Windows 10
- Computer Hacker
- Hack Tools 2019
- Pentest Tools Apk
- Hacker Tools
- Best Pentesting Tools 2018
- Hacker Tools For Windows
- Hacker Tools Online
- Hacker Tools Apk
- How To Hack
- Bluetooth Hacking Tools Kali
- Pentest Reporting Tools
- Best Pentesting Tools 2018
- Hacking Tools Download
- Pentest Tools Find Subdomains
- Hacker Tools For Ios
- Pentest Tools For Windows
- Pentest Tools Nmap
- Hacker Techniques Tools And Incident Handling
- Hack Tools Mac
- Hacking Tools Windows 10
- Hackers Toolbox
- Hacker Tools Linux
- Hack Tools For Mac
- Tools For Hacker
- Hack Tools For Mac
- Nsa Hacker Tools
- Hacking Tools Free Download
- Pentest Box Tools Download
- Pentest Tools Bluekeep
- Hacking Tools Windows 10
- Hacker Tools Hardware
- Pentest Tools Find Subdomains
- Hack Tools Github
- Hacker Tool Kit
- Pentest Tools Bluekeep
- Pentest Tools Website
- Hacking Tools For Windows
- How To Make Hacking Tools
- World No 1 Hacker Software
- New Hacker Tools
- Hacking Tools For Kali Linux
- Hack Tools 2019
- Termux Hacking Tools 2019
- Hacker Tools 2020
No comments:
Post a Comment