在《西方哲学史》中,伯特兰·罗素说:“事实必须通过观察而不是推理来发现。”
在网络安全领域也是如此,实证大于逻辑,因为攻击者往往不讲武德。如果您想真正了解你的网络、应用程序、主机和员工的安全性,最好的方法是通过经验测试(渗透测试),一种能够模拟攻击工具、技术和程序的测试。
虽然许多企业外包了渗透测试,但网络安全人士依然有必要了解整个渗透测试流程中使用的工具。这一方面可以帮助你更好地与服务商谈判,另外也可以自己动手完成一些相对简单的渗透测试工作。
以下我们将介绍十大常用开源安全测试工具。鉴于这些安全工具存在被非法滥用的可能,请务必在遵守法律的前提下开展相关的学习和测试工作。这些开源安全测试工具具备以下共同特点:
1 Kali、Parrot和BlackArch
Kali是一个完整的Linux发行版,由数百个工具组成。其他值得考虑的渗透测试发行版是Parrot和BlackArch。Kali由于其受欢迎程度,优势是无处不在且拥有庞大的用户群。因此,有大量教学视频、使用指南、用户社区和其他信息可用。
Kali和其他替代发行版排名第一的原因是其包含了许多独立工具,是快速启动渗透测试的理想平台。
2 Metasploit框架
在漏洞利用方面,可能没有比在黑白两道都大名鼎鼎的Metasploit框架更知名且更易于访问的工具了。Metasploit提供了一种一致的方法来使用、打包甚至编写和分发漏洞利用。Metasploit为不同测试条件准备了许多漏洞利用和有效负载,同时还提供没有定义有效负载的辅助功能模块。
3 Zed攻击代理(ZAP)
测试应用程序不同于主机和网络级别的测试。测试应用程序的一个重要工具是代理,它使您能够拦截、查看、修改、重放和自动化Web应用程序(即HTTP和HTTPS)请求。OWASP的Zed攻击代理(ZAP)正是这样的工具。
在最基本的用法中,ZAP充当HTTP转发代理,位于您的浏览器和您正在测试的站点之间。它与任何其他HTTP转发代理(例如Explicit模式下的Squid)之间的主要区别在于它是拦截代理——而不是让浏览器隧道——TLS连接。
ZAP更高级的功能包括自动爬虫、WebSocket监视和控制、自动检测问题和模糊测试。
4 BeEF(浏览器开发框架)
很多渗透测试类型并不包括对用户的测试。如果用户也在测试范围内,你可能需要一种方法将流量从外网传送到内部。一种选择是使用BeEF(浏览器利用框架),它使测试人员能够将用户的浏览器用作攻击的跳板。BeEF允许你在用户的浏览器上建立一个钩子——例如,通过诱使他们点击您控制的链接——然后控制他们的浏览器选项卡、通过他们的浏览器传输流量等,如果你没有访问内部网络的权限,这种方法可以帮你达成目标。
5 Hydra、John the Ripper和Hashcat
有时,您只需要破解密码:Windows密码、Linux和Unix密码、SSH密码、应用程序密码等。有许多密码破解器可用,本文介绍的三个具备以下特点:
6 Mimikatz
Mimikatz可以从Windows内存中提取秘密。如果你发现自己可以访问Windows主机,你可能希望从中提取秘密信息以在其他地方使用——例如,完成以下操作:
7 Wireshark和TShark
Wireshark网络协议分析器是一个很棒的工具,可以用来准确了解设备和远程位置之间的流量情况。如果你需要窥探远程位置的网络流量,例如,当您在内部系统上建立据点之后——TShark和tcpdump使您能够通过命令行捕获数据包。
8 Sqlmap
检测SQL注入问题的专用工具是安全人士工具箱的必备品。Sqlmap是一个命令行实用程序,可帮助自动化SQL注入过程。它可以确定哪些参数、标头或数据元素容易受到SQL注入的影响,以及哪些类型的攻击是可能的。
9 SoapUI
大多数网站都是基于以无状态、通常是异步方式实现功能和业务逻辑的API构建的。虽然这对于灵活的站点设计和模块化非常有用,但这意味着底层API的安全性决定着整个站点的安全性。
SoapUI提供了一个用于测试API的接口。它可以让你在生产环境中拦截和修改请求,支持参数模糊测试等技术,并且原生支持不同数据格式——例如JSON和GraphQL。
10 Apktool和MobSF(移动安全框架)
测试移动应用程序在很大程度上依赖于测试应用程序使用的在线服务——网页和API。但是获得移动应用程序本身的更多信息也很有帮助,例如:
Apktool可让您解构和解压Android移动二进制文件,MobSF则能够对Android或iOS移动应用程序执行分析。
来源:GoUpSec