Skyhook 是一款基于 REST 驱动的工具,用于将文件潜入或潜出受到 IDS 防护的网络。它附带一个预打包的 Web 客户端,该客户端融合了 React、原生 JavaScript 和 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
例如,以下是一个可工作的混淆配置:

以下是文件传输界面。点击“Download”会以分块方式检索文件,这些分块使用上述配置的混淆方法链进行加密。
JavaScript 会对文件进行去混淆,然后提示用户将其保存到磁盘。

下面是一个正在被 Burp 检测的下载请求。事务的关键要素均被加密,以逃避检测。
