Defcon 2015 Coding Skillz 1 Writeup
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()
Related links
- Hacking Tools 2020
- Hacking Tools Pc
- Pentest Tools For Android
- Hacking Tools
- Pentest Tools Open Source
- Hacker
- Hacks And Tools
- Pentest Tools Bluekeep
- Hacking Tools For Windows
- Hacking Tools For Windows Free Download
- Hacker Tool Kit
- Pentest Automation Tools
- Pentest Tools Find Subdomains
- World No 1 Hacker Software
- Hack Tools For Windows
- Termux Hacking Tools 2019
- Hacker Tools Free Download
- Hacking Tools 2020
- Hacking Tools 2019
- Beginner Hacker Tools
- Pentest Tools Bluekeep
- Hacker Security Tools
- Hacker Tools Hardware
- Hacker Tools 2019
- Hacker Tools Software
- Hacker Tools Software
- Pentest Tools Tcp Port Scanner
- Hacker Search Tools
- Hack Apps
- Hacker Tools For Windows
- Wifi Hacker Tools For Windows
- Hacker Hardware Tools
- Hack Tools Download
- Hacking Tools Usb
- Hacking Tools For Beginners
- Hack Tools Mac
- Hacker Tools For Windows
- Pentest Reporting Tools
- Nsa Hacker Tools
- Hacking Tools Usb
- Pentest Tools For Android
- Hacking Tools Windows 10
- Hack Tools For Pc
- Hacker Tools For Pc
- Blackhat Hacker Tools
- Best Pentesting Tools 2018
- Hacker Tools For Windows
- Hack And Tools
- Pentest Tools
- Pentest Tools Alternative
- Tools 4 Hack
- Hacking Tools For Games
- Hacker Tools Mac
- Hacks And Tools
- Hacking Tools Kit
- Pentest Tools Kali Linux
- Pentest Tools Website
- Hackrf Tools
- Kik Hack Tools
- Nsa Hack Tools
- Pentest Tools Website Vulnerability
- Hacker Tools Mac
- Hack Tool Apk No Root
- Hacker Security Tools
- World No 1 Hacker Software
- Pentest Tools For Windows
- Nsa Hack Tools
- Pentest Tools Review
- Pentest Tools Open Source
- Pentest Tools For Mac
- Hackers Toolbox
- Hacker Tools Software
- Pentest Tools Download
- Tools 4 Hack
- Hacking Tools Download
- Pentest Tools
- Pentest Tools Framework
- How To Hack
- Hack Tools Github
- Termux Hacking Tools 2019
- Hacking Tools Free Download
- Pentest Tools For Mac
- Pentest Tools Subdomain
- Pentest Tools Bluekeep
- Hacker Tools List
- Hacking Tools For Windows 7
- Termux Hacking Tools 2019
- Hacker Tools Hardware
- Android Hack Tools Github
- Hack Tools Github
- Nsa Hacker Tools
- Hacking Tools Download
- Hacker Tools Hardware
- Bluetooth Hacking Tools Kali
- Hacking Tools Online
- Hacking App
- Android Hack Tools Github
- Pentest Tools Online
- Hacking Tools Name
- Hacker Tools Mac
- Growth Hacker Tools
- Blackhat Hacker Tools
- Tools For Hacker
- Pentest Tools For Windows
- Pentest Reporting Tools
- Android Hack Tools Github
- Hacking Tools For Games
- Pentest Tools Port Scanner
- Hack Tools For Ubuntu
- Hacker Tools
- Game Hacking
- Pentest Tools Port Scanner
- Pentest Tools Website
- Hacking Tools 2020
- Hacker Tools For Mac
- Hack Tools Mac
- Hacker Search Tools
- Free Pentest Tools For Windows
- Hacking Tools For Mac
- Pentest Recon Tools
- Pentest Tools Android
- Hacking Tools For Windows
- Hacking Tools For Windows Free Download
- Hacker Tools Apk
- Hack Tools For Mac
- Best Hacking Tools 2019
- Termux Hacking Tools 2019
- How To Install Pentest Tools In Ubuntu
- Computer Hacker
- Growth Hacker Tools
- Tools 4 Hack
- Hacker Tool Kit
- Hacking App
- Hacking Tools Download
- Top Pentest Tools
- Hackers Toolbox
- Github Hacking Tools
- Wifi Hacker Tools For Windows
- Hacking Tools Mac
- Hacking App
- Growth Hacker Tools
- Hacker Hardware Tools
- Install Pentest Tools Ubuntu
- Hacker Tools Free
- Pentest Tools Website
- Pentest Tools Apk
- What Is Hacking Tools
- Hacker
- Hacking Tools Kit
- Hacking Tools For Windows Free Download
- Top Pentest Tools
- Hack Tools Online
No comments:
Post a Comment