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
- Hacking Tools Online
- Hacking Tools Windows
- Hack Tools Mac
- Pentest Tools Online
- Pentest Tools List
- Hacker Tools Hardware
- Hacker Tools
- Hack Rom Tools
- Pentest Tools Download
- Hack Tool Apk
- Pentest Tools Port Scanner
- Hack Tools
- Hacking Tools Windows 10
- Hack Tools For Games
- Pentest Tools Website Vulnerability
- Ethical Hacker Tools
- Termux Hacking Tools 2019
- Pentest Tools Bluekeep
- Hack Tools
- Pentest Tools Open Source
- Pentest Tools
- Hacker Tools Free
- Hacker Security Tools
- Top Pentest Tools
- Pentest Tools Free
- Hackers Toolbox
- Hacking Tools For Games
- Hack Tools For Games
- Easy Hack Tools
- Pentest Tools Open Source
- Hacker Techniques Tools And Incident Handling
- How To Make Hacking Tools
- Pentest Recon Tools
- Underground Hacker Sites
- Pentest Tools Alternative
- Pentest Tools For Windows
- Hack App
- Hacking Tools For Windows Free Download
- Nsa Hacker Tools
- Hacking Tools Mac
- Pentest Tools For Android
- Hacking Tools Online
- Pentest Tools Website Vulnerability
- Free Pentest Tools For Windows
- Hacking Tools And Software
- Hack Tools
- Pentest Tools Tcp Port Scanner
- Hacker Techniques Tools And Incident Handling
- Pentest Tools For Windows
- Hacker Tools Linux
- Hacker Tools Linux
- Hacks And Tools
- Underground Hacker Sites
- Pentest Tools Apk
- Pentest Tools Linux
- Hacker Tools 2019
- Pentest Tools For Ubuntu
- Hacking Tools For Games
- What Is Hacking Tools
- Hacking Tools
- Hacking Tools 2019
- Pentest Tools Kali Linux
- Hack Tools For Mac
- Pentest Tools Website
- Hack Tools For Windows
- Hacking Tools For Kali Linux
- Hacking Tools For Windows
- Hacking Tools Github
- Tools Used For Hacking
- How To Make Hacking Tools
- Hacking Apps
- Pentest Tools Download
- Hacker Tools For Mac
- Hack Tools Mac
- Hacker Tools Free Download
- Pentest Box Tools Download
- Hacking Tools Online
- Termux Hacking Tools 2019
- Hacker Tools Software
- Hacking Tools Usb
- Hack And Tools
- Pentest Box Tools Download
- Hacker Tools Online
- Hack Tools
- Hacking Tools Kit
- Hacker Tools For Pc
- Hacking Tools For Games
- Best Hacking Tools 2019
- Hack Apps
- Hacker Tools For Mac
- Hack Tools
- Kik Hack Tools
- Hack Tools For Ubuntu
- Hack Tools Github
- Pentest Tools Website Vulnerability
- Computer Hacker
- Nsa Hack Tools
- Pentest Tools For Android
- Pentest Tools Linux
- Pentest Tools Nmap
- Hacker Tools Github
- Pentest Tools Windows
- Hacking Tools Kit
- Pentest Tools Bluekeep
- Hacker Tools
- Hacking Tools Windows
- Hack Tools Pc
No comments:
Post a Comment