Sunday, May 28, 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 word

  1. Hacking Tools Download
  2. Hacking Tools Mac
  3. Android Hack Tools Github
  4. Hacking Tools For Pc
  5. Black Hat Hacker Tools
  6. Hacks And Tools
  7. Hacker Tools Free Download
  8. Hack Apps
  9. Pentest Tools For Windows
  10. Hack Tools For Windows
  11. Hack Tools
  12. Pentest Tools Subdomain
  13. Easy Hack Tools
  14. Android Hack Tools Github
  15. New Hacker Tools
  16. New Hacker Tools
  17. Pentest Tools Android
  18. Hacker Tools Github
  19. Hacker Tools For Windows
  20. Hacks And Tools
  21. Growth Hacker Tools
  22. Hacker Tools Online
  23. Hacking Tools Windows
  24. Pentest Tools For Ubuntu
  25. How To Hack
  26. Hack App
  27. Hacking Tools 2020
  28. Pentest Tools Alternative
  29. Hacker Tools Free
  30. Pentest Tools
  31. Tools Used For Hacking
  32. Hacker Tools Software
  33. Hack Tool Apk No Root
  34. Pentest Tools Find Subdomains
  35. Hacker Tools Apk
  36. Hacking Tools Download
  37. Hack Tools Mac
  38. Hacker Tools Apk
  39. Tools Used For Hacking
  40. Hack Rom Tools
  41. Pentest Tools Port Scanner
  42. Pentest Tools Website
  43. Hack Tools For Mac
  44. Hacking Tools Online
  45. New Hacker Tools
  46. Wifi Hacker Tools For Windows
  47. Nsa Hack Tools
  48. Hack Tools For Games
  49. Pentest Tools Url Fuzzer
  50. Tools 4 Hack
  51. Pentest Tools For Windows
  52. Hacking Tools Mac
  53. Hack Apps
  54. Pentest Tools Linux
  55. Hacking Tools 2019
  56. Hacker Tools Windows
  57. Hacker Security Tools
  58. Hacker Tools Linux
  59. Pentest Tools List
  60. Hack Tools Github
  61. Usb Pentest Tools
  62. Install Pentest Tools Ubuntu
  63. Hack App

No comments:

Post a Comment