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()
More info
- Hacking Tools Free Download
- Pentest Tools Framework
- What Are Hacking Tools
- Best Hacking Tools 2019
- Black Hat Hacker Tools
- Pentest Tools Nmap
- Hacker Tools Linux
- Hack Tool Apk No Root
- Game Hacking
- Hack App
- Pentest Tools Website Vulnerability
- Hacking Tools And Software
- What Are Hacking Tools
- Hack Tools
- Physical Pentest Tools
- Hacking Tools 2020
- Pentest Tools Open Source
- Pentest Tools Apk
- Blackhat Hacker Tools
- Pentest Tools Website
- Tools 4 Hack
- Hack Apps
- Hacking Tools 2020
- Hacking Tools
- Hacker Tools Hardware
- Tools Used For Hacking
- Tools For Hacker
- Pentest Tools Windows
- Hacking Tools Mac
- How To Hack
- New Hack Tools
- Hack Tools
- Blackhat Hacker Tools
- Best Hacking Tools 2019
- Hacks And Tools
- Black Hat Hacker Tools
- Pentest Tools For Ubuntu
- Hacks And Tools
- Github Hacking Tools
- Hacking Tools For Pc
- Hacker Tools Free
- Hacker Tools Apk Download
- Hacker Techniques Tools And Incident Handling
- Hacking Tools 2020
- Hacker Tools Linux
- Pentest Tools Nmap
- Pentest Tools For Mac
- Nsa Hack Tools Download
- Hacker Tools Apk
- Pentest Tools Website
- Pentest Recon Tools
- Hacker Tools For Ios
- Hacker Tools For Pc
- Pentest Tools Github
- Pentest Tools Android
- Pentest Tools For Windows
- Growth Hacker Tools
- Pentest Recon Tools
- Hacking Tools For Windows 7
- Pentest Tools Find Subdomains
- Pentest Tools Linux
- Physical Pentest Tools
- Hacking Tools Free Download
- Hacking Tools Windows
- Pentest Tools Open Source
- What Is Hacking Tools
- Pentest Tools Bluekeep
- Black Hat Hacker Tools
- Tools For Hacker
- Pentest Tools Kali Linux
- Hacking Tools Online
- Hack Tools Pc
- Android Hack Tools Github
- Pentest Tools Alternative
- Pentest Tools Port Scanner
- Pentest Tools Linux
- Hacking App
- Pentest Tools Nmap
- Hacker Tools Hardware
- Hack Tools For Windows
- Pentest Tools Github
- Hacker Hardware Tools
- Hacker Tools For Windows
- Pentest Tools Website
- Hack Tools Github
- New Hack Tools
- Ethical Hacker Tools
- Bluetooth Hacking Tools Kali
- Pentest Tools List
- Hackers Toolbox
- Pentest Tools Open Source
- Pentest Tools Open Source
- Pentest Tools Tcp Port Scanner
- Pentest Tools Review
- Hacking Tools For Pc
- Hack Rom Tools
- Hacking Tools Mac
- Computer Hacker
- Hack Tools
- Pentest Box Tools Download
- Hack Apps
- Pentest Tools Android
- Hacker Tools For Windows
- Pentest Tools Port Scanner
- Pentest Recon Tools
- Pentest Tools Download
- Hacking Tools For Windows 7
- Pentest Tools Website
- What Are Hacking Tools
- Ethical Hacker Tools
- Hacking Tools For Windows
- Hacking Tools 2019
- Free Pentest Tools For Windows
- Hack Tools Download
- Pentest Tools Github
- Hacking Tools For Beginners
- Pentest Box Tools Download
- Hack Tools Online
- Physical Pentest Tools
- Hacking Tools And Software
- Hacking Tools For Mac
No comments:
Post a Comment