Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
WhacAMole — Análise de memória ao vivo detectando IOCs de malware em processos, módulos, handles, tokens, threads, assemblies .NET, espaço de endereçamento de memória e variáveis de ambiente. Despeja, detecta e desmonta hooks, shellcode, regiões de memória, módulos e processos. | Kitploit
Ferramentas/GitHubGitHub/ignacioj/whacamole
Gerenciamento de Indicadores de Comprometimento (IOC)Análise Dinâmica (Sandboxing)Forensia de MemóriaEngenharia ReversaShellcodeDepuradoresAnálise ForenseAnálise de MalwareForensia DigitalAnálise de BináriosInteligência de AmeaçasResposta a Incidentes
454há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHubignacioj/whacamole

WhacAMole

Análise de memória ao vivo detectando IOCs de malware em processos, módulos, handles, tokens, threads, assemblies .NET, espaço de endereçamento de memória e variáveis de ambiente. Despeja, detecta e desmonta hooks, shellcode, regiões de memória, módulos e processos.

Ver Repositório

WhacAMole

WAM_logo

WhacAMole é um programa que analisa processos na memória de forma integral, detectando e alertando sobre anomalias relacionadas a malware e apresentando e salvando em arquivos todas as informações relevantes para verificação, correlação ou análise, além de despejar regiões de memória, processos e módulos suspeitos. Para isso, analisa não apenas as anomalias das regiões de memória dos processos e dos módulos que eles carregam, mas também analisa em profundidade todo o espaço de memória em uso pelo processo. Neste momento, o WhacAMole é capaz de identificar 67 alertas relacionados a comportamentos maliciosos ou que só podem ser devidos a malware. Ele exibe mais de 70 propriedades dos processos, memória e módulos, comparando muitos de seus atributos lidos na memória com os que aparecem no arquivo correspondente em disco, desmonta parcialmente regiões de memória suspeitas e desmonta parcialmente funções exportadas que foram modificadas na memória para que analistas realizem suas próprias investigações.

Modificación de función por malware

Ao contrário de outros programas similares, ele disponibiliza todas as informações relevantes sobre os processos aos analistas, rotulando com diferentes alertas as características relacionadas a malware, para que possam realizar sua própria análise ou buscar outros indícios da existência de processos maliciosos. Os alertas são classificados, de acordo com seu perigo e o número de processos em que o mesmo comportamento aparece, segundo uma escala de seis valores, refletida no documento html com uma escala de cores, sendo 6 (cor preta) um indicador da maior probabilidade de que a característica detectada seja devida a malware e 1 (cor cinza) que, embora o comportamento seja anormal, há muitos processos do sistema onde o mesmo comportamento foi observado:

Color codes

Para facilitar o trabalho dos analistas, as informações são apresentadas na tela, em um arquivo HTML com um painel de navegação dos processos analisados e em arquivos csv de texto. No painel lateral do documento html, é mostrada a árvore de processos, com a cor correspondente ao alerta mais alto detectado neles, com o hiperlink para sua localização no documento, e com a cor azul em seu PID se for um processo de 32 bits ou verde se for um processo .NET. Processos que possuem Control Flow Guard (CFG) habilitado são mostrados em itálico.

Tree1

Informações sobre sessões RDP remotas são exibidas no início das informações do processo:

RDP

A capacidade de rede é exibida de duas maneiras: se uma conexão TCP foi detectada, é exibida com o símbolo do globo terrestre, e se um socket conectado foi detectado, é exibida com um símbolo de globo vazio. Símbolo adicionado (círculo branco) para processos com bibliotecas de navegação http na memória: wininet.dll e winhttp.dll.

TreeTCPSocket

Detalhe da rede:

TCPDetail

Socket conectado:

socketDetail

Há um símbolo especial (uma chave) quando uma atividade tipo Mimikatz é detectada.

socketDetail

Na parte inferior do painel de navegação do documento html, todos os alertas são mostrados, com sua cor, com os PIDs dos processos em que foram detectados na forma de um hiperlink para a posição do documento onde o processo é exibido.

Detections

Se não houver processos detectados com um alerta, seu nome é exibido em fundo branco.

O painel principal exibe todos os processos com suas informações em seções recolhíveis que por padrão estão ocultas. Todos os alertas estão sempre visíveis.

socketDetail

As regiões de memória salvas são xored com a chave 0x0E para evitar que o antivírus as exclua.

Analisar, comparar e apresentar informações de:

1. Processos:

  • Nome do processo.
  • Tamanho do arquivo.
  • PID do processo.
  • PPID do processo.
  • Conexões de rede TCP e UDP.
  • Informa se o processo aparece em quatro listas do PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList e LdrpHashTable.
  • Informa se o processo está visível na memória (VAD).
  • Informação do Rich Header.
  • Funções exportadas lidas na memória e lidas do arquivo.
  • Funções importadas.
  • Módulos de importação atrasada (Delay import).
  • Proteção da memória atribuída ao módulo do processo.
  • Tipo de memória.
  • Ponto de entrada do processo lido na memória.
  • Ponto de entrada do processo lido do seu arquivo.
  • Endereço de memória do processo.
  • Seções PE lidas na memória e no arquivo. Ambas são exibidas apenas se houver diferença.
  • Tamanho da seção de dados do PE.
  • Características do executável (DLLCharacteristics).
  • Número da versão principal da imagem (MajorImageVersion).
  • Checksum original e calculado.
  • Do recurso VERSIONINFO, lido da memória e do arquivo, exibe os valores de: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • ID da sessão do processo obtida da Autoridade de Segurança Local (LSA).
  • ID da sessão visível do processo.
  • Identificador Único Local (LUID) da Sessão de Login.
  • Identificador Único Local (LUID) da sessão de login do processo de origem.
  • Integridade do token.
  • Tipo de token.
  • Tipo de logon.
  • Pacote de autenticação utilizado.
  • Usuário e domínio.
  • Identificador de Segurança (SID) do usuário.
  • Pertencimento ao grupo de administradores locais.
  • Linha de comando do processo.
  • Caminho do arquivo do processo. Mostra o FullName do VAD e do PEB se diferirem.
  • Diretório de trabalho atual (CWD) do processo.
  • Formato PE: x86/x64.
  • Tipo de máquina alvo (Target Machine).
  • Data-hora de criação do processo.
  • Tempo decorrido da inicialização do sistema até a criação do processo.
  • Assinatura do PE.
  • Endereço do arquivo de banco de dados do programa (.pdb) lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_FILE_HEADER lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_DEBUG_DIRECTORY lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_EXPORT_DIRECTORY lido na memória e no arquivo.

• Avisos:

root@kitploit:~
[Admin Privs]
[Alternate credentials]
[Alternate network credentials]
[Delphi 4 – Delphi 2006]
[Entry Point]
[LogonType]
[Managed code but no Assemblies detected - .NET ETW disabled]
[Mismatching Path]
[Name of the module hidden in memory]
[NTLM Authentication]
[PE anomalies]
[PEB ImageBaseAddress forgery]
[Possible .NET in memory loaded as Assembly.Load(byte[])]
[Process checkSum is 0]
[Process checkSum mismatch]
[Process Ghosting]
[Process Hollowing]
[Process Memory region hash mismatch]
[Process Memory region Protection value modified]
[Process Memory region WX]
[Process Name != Internal Name]
[PROCESS NOT SIGNED]
[Process Private memory region]
[Process Unknown executable memory region]
[Section Table]
[Shared memory subversion]
[SizeOfInitializedData is 0]
[SUSPENDED PROCESS]
[Suspicious Commandline]
[Suspicious Environment Variable]
[TimeDateStamp Inequality]
[Transaction detected: TxF/TxR]
[Unmanaged process/managed code execution detected]
[Unusual CWD]

Processes

2. Módulos:

  • Nome do módulo.
  • Tamanho do arquivo.
  • Caminho do arquivo. Mostra o FullName do VAD e do PEB se diferirem.
  • Informa se o processo aparece em quatro listas do PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList e LdrpHashTable.
  • Informa se o processo está visível na memória (VAD).
root@kitploit:~
O que se esperaria ver em um módulo normal é LMIVH:
L = InLoadOrderModuleList(PEB).
M = InMemoryOrderModuleList (PEB).
I = InInitializationOrderModuleList (PEB).
V = Detectado na memória virtual do processo.
H = Detectado na lista de hash do PEB.

Se foi desvinculado das três listas encadeadas do PEB, você veria:
    ---VH

Se o módulo for carregado manualmente pelo malware, não apareceria em nenhuma das listas do PEB, mas poderia ser detectado pela varredura da memória,
portanto apareceria como:
    −−−V−

Com a técnica DLL Hollowing com Moat (veja https://github.com/forrest-orr/artifacts-kit para um POC) o resultado seria:
    -----
  • Informação do Rich Header.
  • Funções exportadas lidas na memória e lidas do arquivo.
  • Proteção da memória atribuída ao módulo.
  • Tipo de memória.
  • Ponto de entrada do processo lido na memória.
  • Ponto de entrada do processo lido do seu arquivo.
  • Endereço de memória do processo.
  • Seções PE lidas na memória e no arquivo. Ambas são exibidas apenas se houver diferença.
  • Tamanho da seção de dados do PE.
  • Características do executável (DLLCharacteristics).
  • Número da versão principal da imagem (MajorImageVersion).
  • Checksum original e calculado.
  • Formato PE: x86/x64.
  • Tipo de máquina alvo (Target Machine).
  • Data-hora de carregamento do módulo na memória.
  • Do recurso VERSIONINFO, lido da memória e do arquivo, exibe os valores de: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • Assinatura do PE.
  • Endereço do arquivo de banco de dados do programa (.pdb) lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_FILE_HEADER lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_DEBUG_DIRECTORY lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_EXPORT_DIRECTORY lido na memória e no arquivo.
  • Data-hora obtida do IMAGE_RESOURCE_DIRECTORY lido na memória e no arquivo.
  • Hash SHA1 do arquivo.
  • Informação se é um executável .NET e versão do CLR.

• Avisos:

root@kitploit:~
[Abnormal PE Header]
[Delphi 4 – Delphi 2006]
[DLL Hiding]
[DLL Hollowing]
[Mismatching Path]
[Module checkSum is 0]
[Module checkSum mismatch]
[Module Name != OriginalFileName]
[MODULE NOT SIGNED]
[Module PE anomalies]
[Module SizeOfInitializedData is 0]
[Module TimeDateStamp Inequality]
[Name of the module hidden in memory]
[Phantom DLL Hollowing TxF]
[Private memory region]
[Section Table]
[Signed PE NOT MEM_IMAGE]
[Unsigned PE NOT MEM_IMAGE]
[Unusual module]

Modules

3. Handles: Todos os handles do processo dos tipos File, Key, Mutant, Process, Thread, Token e Section são exibidos. Dependendo do tipo de handle, as seguintes informações são exibidas:

File: Endereço completo do arquivo.

Handle File

NamedPipe: Processo cliente, processo servidor, acesso concedido, endereço do objeto no kernel.

Named pipe

Key: Endereço completo da chave acessada.

Handle Key

Mutant: Nome do mutante.

Mutant

Process: ID do processo, nome do processo, acesso concedido, endereço do objeto no kernel.

Handle Process

Thread: Nome do processo, ID do processo, ID da thread, acesso concedido, endereço do objeto no kernel.

Handle Thread

Token: Identificador de Segurança (SID) do usuário, usuário e domínio, Identificador Único Local (LUID) da Sessão de Login, tipo de token.

Handle Token

Section: nome do objeto, ID do handle, endereço de memória, tamanho, propriedades de alocação de memória, ponto de entrada do módulo se aplicável, acesso permitido, endereço do objeto no kernel.

Handle Section

• Avisos:

root@kitploit:~
[Handle-Section Phantom DLL Hollowing TxF]
[Handle-Section Suspicious: Injection]
[Pipe Handle to another process]
[Process Handle to another process]
[ShadowMove Lateral Movement]

4. Tokens: Nas threads onde um token é detectado, é exibido o seguinte:

  • ID da thread.
  • Estado da thread.
  • Usuário e domínio.
  • Identificador Único Local (LUID) da sessão de login.
  • Identificador Único Local (LUID) da sessão de login de origem.
  • Tipo de token.
  • Integridade do token.

• Avisos:

root@kitploit:~
[Thread with TOKEN]

Tokens

5. Threads:

  • ID da thread.
  • Endereço de início da thread.
  • Endereço completo do módulo.
  • Estado.
  • Pilha de chamadas (Call Stack).

• Avisos:

root@kitploit:~
[Thread-Memory NOT MEM_IMAGE]
[Thread-Possible Ekko technique]
[Thread-Possible Foliage technique]
[Thread-Unknown module in Stack]

Threads

6. Assemblies .NET

  • Domínios de aplicação (Application domains).
  • Endereço completo do arquivo.

• Avisos:

root@kitploit:~
[.NET Assembly w/o ILPath]

NET

7. Espaço de endereço de memória. Exibe de todas as regiões de memória do processo os valores de:

  • Endereço de memória.
  • Proteção.
  • Estado.
  • Tipo.
  • Nome do arquivo lido do VAD.
  • Tamanho da região.
  • Endereço base ao qual sua atribuição pertence.
  • Proteção de alocação de memória inicial.

• Avisos:

root@kitploit:~
[Executable memory region not MEM_IMAGE]
[Hidden PE]
[Lagos Island Method]
[Mapped Image]
[Memory region hash]
[Memory region Protection value modified]
[Memory region WX]
[Memory/File values mismatch]
[Moat detected]
[MZ/PE Not Present]
[Shellcode]
[Unknown executable memory region]

Memory

Memory

Baixar ferramenta
  • Data-hora obtida do IMAGE_RESOURCE_DIRECTORY lido na memória e no arquivo.
  • Hash SHA1 do arquivo.
  • Informação se é um executável .NET e versão do CLR.
  • Informação se NTFS ou Gravação Transacional (TxF/TxR) foi detectado no processo.
  • Procura por variáveis de ambiente suspeitas.
  • Verifica o estado das threads.
  • Obtém as tarefas em execução no sistema associadas a cada processo.