Este programa foi projetado para carregar shellcode de 32 ou 64 bits e permitir execução ou depuração. Além disso, ele pode produzir arquivos PE executáveis com base no shellcode desejado. Isso pode facilitar os testes, pois o binário de saída pode ser usado por ferramentas padrão de engenharia reversa (ou seja, IDA Pro (mesmo gratuito) e depuradores).
Binários de lançamento estão disponíveis. Você pode ver uma demonstração desta ferramenta no YouTube
Este programa oferece diversas opções para trabalhar com seu shellcode, organizadas por seu uso.
Argumentos globais
Depurando código shell
Criando um arquivo PE
O único argumento necessário é fornecer o caminho para o arquivo que contém seu shellcode. Você faz isso usando o argumento -f
. Isso será copiado para a memória e executado. Além disso, você pode usar o argumento -ep
para ajustar o ponto de entrada em X bytes. Isso permite shellcode que não inicia a execução no início do blob binário. Finalmente, -bp
determina se um ponto de interrupção deve ser inserido antes do shellcode. Isso será feito através de um byte 0xCC
, que é um INT3. Isso permite executar o programa em um depurador, definindo os argumentos da linha de comando conforme apropriado. A inserção de um ponto de interrupção permitirá que o depurador interrompa a execução antes que o shellcode seja executado. Se você não estiver executando um depurador, não insira um ponto de interrupção, pois isso fará com que o programa trave.
Você pode usar o argumento -pe
para produzir um arquivo PE que essencialmente envolve o shellcode. O shellcode é colocado na seção .text
. O ponto de entrada é definido como o início da seção, a menos que o argumento -ep
seja usado. Este argumento definirá um deslocamento desde o início da seção e será usado para atualizar o ponto de entrada dos arquivos PE (ou seja, campo AddressOfEntry). Além disso, o argumento -64
pode ser usado para gerar um arquivo PE de 64 bits, provavelmente para shellcode de 64 bits. O arquivo PE resultante pode ser analisado por meio de ferramentas comuns de engenharia reversa, como IDA Pro, Ghidra ou um depurador como x32dbg/WinDbg/etc.
Se o argumento -d for usado, o SCLauncher criará uma nova seção chamada .content e copiará o conteúdo do arquivo para esta seção. Esta seção seguirá a seção .text .
Se você tiver um shellcode que ainda não está em estado binário, poderá usar o CyberChef para converter esse shellcode e baixá-lo como um arquivo.
Aqui está um exemplo de shellcode do Exploit-DB que foi convertido em conteúdo binário no CyberChef.
Este programa deve ser compilado com o compilador C/C++ da Microsoft. Você pode usar o Developer Command Prompt
após instalar a versão gratuita/comunitária para compilar usando cl
. Um exemplo deste comando seria:
cl sclauncher.c
Isso produzirá o executável sclauncher.exe
.