Sunday, January 28, 2024

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





More info


  1. Hacking Tools 2019
  2. Hack Tools Pc
  3. Tools Used For Hacking
  4. How To Install Pentest Tools In Ubuntu
  5. Hacking Tools Name
  6. Hacking Tools Windows
  7. Pentest Tools Open Source
  8. Hack Tools For Ubuntu
  9. Hack Tools For Games
  10. What Are Hacking Tools
  11. Hack Tool Apk No Root
  12. Hacking Tools Usb
  13. Hacker Tools Mac
  14. Pentest Tools Github
  15. Hack Tool Apk No Root
  16. Hacker Tools Free
  17. Hacker Tools
  18. Termux Hacking Tools 2019
  19. Hacker Tools Apk Download
  20. Hack Tools For Ubuntu
  21. Nsa Hack Tools Download
  22. Underground Hacker Sites
  23. Hacking Tools Mac
  24. Nsa Hack Tools
  25. Hack Tools Github
  26. Nsa Hack Tools
  27. Pentest Tools Download
  28. Hacker Tools Linux
  29. Hacker Hardware Tools
  30. What Is Hacking Tools
  31. Pentest Tools Port Scanner
  32. Hacker Tool Kit
  33. Hacker Tools Windows
  34. Pentest Tools Subdomain
  35. Hacker Search Tools
  36. Hacking Tools Windows 10
  37. Hack Tool Apk No Root
  38. Pentest Reporting Tools
  39. Hack Website Online Tool
  40. What Is Hacking Tools
  41. Bluetooth Hacking Tools Kali
  42. Hack Tools Download
  43. Bluetooth Hacking Tools Kali
  44. Hack Tools Pc
  45. Pentest Reporting Tools
  46. New Hacker Tools
  47. Hacking Tools For Beginners
  48. Hack Tools Mac
  49. Hack And Tools
  50. Hack Apps
  51. Hackrf Tools
  52. Hack Tools For Games
  53. Hack Tools For Windows
  54. Tools For Hacker
  55. Hack Website Online Tool
  56. Best Hacking Tools 2020
  57. New Hack Tools
  58. Pentest Tools Website
  59. Hacker Hardware Tools
  60. Hacker Tools For Mac
  61. Hak5 Tools
  62. Pentest Tools For Mac
  63. Hacking Tools For Windows
  64. Hack Tools
  65. Pentest Tools For Windows
  66. Hack Tools
  67. Hacker Tools Free Download
  68. Hacker Tools 2019
  69. Hacker Search Tools
  70. Pentest Tools For Windows
  71. Hacker Tools 2020
  72. Hack Tools For Games
  73. Tools 4 Hack
  74. Pentest Tools Free
  75. What Is Hacking Tools
  76. Pentest Tools Kali Linux
  77. Install Pentest Tools Ubuntu
  78. Hack Tools Pc
  79. Hacker Tools Online
  80. Wifi Hacker Tools For Windows
  81. Hackrf Tools
  82. Hack Tool Apk No Root
  83. Hacking Tools For Mac
  84. Pentest Tools Subdomain
  85. New Hacker Tools
  86. Pentest Recon Tools
  87. Hacking Tools Free Download
  88. Hacker Tools For Windows
  89. Hack Tool Apk No Root
  90. Hackrf Tools
  91. Hacking Tools Free Download
  92. Hacker Tool Kit
  93. Best Hacking Tools 2019
  94. Hack Tools
  95. Hack Tools Mac
  96. Hak5 Tools
  97. Hacking Tools Pc
  98. Hacking Tools For Windows
  99. What Is Hacking Tools
  100. Hacker Tools For Windows
  101. Tools 4 Hack
  102. How To Install Pentest Tools In Ubuntu
  103. Android Hack Tools Github
  104. Best Hacking Tools 2019

No comments:

Post a Comment