วันศุกร์ที่ 19 มกราคม พ.ศ. 2567

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.

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':''}

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()





Continue reading


  1. Usb Pentest Tools
  2. Hacker Security Tools
  3. Hacking Tools Mac
  4. Pentest Tools For Windows
  5. Ethical Hacker Tools
  6. Hacker Tool Kit
  7. Pentest Tools Url Fuzzer
  8. Hacking Tools Windows 10
  9. Bluetooth Hacking Tools Kali
  10. Hacking Apps
  11. World No 1 Hacker Software
  12. Hacking Tools Windows
  13. How To Hack
  14. Hacker Tools Apk Download
  15. Pentest Tools Android
  16. Pentest Tools Subdomain
  17. Hack Tools
  18. Hacker Tools List
  19. Hacking Tools For Windows
  20. Pentest Tools Review
  21. Hacking Tools For Pc
  22. How To Make Hacking Tools
  23. Hacker Tools Free
  24. Hack Tools Download
  25. Pentest Tools
  26. Hacking Tools Name
  27. Hack Tools For Windows
  28. Best Hacking Tools 2019
  29. Termux Hacking Tools 2019
  30. Tools For Hacker
  31. Hack Tools
  32. Hack Tools
  33. Hack Tools
  34. Pentest Tools For Mac
  35. Pentest Automation Tools
  36. Hacker Tools For Ios
  37. Hacker Tools
  38. Pentest Recon Tools
  39. Kik Hack Tools
  40. What Is Hacking Tools
  41. Hacker Tools Hardware
  42. Hacks And Tools
  43. Growth Hacker Tools
  44. Hacking Tools Online
  45. Hack Tools Online
  46. Hack Tools For Windows
  47. Hack Tools For Windows
  48. Pentest Reporting Tools
  49. Wifi Hacker Tools For Windows
  50. Hacker Tools For Mac
  51. Hacker Tool Kit
  52. Hack Tools For Ubuntu
  53. Pentest Tools Online
  54. Hack Tools
  55. Hacking Tools Windows
  56. Hack Tools Download
  57. Hak5 Tools
  58. Hack Tools Download
  59. Termux Hacking Tools 2019
  60. Hacker Tools For Pc
  61. Hacking Tools
  62. Hacking Tools Online
  63. Install Pentest Tools Ubuntu
  64. Hacker Techniques Tools And Incident Handling
  65. New Hacker Tools
  66. Hacking Tools Windows
  67. Hack Tools For Ubuntu
  68. Pentest Recon Tools
  69. Hacker Tools Windows
  70. Hack Tool Apk No Root
  71. Beginner Hacker Tools
  72. Pentest Recon Tools
  73. Game Hacking
  74. Pentest Tools Alternative
  75. Hack Website Online Tool
  76. Pentest Tools List
  77. What Is Hacking Tools
  78. Hack Tools For Pc
  79. Hacker Tools Mac
  80. Pentest Reporting Tools
  81. Ethical Hacker Tools
  82. Hacker Tools List
  83. Physical Pentest Tools
  84. Hacker Hardware Tools
  85. Wifi Hacker Tools For Windows
  86. What Are Hacking Tools
  87. Hacking Tools For Games
  88. Hacking Tools Windows
  89. Pentest Tools Open Source
  90. How To Make Hacking Tools
  91. Hacker Tools Apk Download
  92. Hacking Tools Mac
  93. Hacking Tools Github

ไม่มีความคิดเห็น:

แสดงความคิดเห็น