Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
WhacAMole — Analisi della memoria live per rilevare IOC di malware in processi, moduli, handle, token, thread, assembly .NET, spazio degli indirizzi di memoria e variabili d'ambiente. Dumpa, rileva e disassembla hook, shellcode, regioni di memoria, moduli e processi. | Kitploit
Strumenti/GitHubGitHub/ignacioj/whacamole
Gestione degli Indicatori di Compromissione (IOC)Analisi Dinamica (Sandboxing)Memory ForensicsReverse EngineeringShellcodeDebuggerInformatica ForenseAnalisi MalwareDigital ForensicsAnalisi di BinariThreat IntelligenceRisposta agli Incidenti
4541 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubignacioj/whacamole

WhacAMole

Analisi della memoria live per rilevare IOC di malware in processi, moduli, handle, token, thread, assembly .NET, spazio degli indirizzi di memoria e variabili d'ambiente. Dumpa, rileva e disassembla hook, shellcode, regioni di memoria, moduli e processi.

Vedi Repository

WhacAMole

WAM_logo

WhacAMole è un programma che analizza i processi in memoria in modo integrale, rilevando e segnalando anomalie legate al malware e presentando e salvando in file tutte le informazioni rilevanti per verifica, correlazione o analisi, nonché eseguendo il dump di regioni di memoria, processi e moduli sospetti. Per raggiungere questo obiettivo, analizza non solo le anomalie delle regioni di memoria dei processi e dei moduli che caricano, ma analizza anche in profondità tutto lo spazio di memoria in uso dal processo. Al momento, WhacAMole è in grado di identificare 67 avvisi relativi a comportamenti malevoli o che possono essere dovuti solo al malware. Mostra più di 70 proprietà dei processi, della memoria e dei moduli, confrontando molti dei loro attributi letti in memoria con quelli presenti nel file corrispondente su disco, disassembla parzialmente le regioni di memoria sospette e disassembla parzialmente le funzioni esportate che sono state modificate in memoria per consentire agli analisti di condurre le proprie indagini.

Modificación de función por malware

A differenza di altri programmi simili, rende disponibili agli analisti tutte le informazioni rilevanti sui processi, etichettando con diversi avvisi quelle caratteristiche correlate al malware, in modo che possano condurre la propria analisi o cercare altri segni dell'esistenza di processi malevoli. Gli avvisi sono classificati, in base alla loro pericolosità e al numero di processi in cui appare lo stesso comportamento, secondo una scala di sei valori, riflessa nel documento html con una scala cromatica, dove 6 (colore nero) è un indicatore della più alta probabilità che la caratteristica rilevata sia dovuta a malware e 1 (colore grigio) indica che, sebbene il comportamento sia anomalo, ci sono molti processi di sistema in cui è stato osservato lo stesso comportamento:

Color codes

Per facilitare il lavoro degli analisti, le informazioni vengono presentate a schermo, in un file HTML con un pannello di navigazione dei processi analizzati e in file csv di testo. Nel pannello laterale del documento html, viene mostrato l'albero dei processi, con il colore corrispondente all'avviso più alto rilevato in essi, con il collegamento ipertestuale alla loro posizione nel documento, e con il colore blue nel PID se è un processo a 32 bit o verde se è un processo .NET. I processi che hanno Control Flow Guard (CFG) abilitato sono mostrati in corsivo.

Tree1

Le informazioni sulle sessioni RDP remote vengono visualizzate all'inizio delle informazioni sul processo:

RDP

La capacità di rete viene visualizzata in due modi: se è stata rilevata una connessione TCP, viene visualizzata con il simbolo del globo terrestre, e se è stato rilevato un socket connesso, viene visualizzato con il simbolo del globo vuoto. Simbolo aggiunto (cerchio bianco) per processi con librerie di navigazione http in memoria: wininet.dll e winhttp.dll.

TreeTCPSocket

Dettaglio rete:

TCPDetail

Socket connesso:

socketDetail

C'è un simbolo speciale (una chiave) quando viene rilevata attività simile a Mimikatz.

socketDetail

Nella parte inferiore del pannello di navigazione del documento html, vengono mostrati tutti gli avvisi, con il loro colore, con i PID dei processi in cui sono stati rilevati sotto forma di collegamento ipertestuale alla posizione del documento in cui viene mostrato il processo.

Detections

Se non ci sono processi rilevati con un avviso, il loro nome viene visualizzato su sfondo bianco.

Il pannello principale mostra tutti i processi con le relative informazioni in sezioni collassabili che per impostazione predefinita sono nascoste. Tutti gli avvisi sono sempre visibili.

socketDetail

Le regioni di memoria salvate vengono xorizzate con la chiave 0x0E per impedire agli antivirus di eliminarle.

Analizza, confronta e presenta informazioni da:

1. Processi:

  • Nome del processo.
  • Dimensione del file.
  • PID del processo.
  • PPID del processo.
  • Connessioni di rete TCP e UDP.
  • Informa se il processo appare in quattro liste PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList e LdrpHashTable.
  • Informa se il processo è visibile in memoria (VAD).
  • Informazioni Rich Header.
  • Funzioni esportate lette in memoria e lette dal file.
  • Funzioni importate.
  • Moduli di importazione ritardata (Delay Import).
  • Protezione della memoria assegnata al modulo del processo.
  • Tipo di memoria.
  • Punto di ingresso del processo letto in memoria.
  • Punto di ingresso del processo letto dal file.
  • Indirizzo di memoria del processo.
  • Sezioni PE lette in memoria e nel file. Entrambe vengono visualizzate solo se c'è una differenza.
  • Dimensione della sezione dati PE.
  • Caratteristiche dell'eseguibile (DLLCharacteristics).
  • Il numero di versione maggiore dell'immagine (MajorImageVersion).
  • Checksum originale e calcolato.
  • Dalla risorsa VERSIONINFO, letta in memoria e dal file, mostra i valori di: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • ID di sessione del processo ottenuto dalla Local Security Authority (LSA).
  • ID di sessione visibile dal processo.
  • Locally Unique Identifier (LUID) della sessione di login.
  • Locally Unique Identifier (LUID) della sessione di login del processo da cui origina.
  • Integrità del token.
  • Tipo di token.
  • Tipo di logon.
  • Pacchetto di autenticazione utilizzato.
  • Utente e dominio.
  • Security Identifier (SID) dell'utente.
  • Appartenenza al gruppo degli amministratori locali.
  • Riga di comando del processo.
  • Percorso del file del processo. Mostra il FullName del VAD e del PEB se differiscono.
  • Directory di lavoro corrente (CWD) del processo.
  • Formato PE: x86/x64.
  • Tipo di macchina target (Target Machine).
  • Data e ora di creazione del processo.
  • Tempo trascorso dall'avvio del sistema alla creazione del processo.
  • Firma del PE.
  • Indirizzo del file di database del programma (.pdb) letto in memoria e nel file.
  • Data e ora ottenuta da IMAGE_FILE_HEADER letta in memoria e nel file.
  • Data e ora ottenuta da IMAGE_DEBUG_DIRECTORY letta in memoria e nel file.

• Avvisi:

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. Moduli:

  • Nome del modulo.
  • Dimensione del file.
  • Percorso del file. Mostra il FullName del VAD e del PEB se differiscono.
  • Informa se il processo appare in quattro liste PEB: InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList e LdrpHashTable.
  • Informa se il processo è visibile in 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:
    -----
  • Informazioni Rich Header.
  • Funzioni esportate lette in memoria e lette dal file.
  • Protezione della memoria assegnata al modulo.
  • Tipo di memoria.
  • Punto di ingresso del processo letto in memoria.
  • Punto di ingresso del processo letto dal file.
  • Indirizzo di memoria del processo.
  • Sezioni PE lette in memoria e nel file. Entrambe vengono visualizzate solo se c'è una differenza.
  • Dimensione della sezione dati PE.
  • Caratteristiche dell'eseguibile (DLLCharacteristics).
  • Il numero di versione maggiore dell'immagine (MajorImageVersion).
  • Checksum originale e calcolato.
  • Formato PE: x86/x64.
  • Tipo di macchina target (Target Machine).
  • Data e ora di caricamento del modulo in memoria.
  • Dalla risorsa VERSIONINFO, letta in memoria e dal file, mostra i valori di: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • Firma del PE.
  • Indirizzo del file di database del programma (.pdb) letto in memoria e nel file.
  • Data e ora ottenuta da IMAGE_FILE_HEADER letta in memoria e nel file.
  • Data e ora ottenuta da IMAGE_DEBUG_DIRECTORY letta in memoria e nel file.
  • Data e ora ottenuta da IMAGE_EXPORT_DIRECTORY letta in memoria e nel file.
  • Data e ora ottenuta da IMAGE_RESOURCE_DIRECTORY letta in memoria e nel file.
  • Hash SHA1 del file.
  • Informazioni su se è un eseguibile .NET e versione CLR.

• Avvisi:

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. Handle: Vengono visualizzati tutti gli handle del processo dei tipi File, Key, Mutant, Process, Thread, Token e Section. A seconda del tipo di handle, vengono visualizzate le seguenti informazioni:

File: Indirizzo completo del file.

Handle File

NamedPipe: Processo client, processo server, accesso concesso, indirizzo dell'oggetto nel kernel.

Named pipe

Key: Indirizzo completo della chiave a cui si è acceduto.

Handle Key

Mutant: Nome del mutant.

Mutant

Process: ID del processo, nome del processo, accesso concesso, indirizzo dell'oggetto nel kernel.

Handle Process

Thread: Nome del processo, ID del processo, ID del thread, accesso concesso, indirizzo dell'oggetto nel kernel.

Handle Thread

Token: Security Identifier (SID) dell'utente, utente e dominio, Locally Unique Identifier (LUID) della sessione di login, tipo di token.

Handle Token

Section: nome dell'oggetto, ID dell'handle, indirizzo di memoria, dimensione, proprietà di allocazione della memoria, punto di ingresso del modulo se applicabile, accesso consentito, indirizzo dell'oggetto nel kernel.

Handle Section

• Avvisi:

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. Token: Nei thread in cui viene rilevato un token, viene visualizzato quanto segue:

  • ID del thread.
  • Stato del thread.
  • Utente e dominio.
  • Locally Unique Identifier (LUID) della sessione di login.
  • Locally Unique Identifier (LUID) della sessione di login da cui proviene.
  • Tipo di token.
  • Integrità del token.

• Avvisi:

root@kitploit:~
[Thread with TOKEN]

Tokens

5. Thread:

  • ID del thread.
  • Indirizzo di partenza del thread.
  • Indirizzo completo del modulo.
  • Stato.
  • Call Stack.

• Avvisi:

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

Threads

6. Assembly .NET

  • Domini applicativi.
  • Indirizzo completo del file.

• Avvisi:

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

NET

7. Spazio degli indirizzi di memoria. Mostra da tutte le regioni di memoria del processo i valori di:

  • Indirizzo di memoria.
  • Protezione.
  • Stato.
  • Tipo.
  • Nome del file letto dal VAD.
  • Dimensione della regione.
  • Indirizzo di base a cui appartiene la sua allocazione.
  • Protezione iniziale dell'allocazione di memoria.

• Avvisi:

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

Scarica lo strumento
  • Data e ora ottenuta da IMAGE_EXPORT_DIRECTORY letta in memoria e nel file.
  • Data e ora ottenuta da IMAGE_RESOURCE_DIRECTORY letta in memoria e nel file.
  • Hash SHA1 del file.
  • Informazioni su se è un eseguibile .NET e versione CLR.
  • Informazioni su se è stato rilevato NTFS o Transactional Recording (TxF/TxR) nel processo.
  • Ricerca di variabili d'ambiente sospette.
  • Controlla lo stato dei thread.
  • Ottiene le attività in esecuzione nel sistema associate a ciascun processo.