Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
WhacAMole — Análisis de memoria en vivo detectando IOCs de malware en procesos, módulos, handles, tokens, hilos, ensamblados .NET, espacio de direcciones de memoria y variables de entorno. Vuelca, detecta y desensambla hooks, shellcode, regiones de memoria, módulos y procesos. | Kitploit
Herramientas/GitHubGitHub/ignacioj/whacamole
Gestión de Indicadores de Compromiso (IOC)Análisis Dinámico (Sandboxing)Forensia de MemoriaIngeniería InversaShellcodeDepuradoresAnálisis ForenseAnálisis de MalwareForensia DigitalAnálisis de BinariosInteligencia de AmenazasRespuesta a Incidentes
4545hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHubignacioj/whacamole

WhacAMole

Análisis de memoria en vivo detectando IOCs de malware en procesos, módulos, handles, tokens, hilos, ensamblados .NET, espacio de direcciones de memoria y variables de entorno. Vuelca, detecta y desensambla hooks, shellcode, regiones de memoria, módulos y procesos.

Ver Repositorio
Compartir

WhacAMole

WAM_logo

WhacAMole es un programa que analiza procesos en memoria de forma integral, detectando y alertando sobre anomalías relacionadas con malware y presentando y guardando en archivos toda la información relevante para verificación, correlación o análisis, así como volcando regiones de memoria, procesos y módulos sospechosos. Para lograrlo, no solo analiza las anomalías de las regiones de memoria de los procesos y los módulos que cargan, sino que también analiza en profundidad todo el espacio de memoria en uso por el proceso. En este momento, WhacAMole es capaz de identificar 67 alertas relacionadas con comportamiento malicioso o que solo pueden deberse a malware. Muestra más de 70 propiedades de los procesos, memoria y módulos, comparando muchos de sus atributos leídos en memoria con los que aparecen en el archivo correspondiente en disco, desensambla parcialmente regiones de memoria sospechosas y desensambla parcialmente funciones exportadas que han sido modificadas en memoria para que los analistas realicen sus propias investigaciones.

Modificación de función por malware

A diferencia de otros programas similares, pone a disposición de los analistas toda la información relevante sobre los procesos, etiquetando con diferentes alertas aquellas características que están relacionadas con malware, para que puedan realizar su propio análisis o buscar otras señales de la existencia de procesos maliciosos. Las alertas se clasifican, según su peligrosidad y el número de procesos en los que aparece el mismo comportamiento, según una escala de seis valores, reflejada en el documento html con una escala de colores, siendo 6 (color negro) un indicador de la probabilidad más alta de que la característica detectada se deba a malware y 1 (color gris) de que, aunque el comportamiento es anómalo, hay muchos procesos del sistema donde se ha observado el mismo comportamiento:

Color codes

Para facilitar el trabajo de los analistas, la información se presenta en pantalla, en un archivo HTML con un panel de navegación de los procesos analizados y en archivos de texto csv. En el panel lateral del documento html, se muestra el árbol de procesos, con el color correspondiente a la alerta más alta detectada en ellos, con el hipervínculo a su ubicación en el documento, y con el color azul en su PID si es un proceso de 32 bits o verde si es un proceso .NET. Los procesos que tienen Control Flow Guard (CFG) habilitado se muestran en cursiva.

Tree1

La información sobre sesiones RDP remotas se muestra al inicio de la información del proceso:

RDP

La capacidad de red se muestra de dos formas: si se ha detectado una conexión TCP se muestra con el símbolo del globo terráqueo, y si se ha detectado un socket conectado, se muestra con un símbolo de globo vacío. Se añade un símbolo (círculo blanco) para procesos con bibliotecas de navegación http en memoria: wininet.dll y winhttp.dll.

TreeTCPSocket

Detalle de red:

TCPDetail

Socket conectado:

socketDetail

Hay un símbolo especial (una llave) cuando se detecta actividad similar a Mimikatz.

socketDetail

En la parte inferior del panel de navegación del documento html, se muestran todas las alertas, con su color, con los PID de los procesos en los que se han detectado en forma de hipervínculo a la posición del documento donde se muestra el proceso.

Detections

Si no hay procesos detectados con una alerta, su nombre se muestra sobre fondo blanco.

El panel principal muestra todos los procesos con su información en secciones plegables que por defecto están ocultas. Todas las alertas son visibles siempre.

socketDetail

Las regiones de memoria guardadas se xorean con la clave 0x0E para evitar que el antivirus las elimine.

Analiza, compara y presenta información de:

1. Procesos:

  • Nombre del proceso.
  • Tamaño del archivo.
  • PID del proceso.
  • PPID del proceso.
  • Conexiones de red TCP y UDP.
  • Informa si el proceso aparece en cuatro listas PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList y LdrpHashTable.
  • Informa si el proceso es visible en la memoria (VAD).
  • Información del Rich Header.
  • Funciones exportadas leídas en memoria y leídas desde archivo.
  • Funciones importadas.
  • Módulos de importación retrasada.
  • Protección de la memoria asignada al módulo del proceso.
  • Tipo de memoria.
  • Punto de entrada del proceso leído en memoria.
  • Punto de entrada del proceso leído desde su archivo.
  • Dirección de memoria del proceso.
  • Secciones PE leídas en memoria y en el archivo. Ambas se muestran solo si hay diferencia.
  • Tamaño de la sección de datos PE.
  • Características del ejecutable (DLLCharacteristics).
  • El número de versión principal de la imagen (MajorImageVersion).
  • Checksum original y calculado.
  • Del recurso VERSIONINFO, leído desde la memoria y desde el archivo, muestra los valores de: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • ID de sesión del proceso obtenido de la Autoridad de Seguridad Local (LSA).
  • ID de sesión visible desde el proceso.
  • Identificador Único Local (LUID) de la sesión de inicio de sesión.
  • Identificador Único Local (LUID) de la sesión de inicio de sesión del proceso del que se origina.
  • Integridad del token.
  • Tipo de token.
  • Tipo de inicio de sesión.
  • Paquete de autenticación utilizado.
  • Usuario y dominio.
  • Identificador de seguridad (SID) del usuario.
  • Pertenencia al grupo de administradores locales.
  • Línea de comandos del proceso.
  • Ruta del archivo del proceso. Muestra el FullName del VAD y del PEB si difieren.
  • Directorio de trabajo actual (CWD) del proceso.
  • Formato PE: x86/x64.
  • Tipo de máquina destino (Target Machine).
  • Fecha-hora de creación del proceso.
  • Tiempo transcurrido desde el inicio del sistema hasta la creación del proceso.
  • Firma del PE.
  • Dirección del archivo de base de datos del programa (.pdb) leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_FILE_HEADER leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_DEBUG_DIRECTORY leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_EXPORT_DIRECTORY leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_RESOURCE_DIRECTORY leído en memoria y en el archivo.
  • Hash SHA1 del archivo.
  • Información sobre si es un ejecutable .NET y versión CLR.
  • Información sobre si se ha detectado NTFS o Grabación Transaccional (TxF/TxR) en el proceso.
  • Busca variables de entorno sospechosas.
  • Comprueba el estado de los hilos.
  • Obtiene las tareas en ejecución en el sistema asociadas a cada proceso.

• Advertencias:

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:

  • Nombre del módulo.
  • Tamaño del archivo.
  • Ruta del archivo. Muestra el FullName del VAD y del PEB si difieren.
  • Informa si el proceso aparece en cuatro listas PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList y LdrpHashTable.
  • Informa si el proceso es visible en la memoria (VAD).
root@kitploit:~
What you would expect to see in a normal module is LMIVH:
L = InLoadOrderModuleList(PEB).
M = InMemoryOrderModuleList (PEB).
I = InInitializationOrderModuleList (PEB).
V = Detected in the virtual memory of the process.
H = Detected in the PEB hash list.

If it has been unlinked from the three PEB linked lists you would see:
    ---VH

If the module is loaded manually by the malware it would not appear in any of the PEB lists but it could be detected by scanning the memory,
so It would appear as:
    −−−V−

With the DLL Hollowing with Moat technique (see https://github.com/forrest-orr/artifacts-kit for a POC) the result would be:
    -----
  • Información del Rich Header.
  • Funciones exportadas leídas en memoria y leídas desde archivo.
  • Protección de la memoria asignada al módulo.
  • Tipo de memoria.
  • Punto de entrada del proceso leído en memoria.
  • Punto de entrada del proceso leído desde su archivo.
  • Dirección de memoria del proceso.
  • Secciones PE leídas en memoria y en el archivo. Ambas se muestran solo si hay diferencia.
  • Tamaño de la sección de datos PE.
  • Características del ejecutable (DLLCharacteristics).
  • El número de versión principal de la imagen (MajorImageVersion).
  • Checksum original y calculado.
  • Formato PE: x86/x64.
  • Tipo de máquina destino (Target Machine).
  • Fecha-hora de carga del módulo en memoria.
  • Del recurso VERSIONINFO, leído desde la memoria y desde el archivo, muestra los valores de: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • Firma del EP.
  • Dirección del archivo de base de datos del programa (.pdb) leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_FILE_HEADER leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_DEBUG_DIRECTORY leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_EXPORT_DIRECTORY leído en memoria y en el archivo.
  • Fecha-hora obtenida del IMAGE_RESOURCE_DIRECTORY leído en memoria y en el archivo.
  • Hash SHA1 del archivo.
  • Información sobre si es un ejecutable .NET y versión CLR.

• Advertencias:

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: Se muestran todos los manejadores de proceso de los tipos File, Key, Mutant, Process, Thread, Token y Section. Dependiendo del tipo de manejador, se muestra la siguiente información:

Archivo: Dirección completa del archivo.

Handle File

NamedPipe: Proceso cliente, proceso servidor, acceso concedido, dirección del objeto en el kernel.

Named pipe

Clave: Dirección completa de la clave accedida.

Handle Key

Mutante: Nombre del mutante.

Mutant

Proceso: ID del proceso, nombre del proceso, acceso concedido, dirección del objeto del kernel.

Handle Process

Hilo: Nombre del proceso, ID del proceso, ID del hilo, acceso concedido, dirección del objeto del kernel.

Handle Thread

Token: Identificador de seguridad (SID) del usuario, usuario y dominio, Identificador Único Local (LUID) de la Sesión de Inicio de Sesión, tipo de token.

Handle Token

Sección: nombre del objeto, ID del manejador, dirección de memoria, tamaño, propiedades de asignación de memoria, punto de entrada del módulo si corresponde, acceso permitido, dirección del objeto en el kernel.

Handle Section

• Advertencias:

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: En los hilos donde se detecta un token, se muestra lo siguiente:

  • ID del hilo.
  • Estado del hilo.
  • Usuario y dominio.
  • Identificador Único Local (LUID) de la sesión de inicio de sesión.
  • Identificador Único Local (LUID) de la sesión de inicio de sesión de la que provino.
  • Tipo de token.
  • Integridad del token.

• Advertencias:

root@kitploit:~
[Thread with TOKEN]

Tokens

5. Hilos:

  • ID del hilo.
  • Dirección de inicio del hilo.
  • Dirección completa del módulo.
  • Estado.
  • Pila de llamadas.

• Advertencias:

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

Threads

6. Ensamblados .NET

  • Dominios de aplicación.
  • Dirección completa del archivo.

• Advertencias:

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

NET

7. Espacio de direcciones de memoria. Muestra de todas las regiones de memoria del proceso los valores de:

  • Dirección de memoria.
  • Protección.
  • Estado.
  • Tipo.
  • Nombre del archivo leído del VAD.
  • Tamaño de la región.
  • Dirección base a la que pertenece su asignación.
  • Protección inicial de asignación de memoria.

• Advertencias:

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

Descargar herramienta