单命令获取Web服务器截图:EyeWitness替代方案与Windows批处理技巧

本文介绍如何利用EyeWitness工具及Windows批处理命令快速获取Web服务器截图,重点解析Nessus扫描结果处理、批量URL访问控制技术,以及应对应用白名单限制的实用解决方案。

Web Server Screenshots with a Single Command

EyeWitness是由Chris Truncer开发的一款便捷工具,用于从URL列表中获取网页浏览器截图。对渗透测试人员特别有用的是,它能够从Nessus扫描输出文件创建目标URL列表。每当我对客户进行Nessus漏洞扫描时,我总是对扫描结果运行EyeWitness。这是因为Nessus将所有检测到的Web服务器报告为信息性发现,而这些服务器可能存在对人类显而易见但难以被扫描器检测到的漏洞。例如,一次扫描检测到几个Web服务器,并将发现列为信息性。然而,在Web浏览器中访问每个URL显示了客户内部办公室的流媒体视频。这显然是一个安全问题。内部网络扫描中另一个常见的发现是嵌入式Web服务器接受默认凭据,例如路由器、交换机、打印机和VOIP电话上的那些。

该工具可以在Linux和Windows上运行,我经常使用它。不过,偶尔我会遇到无法使用它的情况。例如,当我只能访问Windows系统,并且应用白名单生效,或者将文件移动到系统很困难时。对于这种情况,我想出了以下Windows命令行单行命令。虽然不如EyeWitness那么巧妙,但拥有另一个快速简单的选项时不时会派上用场。

首先,我根据Nessus扫描结果生成URL列表。一种方法是导出扫描结果的CSV版本,并在Excel中使用快速公式基于"服务检测"扫描结果构建URL列表。另一种方法是将扫描结果导出为.nessus文件,将其移动到我自己的本地Linux实例,并使用EyeWitness的createtargets选项,如下所示。

1
./EyeWitness.py -f internal_scan_results.nessus --createtargets URLs.txt

然后我将此列表移动到我正在工作的Windows环境中,并可以运行以下命令使用Internet Explorer打开URLs.txt文件中的每个URL。

1
for /F %u in (URLs.txt) do @start iexplore %u

但是,如果我有多个URL要处理,这将一次打开太多Internet Explorer窗口。为了解决这个问题,我添加了一个计数器,并使用它在每打开五个URL后暂停。在此之前,您需要首先使用此命令在命令行上启用延迟变量扩展。

1
cmd.exe /V:ON

完成此操作后,您可以继续执行以下命令。

1
set /a count=1 & for /F %u in (URLs.txt) do @start iexplore %u & echo %u & set /a _result=!count!%5>NUL & @(if !_result!==0 @pause) & set /a count+=1

注意:如果您运行上述命令并且它没有每五个URL暂停一次,那么您忘记了先执行"cmd.exe /V:ON"命令。

这使您有机会一次手动检查五个Web界面,在有趣时截图并尝试默认凭据。当您准备继续时,只需在命令窗口中按任意键即可释放另外五个。命令窗口输出如下所示,URL被回显到命令行,并以五个为一组在Internet Explorer中打开。准备继续时按任意键。

这比在使用EyeWitness不可行时手动将URL复制粘贴到浏览器窗口中执行相同任务要好。享受吧!

想在Linux上做类似的事情?试试@h1ghtopfade的这个单行命令。

1
xargs -a URLs.txt firefox -new-tab "$line"
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计