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 Windows
- Hacking Apps
- Hack Tools 2019
- Hacking Tools Github
- Pentest Tools Github
- Pentest Tools Nmap
- Hacking Tools Github
- Hacking Apps
- Hacks And Tools
- Usb Pentest Tools
- Hacking Tools Mac
- Hacking Tools Software
- Hack Tools Mac
- Hacker Tools Online
- Easy Hack Tools
- Hacking Tools 2019
- Hacking Tools Kit
- Pentest Tools Find Subdomains
- What Are Hacking Tools
- Best Hacking Tools 2020
- Hacking Tools For Kali Linux
- Pentest Tools Subdomain
- Tools Used For Hacking
- Hacker Tools For Windows
- Hacker Tools Software
- Pentest Automation Tools
- Black Hat Hacker Tools
- Hacker Tools Free
- Pentest Tools Website Vulnerability
- Pentest Tools Free
- Pentest Tools Nmap
- Hack Tools Mac
- Pentest Tools Open Source
- Hacker Tools For Ios
- Pentest Tools Alternative
- Hacking Tools For Mac
- Hack App
- Hack Tool Apk
- Pentest Tools Bluekeep
- Hacking Tools 2019
- Hacker Tools Free
- Pentest Tools Online
- Pentest Tools Website
- Hack And Tools
- Nsa Hacker Tools
- Pentest Tools For Windows
- Pentest Box Tools Download
- Computer Hacker
- Hacking App
- Pentest Tools Website Vulnerability
- Hack Tool Apk
- Hack Tool Apk No Root
- Hacker Tools Windows
- Hacking Tools For Windows Free Download
- Android Hack Tools Github
- Usb Pentest Tools
- Hacker
- Hack Tools
- Tools 4 Hack
- Hacking Tools Name
- Pentest Tools Find Subdomains
- Hacking Tools Mac
- Pentest Tools Android
- Tools For Hacker
- Pentest Tools For Android
- Pentest Tools Github
- What Is Hacking Tools
- Pentest Tools Url Fuzzer
- Pentest Tools Free
- Hacker Tools 2020
- Pentest Tools Subdomain
- Hak5 Tools
- Underground Hacker Sites
- Hacking Tools Online
- Hacking Tools Usb
- Black Hat Hacker Tools
- Hacking Tools Windows 10
- Usb Pentest Tools
- Game Hacking
- Free Pentest Tools For Windows
- Hackrf Tools
- Pentest Tools Linux
- Hacker Tools List
- Hacking Tools Name
- How To Make Hacking Tools
- Pentest Tools Review
- Hacking App
- Tools For Hacker
- Hack Tools For Games
- Pentest Recon Tools
- Pentest Tools Website Vulnerability
- Hack Tools For Pc
- Pentest Tools Url Fuzzer
- Hack App
ليست هناك تعليقات:
إرسال تعليق