Skip to content

01武器库:常用的渗透测试工具

你好,我是赢少良。这一讲,我来介绍一些常用的 Web 渗透测试工具。通常每个安全人员都有自己熟练使用的一套工具,这样在实战中才能高效,也不用浪费时间去自己重复造轮子。

白帽子最喜欢用什么安全工具?

2020 年的 HackerOne 黑客报告中,统计过白帽子们最喜欢用的软硬件工具。

图 1 白帽子最喜欢使用的工具统计图

从图中可以看到,89% 的白帽子都会使用 Burp Suite 这个 Web 应用安全测试工具,有 39% 会尝试自己写工具,第三名的 Fuzzers 是模糊测试工具。再后面主要是一些代理抓包工具、漏洞扫描器和调试器(用于调试二进制程序居多)。

从以上信息中我们也能了解到,涉及 Web 渗透的常用工具集中在代理抓包工具和漏洞扫描器上。Burp Suite 两者兼具,还有丰富的插件,并集成了很多渗透测试的常用功能,是手工挖掘漏洞的必备神器。因此,成为白帽子的最爱也在情理之中。

这一讲我收集整理了一些个人比较常用的工具,有一定的个人爱好偏向,你也可以根据自己的喜好选择顺手的使用,并不必局限于我列举的工具。

这里我主要介绍常用的工具以及在使用上的一些技巧和心得,你可以自己动手安装尝试一下。在未来的课程中,我会在合适的实践场景讲解相应工具的实战应用,比如在"第 04 讲"将介绍 Nmap,在"第 07 讲"和"第 08 讲"提到"SQL 注入"时又会应用 SQLMap。

我比较推荐从资料的源头入手,哪怕是英文的原始资料,你自己认真阅读一遍,肯定好过被别人嚼烂的东西。下面的工具我也会尽量标出原始技术内容来源,此处不会过多详细地介绍每一样工具的使用,你可以参考文末列出相关的资料清单,边操作边学习。

Burp Suite:集成化的 Web 应用测试工具

我们先来看看白帽子们最喜欢的 Web 应用安全测试工具:Burp Suite。

图 2 Burp Suite

Burp Suite 分免费的社区版、收费的专业版和企业版。社区版主要是一些代理抓包改包的基本功能,专业版则包含漏洞扫描器、插件商店、Burp Instruder(比如用来暴力破解账号)等功能。

专业版一年收费 399 美元,按当前汇率算,相当于 2637 元,也并不便宜;企业版更贵,要 3999 美元(相当于 26435 元),主要增加了一些定期循环漏洞扫描和 CI 持续集成功能,具有更好的扩展性。

对个人而言,专业版就足够了。其实我觉得 Burp Suite 的漏洞扫描功能一般,漏洞发现能力并没有那么强,其检测结果仅作为参考。对于漏洞扫描,我更喜欢使用稍后要介绍的几款漏洞扫描工具。

以前我做渗透测试时比较习惯用 FireFox,因为它有丰富的安全测试插件。现在 Chrome 市场占有率已经超过 70%,以前 FireFox 中很多优秀的插件也移植到了 Chrome 中,因此我现在基本只用 Chrome。

这里提到浏览器,是因为在使用 Burp Suite 前需要配置浏览器代理,这样才能将 HTTP/HTTPS 请求转发到 Burp Suite 上进行分析与测试。

在 Chrome 的设置中搜索"代理"会让你选择"打开您计算机的代理设置",如下图所示:

图 3 Chrome 代理设置

打开之后你就可以设置 HTTP/HTTPS 代理为 Burp Suite 的对应端口,默认为 127.0.0.1:8080。下面两张图分别是系统和 Burp Suite 上的代理设置页面:

图 4 系统代理设置页面

图 5 Burp Suite 代理设置页面

如果每次使用都要进行这样的配置代理其实还挺麻烦的,毕竟有时也得正常地使用浏览器上网。我在这里推荐个小技巧:你可以使用 Chrome 上的插件"Proxy SwitchyOmega"来快速切换代理,如果你用的是 FireFox,那可以使用 FoxyProxy 插件。

在 Chrome 应用商店中搜索"Proxy SwitchyOmega"并安装它,然后像下图这样配置:

图 6 Proxy SwitchyOmega 配置

配置完成后你就可以在 Chrome 浏览器右上角的插件栏中点击"Proxy SwitchyOmega"插件图标,选择上面创建的"Burp Suite"情景模式开启代理,若想关闭代理直接选择"系统代理"即可。

图 7 Proxy SwitchyOmega 快速代理展示

下图是代理成功后,Burp Suite 拦截到流量的效果图:

图 8 Burp Suite 代理成功

其他更详细的 Burp Suite 功能,你可以参考Burp Suite DocumentBurp Suite 实战指南这两份资料学习,此处不再展开。

Acunetix WVS

Acunetix WVS(Web Vulnerability Scanner)是我以前经常用的 Web 漏洞扫描器,也曾用它刷了不少国内 SRC 平台的漏洞。

图 9 Acunetix WVS

WVS 支持登录态扫描,可以登录账号访问需要权限的页面,从而爬取更多 URL,提高漏洞发现率。这个功能很重要,有些网页的功能全都要求登录,如果没有这一步设置,你什么也扫不到。不过现在很多扫描器也支持登录态扫描了。

这几年 WVS 也在不断地更新维护,它属于收费软件,一年 3,331.99 美元(相当于 22049 元),对企业来说可以接受。但 WVS 的规则越做越烂,现在的版本扫出来的漏洞大部分都是误报,参考价值不如以前。

关于 WVS 的具体使用,你可以参考 Acunetix WVS 官方提供的使用文档

Xray:Web 漏洞扫描器

随着 WVS 的没落,国内的长亭科技出了一款叫作 Xray 的漏洞扫描器,现在国内不少白帽子开始使用它。他们会自己开发一些自动化工具去爬虫,然后导入地址到 WVS 和 Xray 扫描(参考资料:Xray_and_crwlergo_in_servecrawlergo_x_XRAY),在扫到漏洞后,微信会自动通知。

图 10 Xray

我在使用 Xray 的时候发现,Xray 的准确率要比 WVS 高,但漏洞发现率不是很高,经常扫完后报告是空的,而且 Xray 的扫描速度很慢,还有一定优化的空间。

Goby:基于网络空间测绘的漏洞扫描器

Goby 是一款国内新出的安全扫描器,它基于网络空间测绘技术进行资产收集,也就是先通过对目标网络的 IT 资产进行规则分析,建立知识库,在发生安全事件时就能直接用于应急响应,这项功能比较适合企业内部。Goby 属于免费的工具,且跨平台支持 Windows、Linux 和 macOS,界面不错,还提供了多个皮肤。

图 11 Goby

Goby 有个比较实用的功能,那就是支持自定义规则的漏洞扫描框架 。它本身也会收集一些产品的 PoC(概念证明,常被用于验证是否存在漏洞,如下图所示),同时在外部曝光或自主挖掘到漏洞时,借助该框架添加规则,可以快速去扫描相关资产是否存在漏洞,对于企业应急和个人刷 SRC 平台漏洞是一个神器

图 12 Goby 收集的 PoC

Goby 的使用可以参考官方文档中的内容。

SQLMap:SQL 注入检测与利用

SQLMap 无疑是 SQL 注入工具中的王者。在 SQL 注入漏洞检测与利用上,SQLMap 提供了非常全面的功能,哪怕是一些漏洞无法检测到,许多白帽子仍习惯在上面做二次开发,或者利用 tamper 脚本来扩展。

图 13 SQLMap

我将在"第 06 讲"和"第 07 讲"中详细介绍该工具的使用,此处不再赘述,详细的使用方法可以从官网了解。

Nmap:网络扫描与主机检测

Nmap 有界面版本和命令行版本,我比较喜欢使用命令行,因为可操作空间大一些。

图 14 Nmap 界面版本

图 15 Nmap 命令行版本

很多人只知道 Nmap 可用于端口扫描和主机服务识别,但实际上它远不止如此。Nmap 提供的丰富脚本,大大扩展了它的功能,它可以探测弱口令,甚至是漏洞扫描。Nmap 的功能十分强大,需要你慢慢探索。

关于 Nmap 详细的使用说明,你可以参考官方文档,在下一讲"信息收集:掌握目标的一切信息"中,我还会提到 Nmap。

Postman:模拟发包工具

虽然 Burp Suite 功能强大,但有时会觉得开启代理麻烦,对于能在浏览器上直接完成的,我一般都不开 Burp Suite 操作。

Chrome 上自带的开发者工具可以直接抓包查看:通过在网页右击,选择"检查"即可打开;然后切换到"Network"标签页,操作网页后即可获取到网络请求包,但它不支持拦截修改请求包。

图 16 Chrome 抓包

如果你想直接构造请求去发包,或者用来测试一些网络接口的调用,那使用 Postman 再适合不过了。安装完 Postman 后,通过 Chrome 标签栏的"应用"即可打开 Postman。

图 17 Chrome "应用"标签

图 18 Postman

Postman 也支持网络拦截来修改数据包重发,但需要另外安装个插件"Postman Interceptor",我感觉没有 Burp Suite 来得好用和强大,因此我很少用它。关于 Postman 更多的使用方法,可以参考官方文档

对于 Postman 与 Burp Suite,轻量操作可以选择 Postman ,比如单纯发包测试接口,又懒得配置代理的操作;如果你需要更多安全测试方面的功能 ,比如改包、批量发包测试用来暴力猜解密码或遍历信息,那么 Burp Suite 无疑是最佳的选择

HackBar:安全测试插件

HackBar 是一款非常经典的 Web 安全测试插件,最早出现在 FireFox 浏览器中,后来也被移植到了 Chrome。它可以用来构造 GET/POST 请求,自带一些编码解码工具,以及 XSS 和 SQL 注入常用测试用例,能为你在实际测试中提供很大的便利。

图 19 HackBar

HackBar 的功能跟 Postman 有些类似,都是用来模拟发包的工具,但 HackBar 显然是为专业的安全人员开发的,而 Postman 虽然有很多开发在用,但常被用来测试一些网络 API 接口

HackBar 使用非常简单,正如它简洁的界面一样,所有的功能都可以很快上手,用几次基本就熟练了。无论是 HackBar 还是 Postman,你都可以试一下,选择自己顺手的工具即可。不管什么工具,能够帮助你挖到漏洞的都是好工具。

NC(NetCat):网络瑞士军刀

我习惯称 NC 为瑞士军刀,因为它简单易用,功能强大,在行业内非常流行。在实际渗透测试中,我最常用的有两个功能:

  • 监听端口以等待后门回连

  • 发包测试,有时请求包内容较多,可以放在一个文件里面直接提交(不局限 http/https 这种请求),其他任意端口都支持,所以它要比 postman 和 hackbar 这些发包工具的应用范围要广。

除此之外 NC 还有其他功能,比如端口扫描、作为代理来端口转发数据,甚至可以在两台主机之间搭建起聊天室。

图 20 NC

更多 NC 命令参数的使用,可以通过 man nc 命令来查看。

Metasploit:渗透测试平台

Metasploit 在渗透测试中经常被使用到,它不是一个单纯的工具,而是一个集成各种渗透测试工具的平台,上面有很多漏洞利用工具,还有免杀处理、后门生成与留存、远程控制等很多强大的功能。

图 21 Metasploit

以前我经常用 Metasploit 来辅助编写名为"内存破坏漏洞"的利用程序。Metasploit 在主机渗透,甚至是当前移动手机上的渗透测试都可以使用,所以这里我非常推荐你去好好研究一下 Metasploit 平台的应用。

国内外已经出版了很多本关于 Metasploit 的书籍,你也可以直接阅读官方文档

总结

这一讲我向你介绍了一些常用的渗透测试工具,它们也是我平常用得比较多的几款工具,你可以多用用,挑选自己感觉比较顺手的工具。

这里没有详细介绍每一款工具的安装和使用,因为这些工具在网上都有很多资料,我只对它们做一个简单的介绍,让你能了解它们。

我非常推荐去阅读官方的第一手资料,它们经常保持更新,且资料说明也比较全面,比二手资料要好很多。本讲除了介绍一些常用工具外,更重要的是想向你传递两个信息:

  1. 尽量阅读一手资料;

  2. 多用搜索引擎查找相关资料学习。

除了本讲介绍的工具外,你还知道哪些好用的渗透测试工具呢?欢迎在留言区分享推荐。

下一讲,我将带你了解一些收集渗透目标相关信息的方法和工具,它是我们开展渗透测试工作的第一步。