關于Skyhook

Skyhook是一款功能強大的雙向HTTP文件傳輸混淆工具,該工具基于REST實現,可以幫助廣大研究人員在目標網絡系統中繞過IDS的檢測,并實現任意文件雙向傳輸。該工具提供了一個預封裝的Web客戶端,客戶端基于React和Vanilla JS實現,能夠幫助我們管理文件傳輸任務。

功能介紹

1、支持對文件內容進行混淆/反混淆處理;
2、用戶可配置的混淆鏈;
3、支持自簽名證書和Lets Encrypt證書;
4、嵌入式Web應用程序,支持進行自定義配置和文件傳輸管理;
5、實現了服務器指紋恢復技術:加密加載程序能夠在使用文件傳輸接口時動態加密接口文件,并對API和Web資源路徑進行隨機化處理;

工具運行機制

Skyhook的文件傳輸服務器在將文件內容寫入響應body之前,會使用用戶配置的一系列模糊算法對文件內容進行模糊處理。使用了相同模糊處理算法的客戶端會在將文件保存到磁盤之前,對文件內容進行反模糊處理。除此之外,該工具還實現了一種文件流技術,該技術可以用來以分塊的方式管理HTTP事務,從而優化大型文件傳輸。

工具的運行機制如下圖所示:

Skyhook文件傳輸流程圖如下:

Skyhook文件傳輸序列圖如下:

Skyhook身份認證流程圖如下:

工具下載

我們可以直接訪問該項目的【Releases頁面】來下載并安裝Skyhoo。

除此之外,廣大研究人員還可以使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/blackhillsinfosec/skyhook.git

然后自行完成項目代碼構建即可。

工具使用

Skyhook服務器的啟動與配置

啟動服務器:

skyhook server run --config-file your-config.yml

使用一臺不受藍隊控制的主機,然后使用管理員賬號訪問管理端服務器的Web接口。

然后在接口中點擊“Obfuscators”,并更新指定的混淆配置,最后點擊“Save”保存:

獲取指向傳輸服務器的鏈接,并在瀏覽器中打開,然后使用非管理員賬號進行認證,最后提供要傳輸的文件即可。

如何獲取傳輸服務器鏈接

在管理員接口中,點擊“Quick Copy”,然后選擇需要的鏈接并復制即可:

從磁盤上傳文件

點擊Web接口中的“Browser”,選擇需要上傳的文件,然后點擊“Upload”即可:

上傳完成后,點擊“Cycle”按鈕刷新列表,并確認文件上傳成功:

工具使用演示

可用的混淆配置:

文件傳輸接口中,支持下載或上傳文件,工具會先使用JavaScript對文件進行解壓縮:

使用Burp檢查通信數據,可以看到關鍵的數據已經進行了加密:

許可證協議

本項目的開發與發布遵循MIT開源許可證協議。