Saturday, January 27, 2024

Fast Emulator For Shellcodes In Rust

I have developed a fast emulator for modern shellcodes, that perform huge loops of millions of instructions emulated for resolving API or for other stuff.

The emulator is in Rust and all the few dependencies as well, so the rust safety is good for emulating malware.  

There are shellcodes that can be emulated from the beginning to the end, but when this is not possible the tool has many features that can be used like a console, a memory tracing, register tracing, and so on.

https://github.com/sha0coder/scemu



In less than two seconds we have emulated 7 millions of instructions arriving to the recv. 

At this point we have some  IOC like  the ip:port where it's connecting and other details.

Lets see what happens after the recv() spawning a console at position: 7,012,204


target/release/scemu -f shellcodes/shikata.bin -vv -c 7012204



In the console, pressing "enter" several times to emulate  step into several steps and we arrive to a return instruction.


Let's see the stack in this moment:


The "ret" instruction is going to jump to the buffer read with recv() so is a kind of stager.

The option "-e" or "--endpoint" is not ready for now, but it will allow to proxy the calls to get the next  stage automatically, but for now we have the details to get the stage.


SCEMU also identify all the Linux  syscalls for 32bits shellcodes:



The encoder used in shellgen is also supported https://github.com/MarioVilas/shellgen

Let's check with cobalt-strike:


We can see where is connecting and which headers is using, so right now we can replicate the communications.



In verbose mode we could do several greps to see the calls and correlate with ghidra/ida/radare or  for example grep the branches to study the emulation flow.


target/release/scemu -f shellcodes/rshell_sgn.bin -vv | grep j


target/release/scemu -f shellcodes/rshell_sgn.bin -vv -c 44000 -l


The -l --loops options makes the emulation a bit slower but track the number of iterations.

Is possible to print all the registers in every step with  -r or --registers  but also is possible to track  specific register for example with --reg esi


target/release/scemu -f shellcodes/shikata.bin --reg esi 


In this case ESI register points to the API name, if we track EAX or ECX will see that are the counters of the loop. These shellcodes  contains a hard loop to locate the API names.

The flag -i or --inspect allow to monitor memory using expressions like "dword ptr [eax + 0xa]"

target/release/scemu -f shellcodes/shikata.bin -i 'dword ptr [esi]'

And more things to come...  find a demo below:

https://www.youtube.com/watch?v=qTYmMjW3DFs





Continue reading


  1. Pentest Tools Framework
  2. Hacker Tools For Mac
  3. New Hack Tools
  4. Termux Hacking Tools 2019
  5. Hacking Tools Kit
  6. Pentest Tools Port Scanner
  7. Pentest Tools Kali Linux
  8. Hacking Tools Download
  9. Hacker Tools
  10. Hacking Tools For Kali Linux
  11. Hack Tools For Games
  12. Hacking App
  13. Android Hack Tools Github
  14. Hack Tools Github
  15. Hacker Tools Mac
  16. What Are Hacking Tools
  17. Hack Tools
  18. Hack Tools For Windows
  19. What Are Hacking Tools
  20. Hacking Tools For Beginners
  21. Hacking Tools For Games
  22. Best Pentesting Tools 2018
  23. Hacker Techniques Tools And Incident Handling
  24. Pentest Tools Port Scanner
  25. Hacking Tools For Mac
  26. Hacking Tools 2020
  27. Hacking Tools
  28. Hacking Tools
  29. Pentest Tools Linux
  30. Hacker Tools Free
  31. Pentest Tools For Ubuntu
  32. Hacking App
  33. Hacker Tools 2019
  34. Pentest Tools Free
  35. Hacker Tools 2019
  36. Hacker Hardware Tools
  37. Pentest Tools Android
  38. Hacking Tools Windows
  39. Hacker Tools For Pc
  40. Pentest Tools Website Vulnerability
  41. Hacker Tool Kit
  42. Hack App
  43. Pentest Tools Windows
  44. What Are Hacking Tools
  45. World No 1 Hacker Software
  46. Hacker Tools For Windows
  47. Hack Tools Github
  48. Hacking Tools For Windows Free Download
  49. Pentest Box Tools Download
  50. New Hack Tools
  51. Tools Used For Hacking
  52. Hacking Tools For Games
  53. Hacking Tools
  54. Hacker Tools Mac
  55. Hacking Tools Usb
  56. Free Pentest Tools For Windows
  57. Hacking Tools For Mac
  58. Pentest Tools Website
  59. Pentest Tools List
  60. Pentest Tools Tcp Port Scanner
  61. Hacker Tools 2019
  62. Nsa Hacker Tools
  63. Hacking Tools Name
  64. Hacking Tools For Games
  65. What Is Hacking Tools
  66. Hacking Tools Pc
  67. Pentest Tools Open Source
  68. Physical Pentest Tools
  69. What Is Hacking Tools
  70. Hack Tool Apk No Root
  71. Hacking Tools Online
  72. Hacking Tools Download
  73. Hacking Tools Windows

No comments:

Search This Blog