Skyhook は、IDS 実装によって防御されたネットワークとの間でファイルを密かにやり取りするために使用される REST 駆動型ユーティリティです。付属の Web クライアントは React、バニラ JS、WebAssembly を組み合わせてファイル転送を管理します。
注: Skyhook とその機能の詳細については、ユーザードキュメントをご参照ください。
Skyhook のファイル転送サーバーは、応答本文にコンテンツを書き込む前に、ユーザーが設定した一連の難読化アルゴリズムでファイルコンテンツをシームレスに難読化します。同じ難読化アルゴリズムで設定されたクライアントは、ファイルをディスクに保存する前にファイルコンテンツを復号化します。ファイルストリーミング技術を使用して HTTP トランザクションをチャンク単位で管理し、大規模ファイル転送を容易にします。
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
例えば、以下は動作する難読化設定です:

以下がファイル転送インターフェースです。「ダウンロード」をクリックすると、上記で設定された難読化手法のチェーンで暗号化されたチャンクでファイルが取得されます。
JavaScript がファイルを復号化した後、ユーザーにディスクへの保存を促します。

以下は、Burp で検査されたダウンロードに起因するリクエストです。トランザクションの主要要素は暗号化されて検出を回避します。
