一、前言
Ghost Tunnel是一種可適用于隔離環(huán)境下的后門傳輸方式,可在用戶無感知情況下對目標(biāo)進行控制及信息回傳(不創(chuàng)建或依賴于任何有線、無線網(wǎng)絡(luò),甚至不需要外插任何硬件模塊)。
在4月的HITB阿姆斯特丹站上,我們(PegasusTeam)分享了一個關(guān)于隔離網(wǎng)攻擊的議題——”Ghost Tunnel :Covert Data Exfiltration Channel to Circumvent Air Gapping”。
Ghost Tunnel是一種可適用于隔離環(huán)境下的后門傳輸方式。一旦payload在目標(biāo)設(shè)備釋放后,可在用戶無感知情況下對目標(biāo)進行控制及信息回傳。相比于現(xiàn)有的其他類似研究(如WHID,一種通過 Wi-Fi 進行控制的 HID 設(shè)備),Ghost Tunnel不創(chuàng)建或依賴于任何有線、無線網(wǎng)絡(luò),甚至不需要外插任何硬件模塊。
到底有多棒,先把demo放出來鎮(zhèn)文。
二、背景
為了便于讀者理解Ghost Tunnel的使用場景,在本節(jié)中將會介紹“遠控木馬上線方式”、“網(wǎng)絡(luò)隔離”、“HID攻擊”等相關(guān)知識,部分內(nèi)容引用自其他文章,在小節(jié)末將給出原文以便于大家擴展閱讀。
2.1 遠控木馬上線方式
說起遠控木馬,大家可能會想到一大堆耳熟能詳?shù)拿Q,如灰鴿子、冰河、Byshell、PCshare、Gh0st等等,在此我們以上線方式的角度對遠控木馬進行一個簡單分類。
主動連接型
被控端開啟特定端口,主控端通過該主機IP及端口連接到被控端,如3389遠程桌面、VNC遠程桌面等。
反彈連接型
由于主動連接的方式不適用于攻擊目標(biāo)處在內(nèi)網(wǎng)的環(huán)境,許多木馬采用反彈型進行上線。與主動連接的方式相反,由主控端監(jiān)聽特定端口,被控端執(zhí)行木馬后反連回主控端。由于該種方式的適用性更廣,大部分的木馬都采用該方式上線,如利用FTP上線、DNS域名解析上線等。

通過第三方域名型
出于隱蔽性或者反追蹤的目的,有些新型的木馬采用第三方網(wǎng)站來進行上線。比如通過知名博客類網(wǎng)站的文章內(nèi)容及評論區(qū),利用QQ空間、微博、推特的推送內(nèi)容,甚至筆者還見過利用QQ個性簽名來作為上線地址。八仙過海各顯神通,利用知名網(wǎng)站的好處是可以繞過某些防火墻的白名單限制。
>《木馬的前世今生:上線方式的發(fā)展及新型上線方式的實現(xiàn)》 http://www.freebuf.com/articles/terminal/77412.html
其實,Ghost Tunnel也可以理解為一種木馬的上線方式,只是它更針對于攻擊目標(biāo)處在隔離網(wǎng)絡(luò)中的場景。
2.2 什么是Air Grapping
Wikipedia: “An air gap, air wall or air gapping is a network security measure employed on one or more computers to ensure that a secure computer network is physically isolated from unsecured networks, such as the public Internet or an unsecured local area network.”
簡單來說,Air Grapping是一種用于保護特定網(wǎng)絡(luò),采用物理隔離的安全措施,通常被用來防止利用網(wǎng)絡(luò)連接途徑造成的入侵及信息泄漏事件。

隔離網(wǎng)閘是常見的一種形態(tài),其原理為:切斷網(wǎng)絡(luò)之間的通用協(xié)議連接;將數(shù)據(jù)包進行分解或重組為靜態(tài)數(shù)據(jù);對靜態(tài)數(shù)據(jù)進行安全審查,包括網(wǎng)絡(luò)協(xié)議檢查和代碼掃描等;確認后的安全數(shù)據(jù)流入內(nèi)部單元;內(nèi)部用戶通過嚴格的身份認證機制獲取所需數(shù)據(jù)。其經(jīng)常被使用在涉密網(wǎng)與非涉密網(wǎng)間。
攻擊者無論是想利用操作系統(tǒng)、應(yīng)用軟件、通信協(xié)議的漏洞,都需要通過網(wǎng)絡(luò)觸碰目標(biāo)機器,而網(wǎng)絡(luò)隔離環(huán)境中就將這條路給封住了。不過凡事沒有絕對,一些大新聞告訴我們利用惡意USB就是一種具有可操作性的攻擊方式,以下就是幾個針對隔離網(wǎng)攻擊的案例。
震網(wǎng)病毒 Stuxnet Worm

著名的震網(wǎng)病毒便利用了USB的方式將病毒傳入隔離網(wǎng)絡(luò),隨后將病毒傳播到網(wǎng)絡(luò)中的其他設(shè)備。在適當(dāng)?shù)臅r候給工控機器下發(fā)錯誤指令,導(dǎo)致機器異常直至報廢。最終震網(wǎng)病毒導(dǎo)致伊朗的核計劃被迫延遲至少兩年。
水蝮蛇一號 COTTONMOUTH-I

在斯諾登披露的NSA秘密武器中包含了該工具,其內(nèi)部包含了一套 ARMv7 芯片和無線收發(fā)裝置。當(dāng)它插入目標(biāo)主機后,植入惡意程序并創(chuàng)建一個無線網(wǎng)橋,配套的設(shè)備可通過RF信號與其進行交互,傳輸命令及數(shù)據(jù)。同樣,它被NSA用于攻擊伊朗的秘密機構(gòu),從物理隔離的設(shè)備中竊取數(shù)據(jù)長達數(shù)年。
2.3 HID攻擊
HID是Human Interface Device的縮寫,由其名稱可以了解HID設(shè)備是直接與人交互的設(shè)備,例如鍵盤、鼠標(biāo)與游戲桿等。不過HID設(shè)備并不一定要有人機接口,只要符合HID類別規(guī)范的設(shè)備都是HID設(shè)備。一般來講針對HID的攻擊主要集中在鍵盤鼠標(biāo)上,因為只要控制了用戶鍵盤,基本上就等于控制了用戶的電腦。攻擊者會把攻擊隱藏在一個正常的鼠標(biāo)鍵盤中,當(dāng)用戶將含有攻擊向量的鼠標(biāo)或鍵盤,插入電腦時,惡意代碼會被加載并執(zhí)行。
Teensy
攻擊者在定制攻擊設(shè)備時,會向USB設(shè)備中置入一個攻擊芯片,此攻擊芯片是一個非常小而且功能完整的單片機開發(fā)系統(tǒng),它的名字叫TEENSY。通過TEENSY你可以模擬出一個鍵盤和鼠標(biāo),當(dāng)你插入這個定制的USB設(shè)備時,電腦會識別為一個鍵盤,利用設(shè)備中的微處理器與存儲空間和編程進去的攻擊代碼,就可以向主機發(fā)送控制命令,從而完全控制主機,無論自動播放是否開啟,都可以成功。

USB Rubber Ducker
簡稱USB橡皮鴨,是最早的按鍵注入工具,通過嵌入式開發(fā)板實現(xiàn),后來發(fā)展成為一個完全成熟的商業(yè)化按鍵注入攻擊平臺。它的原理同樣是將USB設(shè)備模擬成為鍵盤,讓電腦識別成為鍵盤,然后進行腳本模擬按鍵進行攻擊。

BadUSB
Teensy和橡皮鴨的缺陷在于要定制硬件設(shè)備,通用性比較差。但是BadUSB就不一樣了,它是在“USB RUBBER DUCKY”和“Teensy”攻擊方式的基礎(chǔ)上用通用的USB設(shè)備(比如U盤)。BadUSB就是通過對U盤的固件進行逆向重新編程,相當(dāng)于改寫了U盤的操作系統(tǒng)而進行攻擊的。
BashBunny

可以發(fā)動多種payload是這款設(shè)備的一大特色。將開關(guān)切換到相應(yīng)payload選擇(上圖中的Switch Position 1/2),將Bash Bunny插入目標(biāo)設(shè)備,觀察LED燈的變化就能了解攻擊狀態(tài)。在硬件方面,設(shè)備中包含1顆四核CPU和桌面級SSD,Hak5介紹說此設(shè)備從插入到攻擊發(fā)動只需要7秒。此外,這款Bash Bunny設(shè)備實際上擁有Linux設(shè)備的各種功能,通過特定串口可訪問shell。絕大部分滲透測試工具的功能都能在其中找到。
DuckHunter
在Kali Linux NetHunter中提供了該工具。它可以將USB Rubber Ducky的腳本轉(zhuǎn)化為NetHunter 自有的HID Attacks格式,由此我們將刷有Nethunter的Android設(shè)備通過數(shù)據(jù)線與電腦相連便能模擬鍵盤進行輸入。

WHID
WHID就是WiFi +HID的組合,WHID注入器顧名思義就是對HID攻擊進行無線化攻擊時的一種注入工具,通過在USB設(shè)備上提供WiFi功能以供遠程控制。

《HID攻擊之TEENSY實戰(zhàn)》
http://blog.topsec.com.cn/ad_lab/hid%E6%94%BB%E5%87%BB%E4%B9%8Bteensy%E5%AE%9E%E6%88%98/
《新的U盤自動運行——BadUSB原理與實現(xiàn)》
https://security.tencent.com/index.php/blog/msg/74
《據(jù)說是“最先進的USB攻擊平臺”》
http://www.freebuf.com/news/128788.html
《DuckHunterHID for mac》
http://www.ggsec.cn/DuckHunterHID.html
《WHID注入器:在無線環(huán)境下實現(xiàn)HID攻擊的最新利器》
http://www.4hou.com/technology/4565.html
三、Ghost Tunnel
對于隔離網(wǎng)絡(luò)的攻擊一般有兩個步驟:
1. 在目標(biāo)系統(tǒng)植入惡意軟件
2. 建立數(shù)據(jù)通道,(infiltrate & exfiltrate),以便執(zhí)行命令和竊取數(shù)據(jù)。
根據(jù)之前的案例可以看到,任何可以承載數(shù)據(jù)的媒介都是可以用來建立數(shù)據(jù)通信的通道。Ghost Tunnel便是一個利用WiFi信號的隱蔽傳輸通道。

首先,以HID攻擊為例:我們使用BashBunny或者DuckHunter等HID工具將惡意程序植入受害者設(shè)備,比如一臺Windows筆記本。隨后惡意程序?qū)⑹褂檬芎φ咴O(shè)備的內(nèi)置無線通信模塊與另一臺由攻擊者控制的設(shè)備建立端到端的WiFi傳輸通道。此時,攻擊者就可以遠程執(zhí)行命令并竊取數(shù)據(jù)。
值得注意的是,Ghost Tunnel指的是通過利用受害者設(shè)備自身的無線模塊來建立傳輸通道的一種方式,其并不僅局限于使用HID攻擊來植入惡意程序,實際上以其他方式植入也是可行的。
3.1 優(yōu)勢
Ghost Tunnel的實現(xiàn)方式具有這幾個優(yōu)勢:
HID設(shè)備只用于植入攻擊代碼,當(dāng)植入完成就可以移除了。(HID攻擊外的其他植入形式也是可以的)
沒有正常的網(wǎng)絡(luò)連接,可以繞過防火墻。
不會對現(xiàn)有的網(wǎng)絡(luò)通信及連接狀態(tài)造成影響。
跨平臺支持。該攻擊可用于任何擁有WiFi模塊的設(shè)備,我們在Win7、Win10、Mac OSX上進行了測試。
可在幾十米內(nèi)工作,配合信號橋接設(shè)備理論上可做到無限遠。
3.2 原理
在正常的Wi-Fi通信中,一個站點必須經(jīng)歷Beacon,Probe,Authentication,Association等過程后才能建立與接入點的連接,其整個流程如下圖。

而Ghost Tunnel并沒有使用正常的Wi-Fi連接,而只用到了Beacon、Probe Request、Probe Response,如下圖。

為什么用這三個幀呢?在802.11的狀態(tài)機中,取決于認證和關(guān)聯(lián)的狀態(tài),一共有三個階段。

在State 1時,客戶端處于Unauthenticated、Unassociated狀態(tài)。而該階段可以使用的802.11幀有以下具體幾種,其中就包含了Probe Request,Probe Response,Beacon幀。

原本它們被使用在無線網(wǎng)絡(luò)掃描階段。當(dāng)802.11客戶端在掃描可用無線網(wǎng)絡(luò)時,有兩種掃描方式:

總而言之,Ghost Tunnel通過Probe Request,Probe Response,Beacon三種類型幀來進行通信,并不建立完整的WiFi連接。
首先攻擊者創(chuàng)建一個具有特殊SSID的AP,攻擊者和受害設(shè)備都使用它作為通信的標(biāo)識符(而不是常規(guī)WiFi通信中的MAC)。此時,攻擊者通過解析受害者設(shè)備發(fā)出的Probe Request幀得到數(shù)據(jù);受害者設(shè)備上的惡意程序?qū)⒔馕龉粽甙l(fā)出的Beacon及Probe Response幀來執(zhí)行命令并返回數(shù)據(jù)。這便是Ghost Tunnel WiFi隱蔽傳輸通道的秘密。

3.3 其他
你可能會有關(guān)于實現(xiàn)原理等更深入的問題,比如:
-
如何在802.11幀中攜帶我們的載荷?
-
如何在用戶空間利用設(shè)備的無線網(wǎng)卡來發(fā)送和接受802.11數(shù)據(jù)包?
-
各個操作系統(tǒng)平臺的WiFi應(yīng)用接口是什么,具體如何實現(xiàn)?
-
攻擊者端的C&C Server是如何實現(xiàn)的?
歡迎查看我們已對外公布的PPT,你可以在其中找到這些問題的答案。如果覺得該研究還不錯的話,歡迎點下Star。
https://github.com/360PegasusTeam/PegasusTeam/tree/master/talks
四、影響
P4wnP1項目受GhostTunnel啟發(fā),在新版本加入了此種方式。
https://github.com/mame82/P4wnP1


在MSF近期更新的一個腳本中(https://github.com/rapid7/metasploit-framework/pull/9862 )利用類似的思路實現(xiàn)了近場探測的功能,作者表明該腳本的主要場景就是探測目標(biāo)設(shè)備是否是否已經(jīng)物理接近了被攻擊端。

*本文作者qingxp9,轉(zhuǎn)載注明來自FreeBuf
|