文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.06.026
中文引用格式: 陶曉玲,伍欣,亢蕊楠. 基于樹莓派的隱蔽式滲透測試方法[J].電子技術(shù)應(yīng)用,2016,42(6):94-97.
英文引用格式: Tao Xiaoling,Wu Xin,Kang Ruinan. A raspberry pi based evasive penetration test approach[J].Application of Electronic Technique,2016,42(6):94-97.
0 引言
自2010年Google報道“極光行動”之后[1],APT(Advanced Persistent Threat)攻擊便成為安全界熱議的話題。特別的針對性、高度的復(fù)雜性以及極強的隱蔽性是APT攻擊的主要特點[2],從暗鼠行動的魚叉式郵件釣魚攻擊,到夜龍行動的多攻擊向量組合攻擊,再到震網(wǎng)病毒的多0day漏洞利用攻擊可見一斑。APT攻擊有愈演愈烈的趨勢,由于其隱蔽性的特點,導(dǎo)致其可在目標(biāo)環(huán)境進行長期的潛伏而難以被發(fā)現(xiàn),對信息安全造成了持續(xù)性的巨大危害,同時,這也是當(dāng)前安全防護與檢測的技術(shù)難點[3]。
PT(Persistent Threat)攻擊是APT攻擊的組成部分,相對于APT攻擊,其缺少復(fù)雜強大的針對性攻擊載荷,但其擁有隱蔽的通信手段,可通過偽裝、加密、混淆等技術(shù)實現(xiàn)攻擊代碼的隱藏與網(wǎng)絡(luò)后門的建立,能夠長期對目標(biāo)環(huán)境進行信息竊取與主機操控等活動[4]。例如Rootkit、后門程序以及一些僵尸網(wǎng)絡(luò)等攻擊屬于PT攻擊的范疇,而SQL注入、XSS、DDos等攻擊不屬于這一范疇。目前,針對APT/PT攻擊的滲透測試方法研究相對較少,由此本文針對其隱蔽性的特點進行研究,以滲透測試的形式進行模擬實驗,為幫助安全人員了解攻擊者的意圖、看到系統(tǒng)的潛在威脅提供信息支持。
1 滲透測試模型
本文的滲透測試模型如圖1所示,模型主要由樹莓派、C&C服務(wù)器和Tor網(wǎng)絡(luò)三部分組成。其中,樹莓派是一款基于Linux系統(tǒng)的卡片式電腦,雖然只有信用卡的大小,卻具有電腦的所有基本功能。由于其具有極高的性價比以及很好的兼容性與可擴展性,使得它成為物理后門植入載體的首選。滲透測試過程中,為其寫入的是當(dāng)前最為流行的Kali Linux樹莓派定制版系統(tǒng),其中集成了許多必要的滲透工具,為進行滲透測試提供幫助[5]。C&C服務(wù)器使用具有公網(wǎng)IP的云服務(wù)器進行模擬,并運行Ubuntu 14.04 Server實例。Tor被安裝在一臺Ubuntu 14.04主機上,供滲透測試使用。
滲透測試工作流程如下:
(1)以一臺有root權(quán)限的實例作為C&C服務(wù)器;(2)配置樹莓派,并將其植入目標(biāo)環(huán)境;(3)樹莓派上電后,穿過防火墻限制,自動與C&C服務(wù)器建立起持久的隱蔽隧道;(4)滲透人員與Tor網(wǎng)絡(luò)建立連接而獲得匿名;(5)滲透人員通過Tor網(wǎng)絡(luò)登陸到C&C服務(wù)器;(6)滲透人員通過C&C服務(wù)器對內(nèi)網(wǎng)環(huán)境的樹莓派進行控制。
由此,滲透人員與樹莓派之間建立起了一條通信鏈路,滲透人員可向樹莓派發(fā)送操作指令,通過樹莓派對目標(biāo)環(huán)境進行持續(xù)的滲透測試。
2 隱蔽式隧道建立方法
本文采取反向SSH實現(xiàn)外網(wǎng)C&C服務(wù)器對樹莓派的控制;使用Stunnel對SSH通信進行加密,并將其偽裝成HTTPS流,從而避開防火墻和IDS/IPS的攔截與檢測。
2.1 反向SSH隧道建立
反向SSH隧道建立有兩個目的:一方面是實現(xiàn)外網(wǎng)C&C服務(wù)器對內(nèi)網(wǎng)樹莓派的Shell控制;另一方面利用SSH對數(shù)據(jù)流加密的性質(zhì),實現(xiàn)控制信息的隱蔽[6]。其連接過程如圖2所示。
反向SSH連接建立過程如下:
(1)樹莓派向C&C服務(wù)器發(fā)起反向SSH請求;(2)通過認(rèn)證后,樹莓派與C&C服務(wù)器之間建立起了一條隧道,同時在C&C服務(wù)器的Port1端口上開啟監(jiān)聽,任何在C&C服務(wù)器上使用SSH連接Port1端口的用戶,將會反向連接到樹莓派上;(3)滲透人員登錄C&C服務(wù)器的SSH服務(wù);(4)滲透人員通過SSH訪問C&C服務(wù)器上的Port1監(jiān)聽端口,從而獲得內(nèi)網(wǎng)中樹莓派root權(quán)限下的Shell;(5)對樹莓派的操作指令通過SSH隧道進行發(fā)送,實現(xiàn)了對內(nèi)網(wǎng)樹莓派的控制。
自此,樹莓派與滲透人員之間相當(dāng)于建立起了一條VPN隧道, 隧道內(nèi)的信息對外不可見。
2.2 使用Stunnel對SSH進行偽裝
SSH的數(shù)據(jù)包會被協(xié)議分析器解析出來,網(wǎng)絡(luò)管理人員通常為安全考慮,會禁止這類VPN隧道的建立與數(shù)據(jù)包的傳輸。為了達(dá)到更好的隱蔽性,本文使用Stunnel,將SSH流偽裝為HTTPS流。
在將SSH流偽裝成HTTPS流之前,需要對HTTPS的工作過程進行一些分析。HTTPS是安全版的HTTP,它在HTTP下增加了SSL/TLS層,從而對通信數(shù)據(jù)進行了加密,實現(xiàn)CA認(rèn)證功能,提高了使用的安全性。而Stunnel是一個為應(yīng)用程序之間進行安全通信而設(shè)計開發(fā)的自由跨平臺軟件,它使用OpenSSL庫,在應(yīng)用層下增加SSL/TLS層,完成客戶端與服務(wù)器之間的通信加密[7],而這與HTTPS加密方式類似,本文利用這一特性,將SSH流偽裝成HTTPS流,其偽裝過程如圖3所示。
在為樹莓派和C&C服務(wù)器分別配置好Stunnel 客戶端和Stunnel服務(wù)器后,就可將SSH流偽裝為HTTPS流,其過程如下:
(1)樹莓派向本機Stunnel客戶端的監(jiān)聽端口Port2發(fā)起反向SSH連接請求;
(2)樹莓派的Stunnel客戶端與C&C服務(wù)器的Stunnel服務(wù)器進行SSL/TSL握手,握手成功后建立起Stunnel隧道,加密后的SSH數(shù)據(jù)包通過Stunnel隧道發(fā)送至C&C服務(wù)器的Stunnel服務(wù)器443監(jiān)聽端口;
(3)C&C服務(wù)器的Stunnel服務(wù)器收到加密的SSH數(shù)據(jù)包,對其解密后,反向SSH連接請求被轉(zhuǎn)發(fā)到本機SSH服務(wù)的22端口;
(4)反向SSH請求成功后,C&C服務(wù)器在Port1端口開啟監(jiān)聽,并建立一個反向SSH隧道;
(5)滲透人員登錄C&C服務(wù)器的SSH服務(wù);
(6)滲透人員通過反向SSH監(jiān)聽端口,登錄樹莓派SSH服務(wù);
(7)滲透人員向樹莓派發(fā)送的指令操作都被進行兩次封包,并最終偽裝為HTTPS流。
3 匿名遠(yuǎn)程控制方法
滲透人員對樹莓派進行遠(yuǎn)程控制時,會留下面包屑,容易被追蹤到,無法達(dá)到隱蔽的效果,由此,本文使用Tor網(wǎng)絡(luò)進行匿名,并最終實現(xiàn)匿名的遠(yuǎn)程控制。
3.1 Tor匿名原理
Tor網(wǎng)絡(luò)主要由洋蔥代理(Onion Proxy,OP)、目錄服務(wù)器(Directory Server,DS)和洋蔥路由器(Onion Router,OR)三部分組成[8]。OP主要為Tor用戶完成路由節(jié)點的選擇、電路(Circuit)建立、數(shù)據(jù)包發(fā)送與接收等代理工作;DS主要負(fù)責(zé)匯總Tor網(wǎng)絡(luò)的運行狀態(tài),并向OP發(fā)布最新的Tor路由節(jié)點列表;OR主要由Tor網(wǎng)絡(luò)志愿者組成,用于對數(shù)據(jù)包進行重路由,從而實現(xiàn)匿名效果。在Tor網(wǎng)絡(luò)建立連接的過程中,OP會隨機選擇3個可用的OR分別作為Tor網(wǎng)絡(luò)的入口節(jié)點(Guard Node,GN)、中繼節(jié)點(Relay Node,RN)和出口節(jié)點(Exit Node,EN),在使用Diffie-Hellman依次進行密鑰協(xié)商后,得到3個會話密鑰,并用其依次對消息進行加密,最后OP將3次加密的數(shù)據(jù)包發(fā)送至GN。GN、RN和EN依次使用共享的會話密鑰對數(shù)據(jù)包進行解密,并發(fā)往下一跳,使得數(shù)據(jù)包最終由EN以明文的形式發(fā)送至目標(biāo)站點。數(shù)據(jù)包的返回,在依次經(jīng)過EX、RN和GN時,被各節(jié)點使用共享會話密鑰進行加密,最終GN將3次加密的數(shù)據(jù)包發(fā)送給OP,OP再通過3個共享會話密鑰進行依次解密,最后將得到的明文傳遞給Tor用戶。
由于入口節(jié)點只知道數(shù)據(jù)包的發(fā)送者,中繼節(jié)點不知道任何關(guān)鍵信息,而出口節(jié)點也僅知道數(shù)據(jù)包的接收者和明文信息,總之沒有一個節(jié)點可以獲得消息的發(fā)送者、消息的接收者和消息的內(nèi)容這一完整信息,也無法同時得到消息發(fā)送者和消息內(nèi)容這兩個關(guān)鍵信息的組合,從而實現(xiàn)了匿名。
3.2 匿名SSH實現(xiàn)
雖然Tor網(wǎng)絡(luò)主要用于匿名傳輸HTTP/HTTPS流,但只要是以TCP為傳輸層協(xié)議的應(yīng)用,都可以通過Tor網(wǎng)絡(luò)進行傳輸,達(dá)到匿名效果。SSH是基于TCP上的應(yīng)用,故其數(shù)據(jù)流可通過Tor網(wǎng)絡(luò)進行傳輸,但需要進行端口轉(zhuǎn)發(fā)工作。要將SSH端口的數(shù)據(jù)轉(zhuǎn)發(fā)到Tor端口,可以使用Sock4/Socks5代理服務(wù)器實現(xiàn)。本文在Ubuntu 14.04環(huán)境下,使用Proxychains代理工具,成功通過Tor網(wǎng)絡(luò)匿名傳輸SSH流,實現(xiàn)了匿名的遠(yuǎn)程控制。
4 滲透測試實驗
首先,為了檢驗本文提出的滲透方法的隱蔽性,通過在樹莓派上使用Wireshark工具,對樹莓派與C&C服務(wù)器之間的連接與通信數(shù)據(jù)包進行捕獲,捕獲的數(shù)據(jù)包如圖4所示(黑底白字是樹莓派發(fā)送至C&C服務(wù)器的數(shù)據(jù)包,白底黑字的是反向數(shù)據(jù)包)。
由圖4可以看出,Wireshark沒有解析出任何的SSH數(shù)據(jù)包,SSH流已被偽裝成HTTPS流。較之于正常的HTTPS流,偽裝的HTTPS流內(nèi)包含惡意的控制流,而較之于常規(guī)的控制流,偽裝的HTTPS流由于內(nèi)部信息對外不可見,使其可避開防火墻的攔截與IDS/IPS的檢測,而難以被發(fā)現(xiàn),達(dá)到了隱蔽的效果。
接著,為了揭露本文提出的滲透測試方法可能會導(dǎo)致的威脅,故對此進行滲透測試實驗,為安全人員對此類攻擊的識別與防范提供參考。滲透測試流程圖如圖5所示。
滲透測試過程中,首先將樹莓派偽裝成一臺網(wǎng)絡(luò)監(jiān)控攝像機[9],可用于家庭或企業(yè)的遠(yuǎn)程監(jiān)控管理;其次,使用本文提出的隱蔽式滲透方法為樹莓派植入后門,同時編寫開機啟動項腳本程序,利用SSH公鑰認(rèn)證、autossh自動重連功能,實現(xiàn)樹莓派一經(jīng)上電聯(lián)網(wǎng),即刻與C&C服務(wù)器建立起隱蔽的穩(wěn)固隧道;再者,將樹莓派置于一臺已聯(lián)網(wǎng)的路由器后上電,并在路由器網(wǎng)絡(luò)外,使用一臺配置好的Ubuntu主機,通過Tor網(wǎng)絡(luò)匿名控制樹莓派;最后,利用樹莓派進行拍照、錄像以及文件回傳等操作,實現(xiàn)對遠(yuǎn)程監(jiān)控錄像的竊取與篡改,并利用nmap對網(wǎng)絡(luò)環(huán)境進行掃描,開始實施橫向擴展攻擊。
通過實驗了解到,雖然該類攻擊相對隱蔽,可避開常規(guī)的防御檢測,但可以通過加強對進出人員的管理,以及使用正規(guī)渠道獲得的電子設(shè)備,來減少遭受到此類攻擊的可能性。同時,可以通過對網(wǎng)絡(luò)關(guān)鍵位置進行定期的物理排查,以及對內(nèi)網(wǎng)環(huán)境進行異常流檢測等措施,及時發(fā)現(xiàn)攻擊源,以減少損失。
5 結(jié)束語
本文闡述了一種基于樹莓派的隱蔽式滲透測試方法,該方法通過對樹莓派進行配置與植入,對通信數(shù)據(jù)進行加密與偽裝,對滲透人員的操作進行匿名,最終實現(xiàn)一種基于樹莓派的PT攻擊。實驗表明,網(wǎng)絡(luò)的安全不應(yīng)只關(guān)注對網(wǎng)絡(luò)邊界的防御,還應(yīng)了解潛在的物理漏洞可能導(dǎo)致的內(nèi)部網(wǎng)絡(luò)風(fēng)險,同時通過對攻擊的理解,更好地提高網(wǎng)絡(luò)的安全。
參考文獻(xiàn)
[1] STEWART J.Operation Aurora:Clues in the code[EB/OL].(2010-1-19)[2016-04-02].https://www.secureworks.com/blog/research-20913.
[2] WRIGHTSON T.Advanced persistent threat hacking:the art and science of hacking any organization[M].McGraw-Hill Education,2014.
[3] 曹自剛,熊剛,趙詠,等.隱蔽式網(wǎng)絡(luò)攻擊綜述[J].集成技術(shù),2014,3(2):1-16.
[4] BODMER S,KILGER M,CARPENTER G,et al.Reverse deception:organized cyber threat counter-exploitation[M].McGraw-Hill Education,2012.
[5] MUNIL J,LAKHANI A.Penetration testing with raspberry pi[M].Packt Publishing Ltd,2015.
[6] 甘長華.網(wǎng)絡(luò)安全協(xié)議SSH的研究與實現(xiàn)[D].天津:天津大學(xué),2007.
[7] 彭樂.網(wǎng)絡(luò)穿透技術(shù)的研究[D].北京:北京郵電大學(xué),2008.
[8] 王付剛.TOR匿名通信技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[9] JONES D.Raspberry pi-teach,learn,and make with raspberry pi[EB/OL].(2016)[2016].https://www.raspberrypi.org/learning/python-picamera-setup/worksheet.md.