《电子技术应用》

基于树莓派的隐蔽式渗透测试方法

2016年电子技术应用第6期 作者:陶晓玲1,2,伍 欣2,亢蕊楠2
2016/8/22 14:25:00

陶晓玲1,2,伍  欣2,亢蕊楠2

(1.桂林电子科技大学 广西高校云计算与复杂系统重点实验室,广西 桂林541004;

2.桂林电子科技大学 信息与通信学院,广西 桂林541004)


    摘  要: 随着APT攻击的逐年增长,常规的渗透测试方法已经无法满足当前环境下对网络安全检测多元化的需求。由此,针对隐蔽式渗透方法进行研究,以常被忽视的物理安全漏洞为出发点,提出一种以树莓派作为间谍机的植入式PT渗透方法。该方法利用隧道技术与伪装技术,将控制流伪装成HTTPS流,实现树莓派与C&C服务器之间的隐蔽通信;同时,使用Tor网络,实现渗透人员的匿名控制,最终达到隐蔽的效果。最后,通过渗透测试模拟实验,证明了该方法的隐蔽性,说明了此类攻击可能导致的潜在威胁,为安全人员对APT/PT攻击的防御与检测提供参考。

    关键词: 渗透测试;树莓派;隐蔽式;持续性威胁;隧道;Tor网络

    中图分类号: TP315

    文献标识码: 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主机上,供渗透测试使用。

tx1-t1.gif

    渗透测试工作流程如下:

    (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所示。

tx1-t2.gif

    反向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所示。

tx1-t3.gif

    在为树莓派和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服务器的数据包,白底黑字的是反向数据包)。

tx1-t4.gif

    由图4可以看出,Wireshark没有解析出任何的SSH数据包,SSH流已被伪装成HTTPS流。较之于正常的HTTPS流,伪装的HTTPS流内包含恶意的控制流,而较之于常规的控制流,伪装的HTTPS流由于内部信息对外不可见,使其可避开防火墙的拦截与IDS/IPS的检测,而难以被发现,达到了隐蔽的效果。

    接着,为了揭露本文提出的渗透测试方法可能会导致的威胁,故对此进行渗透测试实验,为安全人员对此类攻击的识别与防范提供参考。渗透测试流程图如图5所示。

tx1-t5.gif

    渗透测试过程中,首先将树莓派伪装成一台网络监控摄像机[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.

继续阅读>>