1.Nmap
如果规定只能使用一款工具进行渗透测试的话,我的选择一定会是Nmap。这是一款极为富有传奇色彩的渗透测试工具。Nmap在国外已经被大量的网络安全人员所使用,它的身影甚至出现在了很多的优秀影视作品中,其中影响力最大的要数经典巨著《黑客帝国》系列。在《黑客帝国2》中,Tritnity就曾使用Nmap攻击SSH 服务,从而破坏了发电厂的工作。Nmap是由Gordon Lyon设计并实现的,于1997开始发布。Gordon Lyon最初设计Nmap的目的只是希望打造一款强大的端口扫描工具。但是随着时间的发展,Nmap的功能越来越全面。2009年7月17日,开源网络安全扫描工具Nmap正式发布了5.00版,这是自1997年以来最重要的发布,代表着Nmap从简单的网络扫描软件变身为全方位的安全工具组件。可以毫不夸张地说,在Nmap的面前,一个网络是没有隐私的。网络中有多少台主机,每台主机运行的操作系统,每台主机运行的应用程序,甚至每台主机上面存在的漏洞,这些信息都可以利用Nmap获得。
2.Maltego
Maltego和Nmap一样都是信息收集工具,但是两者的工作方式全然不同。Nmap是典型的主动扫描工具,而Maltego则是一款极为优秀的被动扫描工具。和Nmap获取的操作系统、端口、服务等信息不同,Maltego获取的往往是一些网络使用者的信息。利用Maltego,我们就可以仅仅从一个域名找到和它有关联的大量信息,并把这些信息整合。此外,Maltego支持用户操作上的自定义行为,从而整合出最适合用户的“情报拓扑”。
3.Recon-NG
Recon-ng是一个由Python语言编写的全面Web探测框架,目前这个框架中包含拥有超过80个独立的模块。因此并不能简单地将Recon-ng看作是一个主动扫描工具或者被动扫描工具。它提供了一个强大的开源Web探测机制,帮助渗透测试人员快速彻底地进行探测。
4.OpenVAS
OpenVAS是一个开放式漏洞评估系统,这是一款威力极为强大的工具。一般来说,这款工具也是绝大多数人眼中最为神奇的一款工具。因为你只需要把要测试目标的IP填进OpenVAS,它就会把目标操作系统上存在的漏洞显示出来。也就是说你需要做的,仅仅是填写一个IP地址而已,而得到的却是一份关于目标系统存在漏洞的详细报告。OpenVAS可以分成两个核心部分,一个是网络漏洞测试引擎,另一个是网络漏洞库。它的工作原理就是由测试引擎向目标发送特制的数据包,然后将目标的回应与网络漏洞库中的样本进行比较,如果匹配成功,则可以认为存在该漏洞。
5.Metasploit
Metasploit可以说是当今世界上最富盛名的渗透测试工具了,在网络安全行业是无人不知。如果说OpenVAS的用途是发现目标的漏洞,那么Metasploit就是开启漏洞的钥匙。拥有了这把钥匙的人,可以轻而易举完成对目标的渗透。这款强大的工具是H.D. Moore在2003年开发的,当时它只集成了少数几个可用于渗透测试的工具。但是这确实是一个革命性的突破,在Metasploit出现之前,渗透测试者总需要自己去编写漏洞渗透模块,或者通过各种途径寻找漏洞渗透模块。而Metasploit帮助渗透测试者从这样的工作中解放了出来,它集成了大量的漏洞渗透模块,统一了这些模块使用方法,并且提供了大量的攻击载荷和辅助功能。可以这样说“有了Metasploit,任何人都可以如同电影中的黑客一样轻松地入侵目标。”
6.SET
社会工程学是一门新兴的学科,在最近这些年中这门学科得到了迅速发展。越来越多的黑客入侵事件都与社会工程学分不开。
我们经常会听说钓鱼邮件、钓鱼网站之类的说法,这些其实都是社会工程学的典型应用。David Kenned特意使用Pyhotn编写了一个功能众多的社会工程学工具包(SET)。SET利用人们的好奇心、信任、贪婪及一些愚蠢的错误来进行攻击。在这个工具包中提供了大量功能,例如发送木马邮件、生成假冒网站、利用U盘传播后门等,目前该工具包已经成为渗透测试行业部署实施社会工程学攻击的标准。
7.Ettercap
Ettercap的功能主要是实现对目标主机的欺骗和监听,这种工具的应用范围有限,但是在其应用范围之内能力极为强大。在一个网络中,有的计算机可能安全性能较高,因而难以渗透;而有的计算机安全性能较差,因而容易渗透。这时我们就可以首先选择那些安全性能较差的主机进行渗透。然后就是Ettercap这类工具大显身手的时候,可以说利用Ettercap渗透一台同一子网的主机是一件易如反掌的事情。
8.Burpsuite
随着互联网的快速发展,网络安全的侧重点已经向Web应用转移。近年来,我们在进行网络安全渗透测试时主要的对象大都是Web应用。目前所有的单位都会对自身所使用的Web应用进行严格的测试。同时,Web应用的问题也是近年来网络安全的重灾区。SQL注入、跨站、cookie盗取等问题层出不穷。BurpSuite 就是用于一款专门测试Web应用程序的集成平台。BurpSuite分为试用版和专业版,其中包含了大量针对Web应用测试的工具,而且BurpSuite中为这些工具设计了许多接口,我们还可以自行编写脚本以完善它的功能。
9.Wireshark
严格来说,Wireshark并不是一款专门的渗透测试工具,它的作用是监控网络的流量。但是我每次都会跟我的学生说,熟练使用Wireshark是网络渗透测试专业的必备技能。Wireshark主要有两个功能:一是可以监控网络,发现网络中的那些恶意流量,并找出这些恶意流量的源头;二是可以对应用的工具进行调试,有些时候我们在进行渗透测试的时候,运行了工具却完全没有反应,这时很难判断到底是这个工具本身的问题,还是目标的问题。利用Wireshark我们就可以查看这个工具是否正常地发送出去了数据包,从而找到问题的源头。另外通过这种调试也可以帮助学习这些工具的设计原理。
10.Dradis
虽然我们在前6个阶段付出了大量的努力,但是最后呈现在用户面前的只有一份报告。那么这份报告也将决定着客户对我们的工作是否满意。
渗透测试报告的编写是一件相当复杂的工作,不过好在现在有一些相当优秀的工具可以帮助我们来完成。其中的Dradis框架就是一个极为优秀的开源协作和报告平台。它是由Ruby开发的一个独立的平台。利用这个工具可以轻松地将前6个阶段的工作成果整合在一起,并生成一份详实的报告。