Gowitness,测试人员的时间节省器
在进行外部或内部网络渗透测试时,逐一遍历范围内的每个Web服务器以寻找有价值的内容可能是一项挑战。在时间受限的评估中,像Gowitness(https://github.com/sensepost/gowitness/wiki)这样的工具可以帮助优先处理目标网络上可用的Web应用程序。
Gowitness是一款自动化的网站截图工具,灵感来源于Eyewitness(https://github.com/FortyNorthSecurity/EyeWitness),使用Golang编写。Gowitness导航到每个Web应用程序,并使用无头浏览器生成Web应用程序的截图。它通过捕获HTML响应和HTTP头来对这些应用程序进行指纹识别。此外,Gowitness尝试识别应用程序使用的技术。然后,它生成一份报告,使测试人员能够轻松浏览可用的Web服务。
安装
Gowitness的安装可以很简单,只需下载预构建的二进制文件之一,地址为:https://github.com/sensepost/gowitness/releases。
您可以使用go安装该工具,如下所示:
|
|
您可以使用Docker容器运行该工具:
|
|
您也可以克隆存储库并从源代码编译该工具:
|
|
在尝试使用该工具之前,请确保您的机器上安装了Chrome和Golang。
Gowitness扫描
还有许多其他自动化截图工具,我鼓励您调查最感兴趣的工具。我们还有另一篇关于Eyewitness的博客文章(https://www.blackhillsinfosec.com/eyewitness-and-why-it-rocks/)。Eyewitness有一个很酷的功能,我希望Gowitness在某个时候也能实现,那就是默认凭据识别。Eyewitness会向用户提供默认凭据(如果它知道的话)以及应用程序HTTP头信息。我使用Gowitness是因为我是Golang的粉丝,并且我喜欢该工具的UI。
我通常使用Gowitness处理Nessus和Nmap扫描结果。Gowitness接受多种格式的目标。您可以向该工具提供单个目标URL、URL列表、IP或CIDR。
处理Nessus扫描命令:
|
|
Gowitness可以处理XML格式的Nmap结果。要以XML格式输出Nmap结果,您可以使用-o标志运行Nmap,参数为X。示例如下所示。
|
|
处理Nmap扫描命令:
|
|
Gowitness有各种标志选项,可用于微调您的扫描。例如,–user-agent标志。默认的用户代理字符串是“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36”。假设您想使用移动用户代理字符串尝试不同的结果;您可以将此标志值设置为类似–user-agent “Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Version/10.0 Mobile/14E5239e Safari/602.1”的内容。
我列出了一些其他有用的标志:
- –timeout – 超时字符串。默认为10秒。
- -t/–threads – 用于运行Gowitness的线程数。默认为4个线程。
如果您在一个可靠的网络上,但有许多无效域名,您可能考虑将超时减少到4秒以减少扫描时间。
我建议将线程数设置为系统核心数的1到2倍。因此,如果您的系统有4个核心,您可以将线程设置为8。您可以监控CPU使用情况,并在遇到瓶颈或仍有未使用的周期时进行调整。
Gowitness结果
Gowitness将每个目标URL的截图存储在一个名为screenshots的文件夹中。此外,Gowitness创建一个SQLite数据库,存储在文件gowitness.sqlite中。要查看Gowitness结果,首先启动Web服务器,运行以下命令,然后在浏览器中导航到http://localhost:7171。
|
|
统计仪表板
我们的Gowitness服务器的登录页面显示统计信息,详细说明已处理的URL数量、DNS名称和证书数量,以及在目标Web服务器上观察到的独特技术。如果有新目标出现,您可以通过UI点击“Submit New URL”轻松提交新URL。
提交新目标
Gowitness还支持暗模式,这在功能上不一定有区别,但它是我喜欢的一个功能。
暗模式
您可以通过点击“Table View”以表格格式查看结果,或在“Gallery View”中查看各种Web应用程序。
表格视图
在画廊模式中查看结果时,您可以启用感知排序,该功能将根据看起来相似的图像对结果进行排序。感知排序允许您对运行相同Web服务的目标进行分组,并使测试默认凭据等问题变得轻而易举。
感知排序画廊模式
每个条目显示捕获的截图、技术、HTTP响应头以及其他详细信息,如控制台日志、网络日志、DOM和TLS信息。
截图和HTTP头
Gowitness结果易于搜索。您可以通过在搜索栏中键入查询来检索URL、HTTP头、控制台日志和网络日志的结果。例如,下图显示了运行JQMIGRATE的所有Web服务器的搜索结果。
JQMIGRATE查询
我们可以通过在HTTP头中搜索Apache来识别Apache Web服务器。
Apache头
我们还可以查询Gowitness API以收集类似的详细信息。
API查询
一旦您调查了处理过的Gowitness结果,您可以生成一份合并报告。Gowitness将创建必要文件的zip存档和结果的HTML文档。
|
|
合并报告
Gowitness是一款出色的自动化截图工具,对于帮助测试人员快速浏览大量URL列表或扫描数据后处理非常有用。