segunda-feira, 5 de junho de 2023

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 Kali Linux
  2. Hacking Tools Software
  3. Hack Rom Tools
  4. Easy Hack Tools
  5. Hacking Tools 2019
  6. Pentest Tools Free
  7. Pentest Tools Open Source
  8. Hack Apps
  9. Hack Tools For Ubuntu
  10. Hacker Hardware Tools
  11. Pentest Tools Kali Linux
  12. Hacker Tools Mac
  13. Usb Pentest Tools
  14. Tools For Hacker
  15. Hacker Tool Kit
  16. Usb Pentest Tools
  17. Pentest Tools
  18. Pentest Tools Bluekeep
  19. Best Hacking Tools 2019
  20. Hacker Techniques Tools And Incident Handling
  21. Hacking Tools For Mac
  22. Hacker Tools Free
  23. How To Hack
  24. Pentest Tools Download
  25. Termux Hacking Tools 2019
  26. Pentest Tools Review
  27. Hack Tools For Games
  28. How To Install Pentest Tools In Ubuntu
  29. Github Hacking Tools
  30. Hack Tool Apk
  31. Hack Tools For Games
  32. Hackrf Tools
  33. Install Pentest Tools Ubuntu
  34. Hacker Tools Hardware
  35. Pentest Tools Download
  36. Hack Tool Apk No Root
  37. Hack Website Online Tool
  38. Hacker Tools For Windows
  39. Hacker Tools List
  40. Hacks And Tools
  41. Pentest Tools Port Scanner
  42. Hacking Tools Hardware
  43. Hack And Tools
  44. Pentest Tools Alternative
  45. Hacking Tools 2019
  46. Termux Hacking Tools 2019
  47. Hacking Tools Download
  48. How To Hack
  49. Pentest Tools Website Vulnerability
  50. Pentest Tools Kali Linux
  51. Pentest Tools Apk
  52. World No 1 Hacker Software
  53. Hacking Tools And Software
  54. Hacking Tools For Windows Free Download

Nenhum comentário:

Postar um comentário