
Una configurazione di trasferimento file HTTP offuscato di andata e ritorno progettata per bypassare le rilevazioni IDS.
Skyhook è un'utilità basata su REST utilizzata per introdurre e estrarre file da reti difese da implementazioni IDS. Viene fornito con un client web pre-confezionato che utilizza una combinazione di React, JS vanilla e web assembly per gestire i trasferimenti di file.
Nota: Consulta la documentazione utente per una discussione più approfondita su Skyhook e su come funziona.
Il server di trasferimento file di Skyhook offusca senza problemi il contenuto dei file con una serie di algoritmi di offuscamento configurati dall'utente prima di scrivere il contenuto nei corpi delle risposte. I client, configurati con gli stessi algoritmi di offuscamento, deoffuscano il contenuto del file prima di salvarlo su disco. Viene utilizzata una tecnica di streaming dei file per gestire le transazioni HTTP in modo chunked, facilitando così il trasferimento di file di grandi dimensioni.
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
Ad esempio, ecco una configurazione di offuscamento funzionante:

Ed ecco l'interfaccia di trasferimento file. Cliccando su "Download" si ottiene il file recuperato in chunk crittografati con la catena di metodi di offuscamento configurati in precedenza. JavaScript deoffusca il file prima di chiedere all'utente di salvarlo su disco.

Di seguito una richiesta generata da un download ispezionato con Burp. Elementi chiave della transazione sono crittografati per eludere il rilevamento.
