
O BlobRunner é uma ferramenta simples para depurar rapidamente o shellcode extraído durante a análise de malware .O BlobRunner aloca memória para o arquivo de destino e pula para a base (ou deslocamento) da memória alocada. Isso permite que um analista depure rapidamente os artefatos extraídos com sobrecarga e esforço mínimos.
Para usar o BlobRunner, você pode baixar o executável compilado a partir da página de lançamentos ou construir o seu próprio usando os passos abaixo.
Construindo
Construir o executável é direto e relativamente indolor.
Requisitos
- Baixe e instale o Microsoft Visual C ++ Build Tools ou o Visual Studio
Construa Passos
- Abrir o prompt de comando do Visual Studio
- Navegue até o diretório em que o BlobRunner está com check-out
- Construa o executável executando:
cl blobrunner.c
Construindo o BlobRunner x64
Construir a versão x64 é virtualmente o mesmo que acima, mas simplesmente usa o ferramental x64.
- Abrir x 64 Visual Studio Command Prompt
- Navegue até o diretório em que o BlobRunner está com check-out
- Construa o executável executando:
cl /Feblobrunner64.exe /Foblobrunner64.out blobrunner.c
Uso
Para depurar:
- Abra o BlobRunner no seu depurador favorito.
- Passe o arquivo shellcode como o primeiro parâmetro.
- Adicione um ponto de interrupção antes do salto para o shellcode
- Entre no shellcode
BlobRunner.exe shellcode.bin
Depurar no arquivo em um deslocamento específico.
BlobRunner.exe shellcode.bin --offset 0x0100
Depure no arquivo e não faça uma pausa antes do salto. Aviso: Certifique-se de ter um ponto de interrupção definido antes do salto.
BlobRunner.exe shellcode.bin --nopause
Depuração x64 Shellcode O
assembly in- line não é suportado pelo compilador x64, portanto, para dar suporte à depuração no shellcode x64, o carregador cria um thread suspenso que permite colocar um ponto de interrupção na entrada do thread, antes que o thread seja retomado. Blobs de Shell de Depuração
Remota (IDAPro)
O processo é virtualmente idêntico a depurar código de shell localmente – com a exceção de que você precisa copiar o arquivo de código de shell para o sistema remoto . Se o arquivo for copiado para o mesmo caminho em que você está executando o win32_remote.exe , basta usar o nome do arquivo para o parâmetro. Caso contrário, você precisará especificar o caminho para o arquivo de código shell no sistema remoto.
Exemplos de Shellcode
Você pode gerar rapidamente amostras de shell usando a ferramenta Metasploit msfvenom .
Gerando uma carga simples de exec do Windows .
msfvenom -a x86 --platform windows -p windows/exec cmd=calc.exe -o test2.bin
Feedback / Ajuda
- Qualquer dúvida, comentário ou pedido você pode nos encontrar no twitter: @seanmw ou @herrcore
- Puxe pedidos bem-vindos!