Compilando Exploits
Linguagem C
Linux
gcc <exploit.c> -o <exploit>Removendo algumas informações ao compilar para melhorar a segurança
gcc -s <file.c>É comum passarmos pela situação onde, temos um Linux x64 e o nosso alvo (que não possui o gcc instalado) é um sistema x86. Nesse caso, podemos executar o comando abaixo para compilar nosso exploit. Caso seja um executável Estático (e não utilizando lib compartilhadas), adicione o parâmetro -Static no final do comando.
gcc -o <output> <output.c> -Wl,--hash-style=both -m32Windows (Cross-Compile)
Geralmente os exploits geralmente são escritos em C ou usando outras linguagens de script, como Python / Perl / PHP. Não é uma boa decisão deixar um compilador no seu servidor, portanto, ele é "arquivado". Caso você não tenha o comando gcc, significa que você precisa procurar explorar no Python, Perl ou compilá-lo em uma máquina virtual que tem a versão semelhante tanto do software quanto do kernel e depois mover o arquivo executável no host de destino. Mesmo assim não podemos ter 100% de certeza de que a exploração dê certo ou que até mesmo irá travar o sistema alvo.
Abaixo vemos uma maneira de compilar um exploit para Windows, porém iremos um Linux para realizar tal compilação. Antes de começar, precisamos instalar o mingw-64.
sudo apt install mingw-w64Feito a instalação utilize a sintaxe abaixo para compilar o exploit.
# C
i686-w64-mingw32-gcc <exploit.c> -o <exploit_32.exe> # 32-bit
i686-w64-mingw32-gcc <exploit.c> -o <exploit_32.exe> -lws2_32 # 32-bit
x86_64-w64-mingw32-gcc <exploit.c> -o <exploit_64.exe> # 64-bit
# C++
i686-w64-mingw32-g++ <exploit.cc> -o <exploit_32.exe> # 32-bit
x86_64-w64-mingw32-g++ <exploit.cc> -o <exploit_64.exe> # 64-bitDICA: Note que no segundo comando acima, utilizamos o parâmetro adicional -lws2_32. Isso é necessário quando a compilação falha devido a chamadas no código-fonte como winsock2.h, resultando em erros como WSAStartup.
Java
jar -cvf <output_file.war> <file.jsp>Sites
# Compilando exploits para Windows, a partir de um Linux
https://arrayfire.com/cross-compile-to-windows-from-linux/
http://www.tinc-vpn.org/examples/cross-compiling-64-bit-windows-binary/Last updated
Was this helpful?