Defcon 2015 Coding Skillz 1 Writeup
Posted by iNoticiero
on martes, 25 de agosto de 2020
0
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 word
- Install Pentest Tools Ubuntu
- New Hacker Tools
- Hack Tool Apk
- Hacker Hardware Tools
- Hack Apps
- Hacker Tools List
- Hacker Tools Linux
- Underground Hacker Sites
- Pentest Tools Github
- Pentest Tools Port Scanner
- Computer Hacker
- Tools For Hacker
- Black Hat Hacker Tools
- How To Install Pentest Tools In Ubuntu
- Hacker
- Hacker Techniques Tools And Incident Handling
- What Is Hacking Tools
- Pentest Tools Alternative
- Hacking Tools Hardware
- Tools Used For Hacking
- Free Pentest Tools For Windows
- Hacking Tools Windows 10
- Hacking Tools For Mac
- Hack Tools Pc
- Hack Tools For Mac
- New Hack Tools
- Hack Tools
- Hack Tools Download
- Hacker Hardware Tools
- Hacking Tools For Kali Linux
- Github Hacking Tools
- Hack Tool Apk No Root
- Hacking Tools Mac
- Pentest Tools Website
- Hack Tools For Mac
- Pentest Tools Tcp Port Scanner
- Hacking Tools Online
- Hacking Tools Download
- Hack Apps
- Hacking Tools Pc
- Pentest Tools Nmap
- Hack Rom Tools
- Pentest Tools Open Source
- Ethical Hacker Tools
- Pentest Tools Online
- Pentest Tools Nmap
- Bluetooth Hacking Tools Kali
- Hacking Tools Software
- Easy Hack Tools
- Termux Hacking Tools 2019
- Hacker Tools List
- Usb Pentest Tools
- Hacker Tools Hardware
- Hacker Tools 2019
- Github Hacking Tools
- Hacker Security Tools
- Hacker Search Tools
- Pentest Tools Open Source
- Hacking Tools Mac
- Hacker Tools Apk Download
- Hacking Tools And Software
- Hacking Tools For Games
- Hack Tools Mac
- Hacking Tools For Beginners
- Pentest Tools Nmap
- Hacker Tools For Mac
- Hackrf Tools
- Pentest Tools Review
- Hacker Hardware Tools
- Hacking Tools
- Termux Hacking Tools 2019
- Hack Tools For Windows
- Pentest Tools List
- Pentest Tools Find Subdomains
- Pentest Tools Bluekeep
- Github Hacking Tools
- Hacker Tools Free
- Pentest Tools Download
- Wifi Hacker Tools For Windows
- Hacking Tools Windows
- Best Pentesting Tools 2018
- Hack Tools Download
- Hacking Tools For Windows Free Download
- Hack Tools Pc
- Hacker Tools Apk Download
- Hack Tools For Mac
- Hacking Tools Download
- Hacker Tools Free
- Hacking Tools
- Hacking Tools Pc
- Hacking Tools Hardware
- Pentest Tools Port Scanner
- Usb Pentest Tools
- World No 1 Hacker Software
- Pentest Tools Download
- Pentest Box Tools Download
- Hack Tools For Pc
- Pentest Tools Open Source
- Hacking App
- Hacking Tools 2019
- Hacking Tools Kit
- Pentest Automation Tools
- Hacking Tools Download
- Hacking Tools For Beginners
- Pentest Box Tools Download
- Best Hacking Tools 2020
- Hacking Tools Github
- Pentest Tools Bluekeep
- Nsa Hacker Tools
- Pentest Tools Port Scanner
- Pentest Tools Website Vulnerability
- Pentest Tools
- Pentest Tools Apk
- Underground Hacker Sites
- Hacker Tools Apk Download
- Pentest Tools For Windows
- Hacking Tools Windows 10
- Game Hacking
- Pentest Tools Framework
- Hacking Tools For Windows 7
- Hacking Tools 2020
- Tools 4 Hack
- Pentest Tools
- Android Hack Tools Github
- Hacking Tools Software
- Hacker Tools Software
- World No 1 Hacker Software
- Computer Hacker
Tagged as:
About the Author
Write admin description here..
Get Updates
Subscribe to our e-mail newsletter to receive updates.
Share This Post
Related posts
0 comentarios:
Publicar un comentario