
Une configuration de transfert de fichiers HTTP obscurci aller-retour conçue pour contourner les détections IDS.
Skyhook est un utilitaire piloté par REST utilisé pour faire passer clandestinement des fichiers à l'intérieur et à l'extérieur de réseaux défendus par des implémentations IDS. Il est livré avec un client web pré-packagé qui utilise un mélange de React, de JavaScript vanille et de web assembly pour gérer les transferts de fichiers.
Remarque : Consultez la documentation utilisateur pour une discussion plus complète sur Skyhook et son fonctionnement.
Le serveur de transfert de fichiers de Skyhook obfusque de manière transparente le contenu des fichiers avec une série d'algorithmes d'obfuscation configurés par l'utilisateur avant d'écrire le contenu dans les corps de réponse. Les clients, qui sont configurés avec les mêmes algorithmes d'obfuscation, désobfusquent le contenu du fichier avant de l'enregistrer sur le disque. Une technique de streaming de fichiers est utilisée pour gérer les transactions HTTP de manière fragmentée, facilitant ainsi les transferts de fichiers volumineux.
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-listenerPar exemple, voici une configuration d'obfuscation fonctionnelle :

Et voici l'interface de transfert de fichiers. Cliquer sur "Télécharger" entraîne la récupération du fichier par fragments qui sont chiffrés avec la chaîne de méthodes d'obfuscation configurée ci-dessus.
JavaScript désobfusque le fichier avant d'inviter l'utilisateur à le sauvegarder sur le disque.

Ci-dessous, une requête provenant d'un téléchargement inspecté avec Burp. Les éléments clés de la transaction sont chiffrés pour échapper à la détection.
