
Kit gerador de artefatos de memória em modo de usuário pseudo-malicioso projetado para imitar facilmente as pegadas deixadas por malware real em um sistema Windows infectado.
__ .__ _____ __ __ .__ __
_____ / |_||/ __ ____/ | | | _||/ |
_ \ __ \ \ \ \ \ _/ _\ \ | |/ / \
/ __ | | /| | | || | / __ \ _| | | <| || |
( /| || |||__| (___ /___ >| ||_ __||__|
/ / / /
Kit Gerador de Artefatos de Memória Maliciosa v1.0 | Forrest Orr | 2020
OBRIGATÓRIO
--alloc-type {dll-map-hollow|dll-load-hollow|txf-dll-map-hollow|private|mapped}
OPCIONAL
--payload-file --payload-type {PE|shellcode} --exec-method {create-thread|call|ep-jmp-hook} --stealth {wipe-headers|mirror-headers|rw-rx|dotnet|moat|peb-img-base} --moat-size --hollow-dll-file
--payload-file O arquivo contendo o shellcode ou PE a ser usado como implante. Se este não for fornecido pelo usuário, o tipo de região especificado ainda será alocado, mas não implantado com nenhum código. --payload-type O tipo de código armazenado no arquivo de payload especificado. Deve ser um shellcode ou MZ PE. Este parâmetro é obrigatório se um arquivo de payload for especificado. --alloc-type A forma como a memória dinâmica usada para armazenar o implante de payload deve ser criada.
dll-map-hollow Uma visão de uma seção de imagem gerada a partir de uma DLL no System32.
dll-load-hollow Uma DLL carregada via LoadLibrary a partir do System32.
txf-dll-map-hollow Uma visão de uma seção de imagem gerada a partir de uma DLL transacionada do
System32 que já foi implantada com o payload.
private Uma região de memória privada alocada via NtAllocateVirtualMemory
mapped Uma visão mapeada de uma seção derivada do Arquivo de Página do Windows.
--exec-method O método com o qual chamar o código do payload após ser implantado na região de memória especificada.
create-thread Executar o payload usando a API CreateThread.
call Executar o payload usando uma instrução de montagem CALL regular.
ep-jmp-hook Executar o payload via um JMP inline a partir do ponto de entrada
do EXE do processo.
--stealth Ofuscações opcionais para a região alocada.
wipe-headers Sobrescreve o cabeçalho PE do payload na memória com 0's. Válido
apenas para payloads PE.
mirror-headers Preserva os cabeçalhos PE originais de uma DLL oca após ser
implantada com um arquivo PE de payload. Válido apenas para um payload PE
usando um tipo de região de imagem.
rw-rx Em vez de alocar diretamente a região do implante com permissões
+RWX, aloque-a como +RW e defina como +RX posteriormente. Válido
apenas para tipos de região privada e mapeada.
dotnet Selecionar apenas DLLs com cabeçalho .NET durante operações de oclusão.
Válido apenas para tipos de região de imagem.
moat Pré-preenche a região alocada após o shellcode com 0s.
Por padrão, 1MB de preenchimento é usado. Não é válido para implantes
de shellcode com DLLs ocas. Não pode ser usado com tipo de alocação TxF.
peb-img-base Atualiza o campo de base de imagem do PEB para apontar para a região
recém-alocada.
--moat-size O tamanho do fosso de dados a ser gerado antes do implante de payload. Necessário apenas se a opção de stealth moat for especificada. Tamanho padrão de 1MB. --hollow-dll-file Especificar manualmente o caminho de uma DLL a ser usada em conjunto com o tipo de alocação de oclusão. Quando não especificado, uma DLL adequada será selecionada aleatoriamente de o diretório Windows ou uma de suas subpastas.
EXEMPLOS
Criar um implante de shellcode de 32 bits dentro da seção .text de uma imagem DLL de 32 bits mapeada e executá-lo usando a instrução CALL:
ArtifactsKit32.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode32.bin --alloc-type dll-map-hollow
Criar um implante de shellcode de 64 bits dentro de uma região de memória de arquivo de página mapeada +RWX em um deslocamento +1MB a partir de sua base de alocação e executá-lo usando a API KERNEL32.DLL!CreateThread:
ArtifactsKit64.exe --payload-type shellcode --payload-file Payloads\MsgboxShellcode64.bin --alloc-type mapped --stealth moat
Criar um implante PE de 32 bits sobre a memória de imagem mapeada de uma DLL de 32 bits, preservando seus cabeçalhos originais, inicializar e executar o payload PE IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint com um CALL.
ArtifactsKit32.exe --payload-type pe --payload-file Payloads\TestExe32.exe --alloc-type dll-map-hollow --stealth mirror-headers
Criar um implante PE de 64 bits dentro da memória de imagem mapeada de uma seção TxF modificada de uma DLL de 64 bits, ou seja, oclusão de DLL fantasma, e executar seu IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint com um hook JMP a partir do IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint do processo pai do artefato:
ArtifactsKit64.exe --payload-type pe --payload-file Payloads\TestExe64.exe --alloc-type txf-dll-map-hollow --exec-method ep-jmp-hook