渗透攻击
如果把目标系统上的漏洞比作阿克琉斯的脚踵,那么漏洞渗透工具就是帕里斯手中的利箭。
在第6章中,我们介绍了如何使用远程控制工具,而在这一章中我们将会介绍如何将远程控制软件的被控端发送到目标主机上。而这个过程最为神奇的方法就是对目标漏洞的利用。前面的章节已经介绍了如何找出目标的漏洞,那么在发现了目标系统的漏洞之后,我们接下来的工作就是要利用漏洞渗透工具来给目标最关键的一击。而Metasploit则是目前相当优秀的一款渗透工具。
一、 Metasploit 的基础
2003年左右,美国的H.D Moore(世界著名的黑客)和Spoonm创建了一个集成了多个漏洞渗透工具的框架。随后,这个框架在2004年的世界黑客交流会(Black Hat Briefings)上备受关注,Spoonm在大会的演讲中提到,Metasploit的使用非常简单,以至于你只需要找到一个目标,单击几下鼠标左键就可以完成渗透,一切就和电影里面演的一样酷。
Metasploit中常用的模块及其功能
1. 漏洞渗透模块(exploits)
每一个模块对应着一个漏洞,发现了目标的漏洞之后,我们无需知道漏洞是如何产生的,甚至无需掌握编程技能,你只需要知道漏洞的名字,然后执行对应的漏洞模块,就可以实现对目标的入侵。
2. 攻击载荷模块(payload)
它们可以帮助我们在目标上完成远程控制操作。通常这些模块既可以单独执行,也可以和漏洞渗透模块一起执行。
3. 辅助模块(auxiliary)
进行信息收集的模块,例如一些信息侦查、网络扫描类的工具。
4. 后渗透攻击模块(post)
当我们成功地取得目标的控制权之后,就是这类模块大显身手的时候,它可以帮助我们提高控制权限、获取敏感信息、实施跳板攻击等。
二、Metasploit 的基本命令
如果我们只是希望查看其中某一个种类的模块,就可以使用命令show加上对应的模块种类,例如查看漏洞渗透模块就可以使用命令:
Msf5 > show exploits
Name | Disclosure Date | Rank | Description |
…… | …… | …… | …… |
windows/smb/ms08_067_netapi | 2008-10-28 | great | MS08-067 Microsoft Server Service Relative Path Stack Corruption |
…… | …… | …… | …… |
这里面漏洞渗透模块的列标题一共分成4个部分,分别是名字(Name)、披露日期(Disclosure Date)、威胁等级(Rank)和威胁描述(Description)。
所有的漏洞渗透模块的名字都采用三段式的标准,就是采用“针对的操作系统+针对的服务+模块的具体名称”共同组合而成。
三、使用 Metasploit 对操作系统的攻击
MS08-067漏洞爆发之后不到10年之际,2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布了一大批网络攻击工具,其中就包含“永恒之蓝”工具,它利用Windows系统的SMB漏洞(ms17_010)可以获取系统最高权限。其中乌克兰、俄罗斯、西班牙、法国、英国等多地均遭遇到黑客利用“永恒之蓝”工具进行的袭击。
四、使用 Metasploit 对应用程序的攻击
简单文件共享http服务器(英文名字为“Easy File Sharing HTTP Server”),这是一款应用十分广泛的http服务器软件。但是这款软件在2015年被发现了一个漏洞。随即Metasploit收录了关于这个漏洞的渗透模块,现在我们就利用这个漏洞来对一个操作系统为Windows 7的目标进行渗透。
五、使用 Metasploit对客户端发起攻击
Metasploit中还提供了大量的被动攻击方式。这种攻击方式的思路很特殊,往往需要得到受害目标用户的配合才能成功。但是在日常生活中,这种攻击方式的成功率往往比主动攻击要高,所以也是重点要防范的对象。
许多黑客入侵的案例都是由于受害者点击了恶意链接造成的。这些恶意链接的作用各不相同,但是如果目标使用的是存在漏洞的浏览器或者使用了有漏洞的插件,那么就有可能导致整个系统控制权的沦陷。Metasploit集成了大量针对各种浏览器和各种插件的攻击模块。
1、利用浏览器插件漏洞渗透
浏览器中通常会安装很多实现辅助功能的插件,它们往往也正是黑客攻击的重灾区。例如我们大家都十分熟悉的用于展示网页动画效果的Adobe Flash Player插件就多次被爆出安全漏洞,在Metasploit中查询可以使用的模块如图所示。
2、利用HTA文件渗透
由于浏览器安全技术发展很快,很多时候黑客需要面对一些安全的浏览器(就是暂时没有发现漏洞的浏览器),这时他们通常会选择一种不需要依赖漏洞的手段。这种手段要看起来像是一个正常的行为,例如让访问伪造网站的受害者下载一个插件,借口往往是提高体验,或者正常显示一类的。但是这个文件不能是exe之类很容易就会被发现的类型,因此HTA就成了一个最好的选择。
3、使用VBscript进行渗透测试
宏病毒是一种特殊的文件型病毒。例如微软的Office产品系列提供使用VBA程序语言编写程序的功能。VBA是基于 Visual basic发展而来的,与VB具有相似的语言结构。Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。但是宏病毒也是微软在WORD中引入宏之后出现的,目前微软的OFFICE产品是最为流行的编辑软件,并且跨越了多种系统平台,宏病毒利用这一点得到大范围的传播。
构造一个包含宏病毒的word文档也并不复杂,只要编制一个含autoopen函数,就可自动引发病毒。在word打开这个文档时,宏病毒会执行,然后将自己感染到其他文档或直接删除文件等。WORD宏和其他样式储存在模板.dot文件中,因此总是把文档转换成模板再储存宏。
4、browser_autopwn2 模块进行渗透攻击
如果你觉得一个一个地选择模块很麻烦,也可以考虑使用browser_autopwn模块。这种攻击的思路是渗透者构造一个攻击用的Web服务器,然后将这个Web服务器的地址发给目标用户,当目标用户使用有漏洞的浏览器打开这个地址的时候,攻击用的Web服务器就会向浏览器发送各种攻击脚本,如果其中某个攻击脚本攻击成功的话,就会在目标主机上建立一个Meterpreter会话。
六、使用 Metasploit对Web应用的攻击
总结:
本章节中介绍了如何将远程控制软件发送到目标主机上,而这一切都要依赖目标系统上的漏洞。鉴于漏洞开发的复杂度较大,我们在学习的过程中选择了使用前人已经写好的针对漏洞的渗透模块。还介绍了网络安全渗透测试工具 Metasploit,这是一款功能极强的工具,其集成了世界上大部分漏洞的渗透模块。然后以实例的形式介绍了 Metasploit 的使用方法,并且将漏洞历史上经典的 MS17-010 漏洞作为实例,讲了如何针对操作系统进行攻击;然后针对如何对Windows 7以后的操作系统进行渗透提供了思路,通常很难直接利用 Windows 7 以后的操作系统漏洞,采用迂回的方式,找出运行在操作系统上的软件的漏洞进行渗透;最后介绍了一种针对目标浏览器和办公软件的被动攻击。在下一章中将讲解对初学者来说,学习 Metasploit 更简单的一种方式—— Metasploit 的图形化操作界面。