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