Pstf:一款功能強大的被動安全工具指紋框架
關于Pstf
Pstf是一款基于HTTP服務器實現的安全框架,可以幫助廣大研究人員以被動方式對瀏覽器進行指紋識別。當攻擊者試圖通過互聯網傳播Payload時,他們往往需要對付那些能夠掃描傳入鏈接的各種工具。而Pstf可以幫助我們以被動方式檢測并繞過多種安全產品,其中包括但不限于電子郵件過濾器、安全掃描引擎和沙箱系統。
運行機制
檢查惡意鏈接是一項涉及Web客戶端發送HTTP GET請求的操作,每一個互聯網服務提供商都會使用不同的內部實現,而大部分提供商都會試圖在某種程度上模擬真實的用戶交互。
Pstf是一個簡單的基于Python的HTTP服務器,它使用了著名的機器人檢測策略來確定傳入的請求是否來自自動安全工具。服務器的操作人員可以自定義請求響應,比如說,如果檢測到了掃描工具,則自動重定向至Google,否則就直接發送惡意內容。
工具安裝
(1) 使用Docker
假設你已經在自己的設備環境中安裝好了Docker,那么你就可以直接使用下列命令安裝Pstf:
- docker-compose up
(2) 手動部署
如果你不想使用Docker的話,你也可以自行進行手動安裝與配置。
首先,我們需要安裝好Python環境,然后使用下列命令將該項目源碼克隆至本地:
- git clone https://github.com/G4LB1T/pstf2.git
接下來,安裝好依賴組件:
- pip install requirements.txt
在真正安裝Pstf之前,我們需要先下載并安裝p0f。【GitHub傳送門】
現在,我們需要正確lib/servers/server_config.yml以指向正確路徑:
- p0f_config:
- # change your username at the very least, remember to change in both paths
- p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'
- p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'
- iface: 'lo0'
- p0f_named_socket: '/tmp/p0f_socket'
接下來,驗證iface端口是否指向的是你Python HTTP服務器的運行接口。上述樣例中配置的是一個回環接口。
工具運行
完成工具的安裝和配置后,我們就可以直接運行工具腳本了:
- python driver.py
你還可以使用下列參數選項:
- --p0f_bin_path P0F_BIN_PATH
- --p0f_fp_path P0F_FP_PATH
- --p0f_iface P0F_IFACE
運行后,你將會看到如下所示的輸出結果:
- 2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...
- 2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:
- /Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp
- 2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!
- 2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...
- 2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!
- 2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C
我們可以按下Ctrl + C鍵終止服務器運行,此時將會關閉HTTP和p0f實例:
- 2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!
- 2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...
- 2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!
- 2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...
Payload管理
Pstf提供了默認地Payload,并定義在server_config.yml文件中,我們可以根據自己的需求進行自定義修改或配置。
(1) 合法響應
工具提供了兩種模式,可以通過設置rickroll_mode為YES或NO來進行修改。如果啟用為YES,安全工具將會被重定向至一個油*管頁面,否則將會顯示一個定義在同一個YAML文件中的字符串。
(2) 惡意響應
默認配置下,惡意響應會被設置為EICAR標準測試字符串。
項目地址
Pstf:【GitHub傳送門】