Eine clevere Angriffstechnik: Durch das Tunneln von Meterpreter über SSH wird maximale Tarnung erreicht und die Detektion vermieden.
Einleitung: Das Katz-und-Maus-Spiel der Cybersicherheit
In der sich ständig weiterentwickelnden Landschaft der Cybersicherheit suchen Penetrationstester und Red-Team-Operatoren kontinuierlich nach neuen Wegen, um Organisationsverteidigungen zu testen. Eine der größten Herausforderungen? Moderne Antivirus- (AV) und Endpoint Detection and Response (EDR)-Produkte sind unglaublich ausgefeilt geworden bei der Erkennung von bösartigem Netzwerkverkehr – oft fangen sie Bedrohungen ab, bevor diese überhaupt ihr Ziel erreichen.
Aber was wäre, wenn wir legitime Windows-Funktionen nutzen könnten, um unsere Testaktivitäten zu verbergen? Das Trovent Security Team hat eine elegante Lösung entdeckt: Meterpreter-Traffic durch SSH-Verbindungen zu tunneln, unter Verwendung von Tools, die auf modernen Windows-Systemen vorinstalliert sind.
Die Herausforderung verstehen: Warum traditionelle Ansätze versagen
Das Problem mit Standard-Meterpreter-Verbindungen
Meterpreter ist ein leistungsstarkes Penetrationstest-Tool, das Fernzugriff auf kompromittierte Systeme ermöglicht. Allerdings sind seine Traffic-Muster Sicherheitsprodukten gut bekannt. Selbst bei Verwendung von Verschlüsselung wie mTLS können Verbindungen markiert werden, wenn:
- Das Zertifikat nicht von einer vertrauenswürdigen Autorität stammt
- Die Organisation vollständige Traffic-Interception durchführt
- Traffic-Muster bekannten bösartigen Signaturen entsprechen
„Living Off the Land“ als Lösung
Das Konzept des „Living Off the Land“ beinhaltet die Verwendung legitimer Systemtools und -funktionen zur Zielerreichung – was die Erkennung erheblich erschwert. Unsere Forschung ergab, dass OpenSSH (sowohl Server als auch Client) mit allen aktuellen Windows 10 und Windows 11 Builds ausgeliefert wird. Dies führte zu einer faszinierenden Frage:
Was wäre, wenn wir den gesamten Meterpreter-Traffic durch eine legitime SSH-Verbindung tunneln?
Die technische Implementierung: Aufbau des SSH-Tunnels
Schritt 1: Konfiguration des Meterpreter-Handlers
Die erste Herausforderung besteht darin, Meterpreter für die Arbeit mit lokalen Verbindungen einzurichten. Da unser Handler auf localhost lauschen muss (aufgrund des SSH-Tunnels), müssen wir zwei kritische Parameter konfigurieren:
ReverseListenerBindAddress
ReverseListenerBindPort
Diese Parameter stellen sicher, dass der Handler die zweite Stage-Payload ordnungsgemäß durch unseren Tunnel zurück zum Ziel senden kann.
Konfiguration des Meterpreter-Handlers mit erweiterten Optionen für SSH-Tunnel-Kompatibilität
Das Metasploit-Framework bietet detaillierte Dokumentation zu diesen Parametern und erklärt, wie LHOST
immer die IP/Host bleiben muss, die vom Ziel aus erreichbar ist, während ReverseListenerBindAddress
dem Handler mitteilt, an welche Schnittstelle er sich binden soll:
Metasploits erweiterte Konfigurationsparameter gesetzt
Schritt 2: Etablierung des SSH-Tunnels
Auf dem Ziel-Windows-System erstellen wir einen SSH-Tunnel mit dem eingebauten OpenSSH-Client. Dies beinhaltet:
1. Generierung eines SSH-Schlüsselpaares
2. Hinzufügen des öffentlichen Schlüssels zu den authorized_keys
des Angreifers
3. Einrichtung der lokalen Port-Weiterleitung
Einrichtung der SSH-lokalen Port-Weiterleitung von Windows zur Umleitung des Traffics durch den Tunnel
Schritt 3: Payload-Lieferung und Ausführung
Zunächst müssen wir unsere Payload mit msfvenom auf dem Angreifer-Kali-System generieren:
Erstellung einer Meterpreter-Payload, konfiguriert für localhost-Verbindung
durch unseren SSH-Tunnel mit msfvenom
Die generierte Payload-Datei (local443met.txt) wird dann auf die Windows-Zielmaschine übertragen.
Für diesen Proof of Concept verwendeten wir unser eigenes Tool tRWXi (verfügbar auf GitHub) zur Handhabung der Payload-Injektion. Das Tool:
- Enumeriert RWX (Read, Write, Execute) Speicherbereiche
- Identifiziert geeignete Injektionsziele
- Schreibt die Payload in den Speicher
- Führt den Shellcode aus
Der Ausführungsprozess erfolgt in mehreren präzisen Schritten:
tRWXi-Tool entdeckt schreib- und ausführbare Speicherbereiche in laufenden Prozessen
Zielprozess mit geeignetem RWX-Speicherbereich für Injektion identifiziert
Payload erfolgreich in den Zielspeicherbereich injiziert
Überprüfung, dass die Payload-Bytes korrekt in den Speicher geschrieben wurden
Erfolgreiche Shellcode-Ausführung startet die Meterpreter-Verbindung
Die Ergebnisse: Eine Erfolgreiche Umgehung von Windows Defender
Die bedeutendste Erkenntnis? Windows Defender ignorierte unseren Angriff vollständig. Durch das Routing der Meterpreter-Verbindung über localhost via SSH-Tunnel vermieden wir das Auslösen von Sicherheitswarnungen. Die Verbindung erschien legitim, weil:
- SSH ein standardmäßiges, vertrauenswürdiges Protokoll ist
- Die initiale Verbindung zu localhost geht, nicht zu einem externen Server
- Die Traffic-Verschlüsselung auf SSH-Ebene erfolgt und Payload-Signaturen maskiert
Aktive Meterpreter-Sitzung über SSH-Tunnel etabliert – Windows Defender zeigt keine Warnungen
Hauptvorteile dieses Ansatzes
1. Kleinere, effizientere Payloads
Die Verwendung vollständig verschlüsselter SSH-Tunnel ermöglicht präzisere Payloads wie reverse_tcp
anstelle von sperrigeren Optionen wie reverse_https
.
2. Flexible Injektionsoptionen
Stager sind viel kleiner als vollständige unstaged Payloads und bieten mehr potenzielle Injektionspunkte in RWX-Speicherbereichen oder laufenden Anwendungen.
3. Legitime Traffic-Muster
SSH-Traffic ist in Unternehmensumgebungen üblich, wodurch sich dieser Ansatz in normale Netzwerkaktivitäten einfügt.
4. Eingebaute Tools
Keine Notwendigkeit, verdächtige Binärdateien hochzuladen – alles Benötigte existiert bereits auf modernen Windows-Systemen.
Implikationen für Sicherheitsteams
Diese Technik demonstriert mehrere wichtige Sicherheitsüberlegungen:
1. Vertrauensgrenzen sind wichtig: Sicherheitsprodukte vertrauen oft localhost-Verbindungen, was potenzielle blinde Flecken schafft.
2. Living Off the Land ist mächtig: Angreifer, die eingebaute Tools verwenden, sind viel schwerer zu
erkennen als solche, die eigene Malware verwenden.
3. Defense in Depth ist kritisch: Organisationen benötigen mehrere Sicherheitsebenen, da das Umgehen einer Kontrolle (wie Netzwerküberwachung) nicht das gesamte System kompromittieren sollte.
4. SSH-Nutzung überwachen: Ungewöhnliche SSH-Verbindungen, insbesondere mit PortWeiterleitung, rechtfertigen eine Untersuchung.
Fazit: Die Evolution des Sicherheitstestens
Dieser Proof of Concept veranschaulicht, wie die kreative Nutzung legitimer Systemfunktionen moderne Sicherheitskontrollen umgehen kann. Für Penetrationstester und Red Teams bietet er eine heimliche Methode zur Etablierung von Command-and-Control-Kanälen. Für Verteidiger hebt er die Bedeutung einer umfassenden Sicherheitsüberwachung hervor, die über einfache signaturbasierte Erkennung hinausgeht.
Da sich Sicherheitsprodukte weiterentwickeln, müssen dies auch die Techniken, die zu ihrer Prüfung verwendet werden. Durch das Verstehen und Dokumentieren dieser Methoden helfen wir Organisationen, sich besser auf reale Angriffe vorzubereiten, die ähnliche Taktiken verwenden.
Der vollständige Quellcode für tRWXi und zusätzliche technische Details sind in unserem GitHubRepository verfügbar, wodurch Sicherheitsexperten ihre eigenen Umgebungen testen und angemessene Gegenmaßnahmen entwickeln können.

Sergey Makarov gehört seit 2020 zum Trovent-Team. Als Senior Security Specialist und Penetration Tester sorgt er für sichere IT-Landschaften bei unseren Kunden. Als zertifizierter Red Team Operator/Lead weiß er genau, wie Cyberangriffe ablaufen und wie sich Unternehmen davor schützen können. Darüber hinaus ist Sergey ein begeisterter Softwareentwickler. Die von ihm programmierten Tools – darunter YAETWi, tRWXi, tWATa und tKMD – sind als Open-Source-Projekte auf GitHub verfügbar.