Pstf是一款基于HTTP服務(wù)器實(shí)現(xiàn)的安全框架,可以幫助廣大研究人員以被動(dòng)方式對(duì)瀏覽器進(jìn)行指紋識(shí)別。當(dāng)攻擊者試圖通過互聯(lián)網(wǎng)傳播Payload時(shí),他們往往需要對(duì)付那些能夠掃描傳入鏈接的各種工具。而Pstf可以幫助我們以被動(dòng)方式檢測(cè)并繞過多種安全產(chǎn)品,其中包括但不限于電子郵件過濾器、安全掃描引擎和沙箱系統(tǒng)。
檢查惡意鏈接是一項(xiàng)涉及Web客戶端發(fā)送HTTP GET請(qǐng)求的操作,每一個(gè)互聯(lián)網(wǎng)服務(wù)提供商都會(huì)使用不同的內(nèi)部實(shí)現(xiàn),而大部分提供商都會(huì)試圖在某種程度上模擬真實(shí)的用戶交互。
Pstf是一個(gè)簡單的基于Python的HTTP服務(wù)器,它使用了著名的機(jī)器人檢測(cè)策略來確定傳入的請(qǐng)求是否來自自動(dòng)安全工具。服務(wù)器的操作人員可以自定義請(qǐng)求響應(yīng),比如說,如果檢測(cè)到了掃描工具,則自動(dòng)重定向至Google,否則就直接發(fā)送惡意內(nèi)容。
使用Docker
假設(shè)你已經(jīng)在自己的設(shè)備環(huán)境中安裝好了Docker,那么你就可以直接使用下列命令安裝Pstf:
docker-compose up
手動(dòng)部署
如果你不想使用Docker的話,你也可以自行進(jìn)行手動(dòng)安裝與配置。
首先,我們需要安裝好Python環(huán)境,然后使用下列命令將該項(xiàng)目源碼克隆至本地:
git clone https://github.com/G4LB1T/pstf2.git
接下來,安裝好依賴組件:
pip install requirements.txt
在真正安裝Pstf之前,我們需要先下載并安裝p0f。【GitHub傳送門】
現(xiàn)在,我們需要正確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'
接下來,驗(yàn)證iface端口是否指向的是你Python HTTP服務(wù)器的運(yùn)行接口。上述樣例中配置的是一個(gè)回環(huán)接口。
完成工具的安裝和配置后,我們就可以直接運(yùn)行工具腳本了:
python driver.py
你還可以使用下列參數(shù)選項(xiàng):
--p0f_bin_path P0F_BIN_PATH ??--p0f_fp_path P0F_FP_PATH ??--p0f_iface P0F_IFACE
運(yùn)行后,你將會(huì)看到如下所示的輸出結(jié)果:
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鍵終止服務(wù)器運(yùn)行,此時(shí)將會(huì)關(guān)閉HTTP和p0f實(shí)例:
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...
Pstf提供了默認(rèn)地Payload,并定義在server_config.yml文件中,我們可以根據(jù)自己的需求進(jìn)行自定義修改或配置。
工具提供了兩種模式,可以通過設(shè)置rickroll_mode為YES或NO來進(jìn)行修改。如果啟用為YES,安全工具將會(huì)被重定向至一個(gè)油*管頁面,否則將會(huì)顯示一個(gè)定義在同一個(gè)YAML文件中的字符串。
默認(rèn)配置下,惡意響應(yīng)會(huì)被設(shè)置為EICAR標(biāo)準(zhǔn)測(cè)試字符串。
Pstf:【GitHub傳送門】
https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763
來源:FreeBuf.COM