我的任务是创建我们基础设施上托管的所有网站/网络应用程序的清单(大约 120 台 Linux VM 上托管了数千个网站)。大多数网站由 Apache(httpd 2.4)提供服务,但也有 Apache 2.2、Nginx、Tomcat 和其他网络服务器使用。由于这是一项艰巨的任务,我不想花费不必要的时间。所以我想知道是否有人可以向我指出现有的脚本、工具、Ansible 角色或类似的东西,它们可以解析网络服务器配置以收集所有配置的虚拟主机。我知道渗透测试人员使用 DirBuster 或 VHostScan 等模糊测试工具,但由于我拥有这些网络服务器的 shell 访问权限,因此这似乎是低效(并且可能不准确)的方法。
答案1
对于 Apache httpd,您可以运行以下命令:
这显示了从配置文件解析的设置(当前仅显示虚拟主机设置,但这正是您所需要的)。
返回的内容大致如下:
VirtualHost configuration:
*:80 is a NameVirtualHost
default server www.example.com (/etc/httpd/conf.d/www.example.com.conf:19)
port 80 namevhost www.example.com (/etc/httpd/conf.d/www.example.com.conf:19)
alias example.com
alias server.example.com
port 80 namevhost www.example.co.uk(/etc/httpd/conf.d/www.example.co.uk.conf:1)
alias example.co.uk