martes, 30 de mayo de 2023

Emulating Shellcodes - Chapter 2

 Lets check different  Cobalt Strike shellcodes and stages in the shellcodes emulator SCEMU.




This stages are fully emulated well and can get the IOC and the behavior of the shellcode.

But lets see another first stage big shellcode with c runtime embedded in a second stage.


In this case is loading tons of API using GetProcAddress at the beginning, then some encode/decode pointer and tls get/set values to store an address. And ends up crashing because is jumping an address that seems more code than address 0x9090f1eb.

Here there are two types of allocations:


Lets spawn a console on -c 3307548 and see if some of this allocations has the next stage.

The "m" command show all the memory maps but the "ma" show only the allocations done by the shellcode.



Dumping memory with "md" we see that there is data, and dissasembling this address with "d" we see the prolog of a function.

So we have second stage unpacked in alloc_e40064


With "mdd" we do a memory dump to disk we found the size in previous screenshot,  and we can do  some static reversing of stage2 in radare/ghidra/ida

In radare we can verify that the extracted is the next stage:


I usually do correlation between the emulation and ghidra, to understand the algorithms.

If wee look further we can realize that the emulator called a function on the stage2, we can see the change of code base address and  is calling the allocated buffer in 0x4f...



And this  stage2 perform several API calls let's check it in ghidra.


We can see in the emulator that enters in the IF block, and what are the (*DAT_...)() calls

Before a crash lets continue to the SEH pointer, in this case is the way, and the exception routine checks IsDebuggerPresent() which is not any debugger pressent for sure, so eax = 0;



So lets say yes and continue the emulation.


Both IsDebuggerPresent() and UnHandledExceptionFilter() can be used to detect a debugger, but the emulator return what has to return to not be detected. 

Nevertheless the shellcode detects something and terminates the process.

Lets trace the branches to understand the logic:


target/release/scemu -f shellcodes/unsuported_cs.bin -vv | egrep '(\*\*|j|cmp|test)'



Continuing the emulation it's setting the SEH  pointer to previous stage:


Lets see from the console where is pointing the SEH chain item:


to be continued ...


https://github.com/sha0coder/scemu






Related news


  1. Pentest Tools For Android
  2. Game Hacking
  3. Ethical Hacker Tools
  4. Pentest Automation Tools
  5. Nsa Hack Tools
  6. Hacker Tools Free Download
  7. Hacker
  8. Pentest Tools Apk
  9. Hacker Tools Online
  10. Hacking Tools For Games
  11. Pentest Tools Github
  12. Hacking Tools Kit
  13. Pentest Tools Nmap
  14. Hackrf Tools
  15. Growth Hacker Tools
  16. Best Pentesting Tools 2018
  17. Hacker Tools
  18. Hack Tools For Ubuntu
  19. Hacker
  20. Top Pentest Tools
  21. Hacking Tools Kit
  22. Hacking Tools Software
  23. Hack Website Online Tool
  24. Hack Tools Download
  25. Hack Tools Github
  26. Pentest Tools Port Scanner
  27. What Are Hacking Tools
  28. Hack Website Online Tool
  29. Hack Tool Apk No Root
  30. Computer Hacker
  31. Hacker Security Tools
  32. Usb Pentest Tools
  33. Pentest Tools Online
  34. Pentest Automation Tools
  35. Hacking Tools Download
  36. Hack Tools
  37. Pentest Tools For Windows
  38. Hacker Tools 2020
  39. Hackers Toolbox
  40. Pentest Recon Tools
  41. Pentest Tools Alternative
  42. Growth Hacker Tools
  43. Hack Tools For Games
  44. Hacking Tools Windows
  45. Hacker Tools Windows
  46. Hack Tools For Windows
  47. Best Hacking Tools 2020
  48. Hack Tools For Games
  49. Kik Hack Tools
  50. World No 1 Hacker Software
  51. Hacking Apps
  52. Hacking Tools Usb
  53. Hackrf Tools
  54. World No 1 Hacker Software
  55. Tools For Hacker
  56. Pentest Tools Website
  57. Hacker Tools Software
  58. Pentest Tools Android
  59. Hack Tools
  60. Hack Tools 2019
  61. Pentest Tools Subdomain
  62. Best Hacking Tools 2020
  63. How To Make Hacking Tools
  64. How To Install Pentest Tools In Ubuntu
  65. Pentest Tools Windows
  66. Pentest Tools Download
  67. Pentest Tools Android
  68. Pentest Reporting Tools
  69. Pentest Tools Download
  70. Hack Tools For Pc
  71. Pentest Tools Apk
  72. Nsa Hack Tools Download
  73. Pentest Tools For Android
  74. Hacker Hardware Tools
  75. How To Make Hacking Tools
  76. Hacker Tool Kit
  77. Pentest Tools Github
  78. Hack Tools 2019

No hay comentarios:

Publicar un comentario