静态检测 Windows AD 域成员上存在漏洞的 log4j 库。 使用 @1lann 提供的检测工具二进制文件:https://github.com/1lann/log4shelldetect
脚本首先会在脚本文件夹中创建一个包含域内服务器的 .csv 列表。 直接运行即可,如果该文件尚不存在,它会询问你是否创建。
./log4shelldetect.ps1
你可以使用搜索模式来填充该列表并定位特定的服务器名称。 该模式将被添加到 "Get-AdComputer -Filter" 中。示例:
./log4shelldetect.ps1 -searchPattern '*tst*'
直接不带参数运行脚本。它会为服务器列表中的每个条目创建 PSJob。 这些 PSJob 会在每个目标 AD 计算机上为检测到的每个本地驱动器远程创建计划任务。 然后,扫描二进制文件将被执行以扫描文件系统,搜索存在漏洞的库。
./log4shelldetect.ps1
最后,你需要检索作业输出,以使用状态(存在漏洞、不存在漏洞、无法访问等)更新服务器列表。 如果检测到服务器存在漏洞,当前文件夹中会创建一个以相关计算机名称命名的文件夹,其中包含扫描工具的输出。 这些文本文件中的每一行都代表一个存在漏洞的 log4j 二进制文件。
./log4shelldetect.ps1 -update
自动化操作时请务必小心!
计划任务以 'NT AUTHORITY\SYSTEM' 身份运行,以访问本地文件系统上的所有目录。
使用风险自负。使用前请务必仔细审查脚本。
特别感谢 @1lann 的工作,感谢他早期开发了有效的工具来检测 log4j 漏洞。