ABPTTS加密HTTP隧道工具流量分析
1、概述
在企業面對的攻擊事件中,攻擊者經常構造HTTP加密隧道進行通信。實現HTTP加密隧道的工具比較多,其中ABPTTS比較常見。ABPTTS支持在HTTP加密隧道中承載RDP、SSH、Meterpreter等協議、工具的交互與連接,逃避防火墻和IDS等明文流量檢測設備的審計。ABPTTS產生的HTTP隧道流量具備兩個顯著特點,第一是每次使用會隨機生成HTTP請求頭來模擬正常的HTTP請求;第二是HTTP請求體內容加密,在不掌握密鑰的前提下無法進行解密,因此利用明文字段校驗匹配等檢測手段很難識別。
2、ABPTTS隧道搭建
下載工具
git clone https://github.com/nccgroup/ABPTTS.git
下載后配置環境和生成payload
安裝依賴
pip2 install httplib2
pip2 install pycrypto
生成payload
python2 abpttsfactory.py -o server


啟動HTTP隧道
將腳本上傳服務器并VPS執行腳本

通過隧道封裝RDP流量,連接遠程桌面

3、ABPTTS流量分析
單流特征檢測
ABPTTS在請求頭和載荷加密方面進行了一定處理,但是從單流層面仍然存在一系列特征。這些特征表現在請求方式、特殊請求頭字段格式、請求體格式、返回包格式等方面。當然這些特征是在不修改源碼的前提下存在的,當高水平攻擊者對源碼進行修改后,這些特征可能會消失。


多流心跳檢測
經過詳細分析,ABPTTS客戶端在與服務端建立隧道后,為保持連接,會周期性發送心跳包。這是一個顯著的多流特征。ABPTTS支持通過配置文件修改默認心跳頻率,但是一個IP對間存在周期性的HTTP會話的心跳行為,也是值得重點關注排查的。
模型檢測
我們在模擬環境下搭建ABPTTS隧道的攻防環境,抓取大量HTTP隧道流量,作為黑流量集,抓取正常HTTP業務流量為白流量集。數據集形成后,分別構建單流和多流特征集,提取單流和多流特征,通過人工智能的方法訓練檢測模型,包括單流檢測模型和多流檢測模型,利用AI技術針對ABPTTS隧加密流量進行檢測。
根據研究結果,我們利用單流規則檢測,多流心跳檢測和人工智能模型綜合決策,實現了ABPTTS加密HTTP隧道流量的準確檢出。
