domingo, 4 de junio de 2023

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 information
  1. Hacker Tools 2020
  2. Hack Tools
  3. Blackhat Hacker Tools
  4. Hack And Tools
  5. Usb Pentest Tools
  6. Hack Tools Mac
  7. Hacker Tools Free Download
  8. Install Pentest Tools Ubuntu
  9. Hacker Tools List
  10. Hack Tools For Mac
  11. Nsa Hack Tools Download
  12. World No 1 Hacker Software
  13. Kik Hack Tools
  14. Bluetooth Hacking Tools Kali
  15. Hack Tools Pc
  16. Hacking Tools Software
  17. Best Hacking Tools 2020
  18. Pentest Tools Kali Linux
  19. Hacker Tools For Pc
  20. Beginner Hacker Tools
  21. Pentest Tools For Mac
  22. Black Hat Hacker Tools
  23. Pentest Automation Tools
  24. Hacker Tools Mac
  25. Hacker Tools Free Download
  26. Hack Tools For Windows
  27. Growth Hacker Tools
  28. Pentest Tools Tcp Port Scanner
  29. Hacking Tools Github
  30. Pentest Tools Open Source
  31. Pentest Tools Online
  32. Pentest Tools Find Subdomains
  33. Pentest Tools Android
  34. Pentest Tools For Android
  35. Hack Tools For Windows
  36. Hacking Tools Windows
  37. Hacking Apps
  38. Install Pentest Tools Ubuntu
  39. Hacker Tools Linux
  40. Pentest Tools Subdomain
  41. Nsa Hack Tools Download
  42. Hack Tools Online
  43. Github Hacking Tools
  44. Hackers Toolbox
  45. Pentest Tools Website
  46. Beginner Hacker Tools
  47. Nsa Hacker Tools
  48. Pentest Tools Android
  49. Hacker Tools For Mac
  50. Hacking Tools Online
  51. Termux Hacking Tools 2019
  52. Pentest Tools For Windows
  53. Hacking Tools Windows
  54. Hack Tools For Games
  55. Hacking Tools Software
  56. Hack Tools For Mac
  57. Pentest Tools Android
  58. Best Pentesting Tools 2018
  59. Hacker Tools Github
  60. Hacker Tools Free
  61. Hacker Tool Kit
  62. Hacking Tools For Kali Linux
  63. Pentest Tools Alternative
  64. Nsa Hack Tools Download
  65. Hacking Tools For Mac
  66. Beginner Hacker Tools
  67. Hackrf Tools
  68. Bluetooth Hacking Tools Kali
  69. Hacking Tools Hardware
  70. How To Hack
  71. Pentest Tools Download
  72. Hacker Tools Mac
  73. Hacking Tools Kit
  74. Pentest Tools Github
  75. Usb Pentest Tools
  76. Github Hacking Tools
  77. Pentest Tools Kali Linux
  78. Hack Tools Online
  79. Hacker Tools Software
  80. Android Hack Tools Github
  81. Pentest Box Tools Download
  82. Hak5 Tools
  83. World No 1 Hacker Software
  84. Hacker Tools Apk
  85. Hacker Hardware Tools
  86. Hacker Tools Apk Download
  87. Pentest Tools Review
  88. Hacking Tools
  89. Pentest Tools Free
  90. Hacking Tools For Games
  91. Hack Tools Download
  92. Hacker Tools Mac
  93. Hack Rom Tools
  94. Pentest Tools Windows
  95. Hacking App
  96. Pentest Tools Apk
  97. Pentest Tools Windows
  98. Hacker Tools Free Download
  99. World No 1 Hacker Software
  100. Free Pentest Tools For Windows
  101. Pentest Tools Review
  102. Hacking Tools Software
  103. Hack And Tools
  104. Wifi Hacker Tools For Windows
  105. Nsa Hacker Tools
  106. Hacking Tools For Games
  107. Beginner Hacker Tools
  108. Pentest Tools Online
  109. Hacking Tools Usb

No hay comentarios:

Publicar un comentario