Friday, January 26, 2024

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 posts

  1. Hacking Tools For Kali Linux
  2. Pentest Tools Kali Linux
  3. Nsa Hack Tools Download
  4. Hacker Tool Kit
  5. Hacker Tools For Ios
  6. Android Hack Tools Github
  7. Hack Tools For Ubuntu
  8. Pentest Tools Nmap
  9. What Are Hacking Tools
  10. Hacks And Tools
  11. Hacking Apps
  12. Blackhat Hacker Tools
  13. Free Pentest Tools For Windows
  14. Growth Hacker Tools
  15. Pentest Tools Linux
  16. Hacking Tools Download
  17. Pentest Box Tools Download
  18. Pentest Recon Tools
  19. Pentest Tools Download
  20. Tools Used For Hacking
  21. Hacking Tools For Kali Linux
  22. Pentest Tools Review
  23. Hacker Tools Apk
  24. Pentest Tools Open Source
  25. Hacking Tools For Mac
  26. Hacker Security Tools
  27. Hack Website Online Tool
  28. Hacking Tools Free Download
  29. Hacker Tools Github
  30. Hack Tools Github
  31. Growth Hacker Tools
  32. Hacking Tools Download
  33. Hacking Tools For Pc
  34. Pentest Tools List
  35. Pentest Tools Github
  36. Hacker Tools Github
  37. Android Hack Tools Github
  38. Kik Hack Tools
  39. Hack Tools Mac
  40. Game Hacking
  41. Hacker Tools Apk
  42. Hacker Tools Free Download
  43. Physical Pentest Tools
  44. Best Hacking Tools 2019
  45. Hack Tools For Mac
  46. How To Hack
  47. What Are Hacking Tools
  48. Hacking Tools Github
  49. Pentest Tools Github
  50. Hacking Tools For Windows 7
  51. Hak5 Tools
  52. Hack Tools For Games
  53. Hack Tools For Mac
  54. Hack Tools For Games
  55. Pentest Tools For Ubuntu
  56. Computer Hacker
  57. Tools Used For Hacking
  58. Ethical Hacker Tools
  59. Hack Tools Mac
  60. Pentest Tools Review
  61. Pentest Box Tools Download
  62. Black Hat Hacker Tools
  63. Beginner Hacker Tools
  64. Hacking Apps
  65. Usb Pentest Tools
  66. Hacking Tools 2020
  67. Hacking Tools Hardware
  68. Hacks And Tools
  69. Hacking Tools Download
  70. Hacking Tools Github
  71. Physical Pentest Tools
  72. Hacker Tools 2020
  73. Pentest Tools Download
  74. Pentest Tools For Ubuntu
  75. Nsa Hacker Tools

No comments:

Post a Comment