
Ein Round-Trip-obfuskatierter HTTP-Dateitransfer-Setup, entwickelt zur Umgehung von IDS-Erkennungen.
Skyhook ist ein REST-basiertes Dienstprogramm, das dazu dient, Dateien in und aus Netzwerken zu schmuggeln, die durch IDS-Implementierungen geschützt werden. Es wird mit einem vorgefertigten Web-Client ausgeliefert, der eine Mischung aus React, Vanilla JS und Web Assembly verwendet, um Dateiübertragungen zu verwalten.
Hinweis: Siehe die Benutzerdokumentation für eine ausführlichere Erläuterung von Skyhook und seiner Funktionsweise.
Der Dateiübertragungsserver von Skyhook verschleiert nahtlos den Inhalt von Dateien mit einer benutzerkonfigurierten Reihe von Verschleierungsalgorithmen, bevor der Inhalt in die Antwortkörper geschrieben wird. Clients, die mit denselben Verschleierungsalgorithmen konfiguriert sind, entschleiern den Dateiinhalt, bevor sie die Datei auf der Festplatte speichern. Eine Dateistreaming-Technik wird verwendet, um die HTTP-Transaktionen häppchenweise zu verwalten, wodurch große Dateiübertragungen ermöglicht werden.
flowchart
subgraph sg-cloudfront[Cloudfront CDN]
cf-listener(443/tls)
end
subgraph sg-vps[VPS]
subgraph sg-skyhook[Skyhook Servers]
admin-listener(Admin Server<br>45000/tls)
transfer-listener(Transfer Server<br>45001/tls)
end
config-file(Config File<br>/var/skyroot/config.yml)
admin-listener -..->|Reads &<br>Manages| config-file
webroot(Webroot<br>/var/skyhook/webroot)
transfer-listener -..->|Serves From &<br>Writes Cleartext<br>Files To| webroot
end
op-browser(Operator<br>Web Browser) -->|Administration<br>Traffic| admin-listener
op-browser <-->|Obfuscated<br>Data| transfer-listener
subgraph sg-corp[Corporate Environment]
subgraph sg-compromised[Beachhead Host]
comp-browser(Web Browser) -->|Reads &<br>Writes| cleartext-file(Cleartext Files)
end
end
comp-browser <-->|Obfuscated<br>Data| cf-listener <-->|Obfuscated<br>Data| transfer-listener
Hier ist zum Beispiel eine funktionierende Verschleierungskonfiguration:

Und hier ist die Dateiübertragungsschnittstelle. Ein Klick auf „Download“ führt dazu, dass die Datei in Blöcken abgerufen wird, die mit der oben konfigurierten Kette von Verschleierungsmethoden verschlüsselt sind.
JavaScript entschleiert die Datei, bevor der Benutzer aufgefordert wird, sie auf der Festplatte zu speichern.

Unten ist eine Anfrage, die von einem Download stammt und mit Burp inspiziert wurde. Schlüsselelemente der Transaktion sind verschlüsselt, um der Erkennung zu entgehen.
