攻防演練場景中面臨的常見加密威脅-HTTP隱蔽隧道
一、概述
在網(wǎng)絡(luò)安全領(lǐng)域,隱蔽隧道是一種基于主流常規(guī)協(xié)議將惡意流量偽裝成正常通信起到夾帶偷傳數(shù)據(jù)、下發(fā)控制指令等作用,同時對數(shù)據(jù)進(jìn)行加密以最大限度的規(guī)避網(wǎng)絡(luò)安全設(shè)備檢測的傳輸技術(shù)。由于隱蔽隧道更容易繞過網(wǎng)絡(luò)安全設(shè)備的檢測,因此黑客對其的使用越來越廣泛,在攻防演練中,隱蔽隧道更是攻擊中必不可少的一環(huán),在攻擊隊完成初始打點后,通常會建立外聯(lián)隱蔽隧道以維持內(nèi)網(wǎng)權(quán)限,并進(jìn)一步通過橫向移動最終獲得靶標(biāo),而隱蔽隧道的種類繁多,從協(xié)議的視角來看,常見的隧道種類有HTTP隧道、DNS隧道、ICMP隧道、SSH隧道、TCP隧道、UDP隧道等,這其中最為常見的當(dāng)屬HTTP隧道,所以了解HTTP隱蔽隧道的特點及其對應(yīng)的黑客工具,對于防御方來說是至關(guān)重要的。
二、HTTP隧道詳解
HTTP隧道是一種基于HTTP協(xié)議實現(xiàn)的網(wǎng)絡(luò)隧道,可以將任意類型的網(wǎng)絡(luò)流量通過HTTP協(xié)議的數(shù)據(jù)包進(jìn)行傳輸,從而實現(xiàn)對網(wǎng)絡(luò)流量的加密和隱藏,WebShell、代理轉(zhuǎn)發(fā)、遠(yuǎn)控回連等場景都能看到HTTP隧道活躍的身影。HTTP隧道的主要特點包括:高效穩(wěn)定、靈活隱蔽、適合加密,本文將詳細(xì)介紹HTTP隧道的主要特點和常用工具。
1、HTTP隧道的主要特點
高效穩(wěn)定:得益于作為隧道載體的HTTP協(xié)議成熟且強大,攻擊者可以使用標(biāo)準(zhǔn)HTTP協(xié)議帶來的一切便利,例如:簡單請求-響應(yīng)模式帶來的穩(wěn)定性、支持長連接與數(shù)據(jù)壓縮帶來的高傳輸性能與易于控制和管理等,這讓它可以很容易的適用于不同類型的網(wǎng)絡(luò)環(huán)境和應(yīng)用場景。
靈活隱蔽:HTTP隧道良好擴展性帶來的高度可定制化能力,它可以自由的將需要傳輸?shù)臄?shù)據(jù)放在HTTP請求/響應(yīng)頭或者HTTP載荷數(shù)據(jù)中的任意位置,不必局限于固定的某個字段,并且偷傳數(shù)據(jù)的同時還可以偽裝成正常的上網(wǎng)行為或者普通的HTTP業(yè)務(wù)流量,在網(wǎng)絡(luò)基礎(chǔ)設(shè)施高度發(fā)達(dá)的今天,還有CDN、云函數(shù)等正經(jīng)業(yè)務(wù)被用作其保護(hù)傘,這種隱蔽性非常強,可以很好的避免其被流量檢測設(shè)備和防火墻檢測出來,有效提高了隧道通信的存活能力。
圖 1 利用CDN傳輸數(shù)據(jù)
適合加密:HTTP隧道天生適合加密傳輸數(shù)據(jù),因為HTTP協(xié)議本身就支持了URL編碼、Base64編碼、Gzip編碼、Deflate編碼、二進(jìn)制編碼、Multiformat編碼等各式各樣的加密、壓縮與傳輸編碼方式,所以在此之上再對數(shù)據(jù)進(jìn)行一層從簡單如XOR到復(fù)雜如AES的加密就讓真實的攻擊更難被與正常業(yè)務(wù)流量區(qū)分開來。不僅如此,HTTP隧道很多時候還可以披上TLS的外衣?lián)u身一變成為HTTPS協(xié)議,這種嵌套加密技術(shù)成本極低,但檢測難度卻變的極大。
圖 2 疊加了多種編碼方式的加密數(shù)據(jù)
2、支持HTTP隧道的常用工具
攻擊者常用的黑客工具很多都支持HTTP隧道功能:
【攻防演練篇】攻防演練場景中面臨的常見加密威脅-HTTP隱蔽隧道
1. Chaos:一款C2工具,客戶端上線后能夠執(zhí)行Shell、截屏、文件上傳下載、訪問指定url等功能。通信只使用HTTP協(xié)議,兩秒一次的心跳包,通信全程沒有加密,部分內(nèi)容使用了Base64編碼。
2. CobaltStrike:Cobalt Strike是一款流行的滲透測試工具,由Raphael Mudge開發(fā)。它提供了一個高級的圖形界面,可用于通過社會工程學(xué)技術(shù)、漏洞利用和后期特權(quán)升級攻擊等手段入侵受控機器,并支持使用命令和控制服務(wù)器(C2)對受感染的主機進(jìn)行遠(yuǎn)程控制。它支持動態(tài)HTTP隧道,即在隧道連接過程中可以更改隧道參數(shù),增加隧道的安全性,同時具有豐富的配置選項,可以根據(jù)具體的攻擊需求進(jìn)行定制,包括端口號、請求頭、響應(yīng)頭與各種編碼、加密方式等。
3.Empire:Empire是一款開源的滲透測試工具,可用于生成、編碼和部署各種類型的攻擊負(fù)載(Payload),并通過HTTP/HTTPS等協(xié)議與攻擊目標(biāo)進(jìn)行通信。 Empire提供了一個強大的命令行界面,可用于建立、配置和控制攻擊載荷,支持模塊化插件架構(gòu),使其可以輕松地擴展功能。這款工具結(jié)合了HTTP摔倒與TCP隧道:木馬發(fā)送HTTP請求時服務(wù)端會通過tcp返回指令內(nèi)容,tcp載荷全部加密傳輸,當(dāng)指令傳輸完畢,服務(wù)端會返回響應(yīng)200,該響應(yīng)的載荷也是加密的。
4. Octopus:Octopus旨在與C2進(jìn)行通信時保持高度隱秘,它的第一次請求url是生成木馬時自定義設(shè)置的,同時返回體中定義了aes-key、aes-iv、心跳時間以及后續(xù)使用的臨時命令下發(fā)url與心跳url,在這之后將隧道使用AES-256的方式加密。在此之上還可以通過為C2服務(wù)器配置有效的證書以使用HTTPS加強隱秘性。
5. ABPTTS:ABPTTS是NCC Group在2016年blackhat推出的一款將TCP流量通過HTTP/HTTPS進(jìn)行流量轉(zhuǎn)發(fā),在目前云主機的大環(huán)境中,發(fā)揮了比較重要的作用,可以通過腳本進(jìn)行RDP,SSH,Meterpreter的交互與連接。這也意味著這樣可以建立一個通過80端口的隧道流量出站來逃避防火墻。與其它http隧道不同的是,abptts是全加密。但是可惜的是,ABPTTS只支持aspx和jsp。
三、總結(jié)
由于HTTP隱蔽隧道擁有靈活且隱蔽的特性,傳統(tǒng)字符串與弱特征匹配的檢測方式容易被繞過,并且從單包和單會話層面想找到隧道的明顯特點也非常困難。觀成科技安全研究團(tuán)隊經(jīng)過研究發(fā)現(xiàn),對于HTTP隧道,可以從隧道通信的行為本身,以及攻擊者對HTTP協(xié)議的使用與正常業(yè)務(wù)的區(qū)別等方面挖掘特征進(jìn)行檢測。