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
Hunt-Sleeping-Beacons — Scanner di callstack che identifica IOCs di agenti C2 unpacked o iniettati analizzando il comportamento idle dei thread, la memoria non backed, il module stomping, APC, timer e lo spoofing dell'indirizzo di ritorno. | Kitploit
Strumenti/GitHubGitHub/theflink/hunt-sleeping-beacons
Strumenti DifensiviMemory ForensicsInformatica ForenseAnalisi MalwareAnalisi di BinariRisposta agli Incidenti
GitHubtheflink/hunt-sleeping-beacons

Hunt-Sleeping-Beacons

Scanner di callstack che identifica IOCs di agenti C2 unpacked o iniettati analizzando il comportamento idle dei thread, la memoria non backed, il module stomping, APC, timer e lo spoofing dell'indirizzo di ritorno.

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
Vedi Repository
678646 mesi faRevisionato da Kitploit

Hunt-Sleeping-Beacons

Questo progetto è (principalmente) uno scanner di callstack che cerca di identificare IOC che indicano un agente C2 spacchettato o iniettato.

Tutti i controlli si basano sull'osservazione che gli agenti C2 attendono tra le loro callback, causando l'idle del thread del beacon, e questo strumento mira ad analizzare cosa potrebbe aver causato l'idle del thread.

Ciò include IOC tradizionali, come memoria non supportata o module stomping, ma tenta anche di rilevare molteplici implementazioni di sleepmask che utilizzano APC o Timer. Quest'ultima operazione viene eseguita sia analizzando il callstack che enumerando i timer e le loro esatte callback dallo userland.

(Quasi) nessuno di questi IOC può essere considerato un vero positivo al 100%; ad esempio, la rilevazione di module stomping è molto soggetta a falsi positivi. Tuttavia, i risultati potrebbero sollevare sospetti sul comportamento di un processo.

I binari DotNet e a 32Bit vengono ignorati.

x

Controlli

Memoria non supportata (Unbacked Memory)

Una pagina r(w)x privata in un callstack potrebbe indicare un beacon che è stato spacchettato o iniettato in fase di esecuzione.

Memoria non eseguibile

Molte sleepmask modificano i permessi della pagina del beacon rendendola non eseguibile. Ciò porta a una pagina non eseguibile sospetta nel callstack.

Module Stomping

Spesso i beacon evitano pagine di memoria private caricando e sovrascrivendo un modulo legittimo dal disco. Grazie al meccanismo di copy on write, le immagini manipolate possono essere identificate controllando il campo VirtualAttributes.SharedOriginal di MEMORY_WORKING_SET_EX_INFORMATION. Se una qualsiasi pagina nel callstack non è privata e SharedOriginal == 0, viene considerata un IOC.

Probabilmente questa è la rilevazione più soggetta a falsi positivi. :'(

APC sospetta

Molte implementazioni di sleepmask accodano una serie di APC a Ntdll!NtContinue, una delle quali attiva l'esecuzione di Ntdll!WaitForSingleObject. Pertanto, se Ntdll!KiUserApcDispatcher viene trovato nel callstack di una funzione bloccante, questo strumento lo considera un IOC.

Timer sospetti

Analogamente all'uso sospetto delle APC, questo strumento verifica anche la presenza di ntdll!RtlpTpTimerCallback nel callstack di una funzione bloccante per rilevare sleepmask basate su timer.

Enumerazione di timer e callback

Per quanto ne so, i timer sono implementati sopra i ThreadPool. Come ha dimostrato Alon Leviev, questi possono essere enumerati usando NtQueryInformationWorkerFactory con WorkerFactoryBasicInformation.
La struttura WORKER_FACTORY_BASIC_INFORMATION contiene un FULL_TP_POOL che a sua volta si collega a una lista doppiamente linkata TimerQueue. Attraversando questa lista di PFULL_TP_TIMER è possibile accedere a ogni callback registrata. Se una qualsiasi callback viene trovata puntare a un insieme di chiamate API sospette, come ntdll!ntcontinue, può essere considerata un forte IOC.

x

Chiamate intermodulari anomale (Module Proxying)

Originariamente il module proxying è stato introdotto come metodo per bypassare callstack sospetti. Sebbene il bypass funzioni, introduce un altro forte IOC, poiché NTAPI viene utilizzata per chiamare WINAPI. Questo è insolito, dato che WINAPI è un'astrazione di NTAPI. Pertanto, se si osserva un callstack in cui viene trovata una sequenza ntdll.dll->kernel32.dll->ntdll.dll che termina chiamando una funzione bloccante, può essere considerato un IOC.

Spoofing dell'indirizzo di ritorno

La maggior parte delle implementazioni di Return Address Spoofing che conosco utilizza una tecnica in cui la funzione chiamata restituisce un gadget jmp [Nonvolatile-Register]. Questo progetto semplicemente itera ogni indirizzo di ritorno nei callstack e cerca pattern che indicano il ritorno a un gadget jmp.

x

Utilizzo

root@kitploit:~
 _   _    _____   ______
| | | |  /  ___|  | ___ \
| |_| |  \ `--.   | |_/ /
|  _  |   `--. \  | ___ \
| | | |  /\__/ /  | |_/ /
\_| |_/  \____/   \____/

Hunt-Sleeping-Beacons | @thefLinkk

-p / --pid {PID}

--dotnet | Imposta per includere anche i processi dotnet. (Soggetto a falsi positivi)
--commandline | Abilita l'output della riga di comando per i processi sospetti
-h / --help | Stampa questo messaggio?

Crediti

  • https://urien.gitbook.io/diago-lima/a-deep-dive-into-exploiting-windows-thread-pools/attacking-timer-queues
  • https://github.com/mrexodia/phnt-single-header
  • https://github.com/SafeBreach-Labs/PoolParty
  • https://github.com/bshoshany/thread-pool
Scarica lo strumento