log4j内网扫描工具——log4jScanner
作者:Sec-Labs | 发布时间:
工具介绍
log4jScanner 提供扫描内部子网以查找易受攻击的 log4j Web 服务的能力

目标
这个工具为你提供了扫描内部(仅)子网的能力,以寻找有漏洞的log4j网络服务。它将尝试向每个发现的Web服务发送JNDI有效载荷(通过下面概述的方法)到一个常见的HTTP/S端口列表。对于它收到的每一个响应,它将记录响应的主机IP,这样我们就可以得到一个有漏洞的服务器列表。
如果有一个 "SUCCESS",这意味着一些网络服务已经收到了请求,对log4j的攻击是脆弱的,并向我们的TCP服务器发送了一个请求。
该工具不会向易受攻击的主机发送任何漏洞,它被设计为尽可能被动。
最新安装包
| 平台 | 文件 | 文件校验 |
|---|---|---|
| Windows | log4jscanner-windows.zip | SHA256 |
| Linux | log4jscanner-linux.zip | SHA256 |
| MacOS | log4jscanner-darwin.zip | SHA256 |
示例

在这个例子中,我们针对192.168.1.59/29子网(包含一个有漏洞的服务器)运行该工具。
该工具做了以下工作。
- 在默认地址上打开一个服务器(本地IP,端口为5555)。
- 可能的话,添加标志--ports=top100来调整扫描,以包括前100个端口
- 然后,该工具尝试子网中每个IP地址上的所有端口。如果一个远程服务器在其中一个端口响应,请求就会被发送给它。
- 如果该服务器是脆弱的,则回调到我们的服务器(在步骤1中创建),并记录下远程的IP地址。
- 在子网中的所有IP地址被扫描后,服务器会等待默认的10s时间,以等待任何残留的连接并关闭。
工具显示所建立的连接的摘要。 - 发送给响应的远程服务器的请求(以及他们响应的状态代码)
向我们的服务器发出的任何回调地址
使用
基本使用方法
为你的特定平台(Windows、Linux或Mac)下载工具,要运行该工具,确保主机上的5555端口可用(或通过配置改变它),并指定要扫描的子网(可以使用-server标志配置单独的服务器:端口组合)。
log4jScanner.exe scan --cidr 192.168.7.0/24
这将测试子网中主机上的前10个HTTP/S端口,将任何易受攻击的主机打印到屏幕上,并在与二进制文件相同的位置生成一个日志+摘要CSV,包括所有的尝试(包括易受攻击和不易受攻击)。
为了确定哪些主机是易受攻击的,只需在日志中查找SUCCESS这个词,你可以在日志中对SUCCESS这个关键词进行grep,就能得到相应的结果。另外,该工具会生成一个包含所有结果的CSV文件,过滤脆弱的主机以获得脆弱的主机。
其他使用选项
你可以用这个工具来测试前100个HTTP/S端口,插入一个单一的自定义端口,一个端口范围,或者一个自定义端口列表(最多限制在1024个端口)。
log4jscanner.exe scan --cidr 192.168.7.0/24 --ports=top100
log4jscanner.exe scan --cidr 192.168.7.0/24 --ports=9000
log4jscanner.exe scan --cidr 192.168.7.0/24 --ports=9000:9005
log4jscanner.exe scan --cidr 192.168.7.0/24 --ports=1555,3030,8000,8080,9003
可以为回调服务器使用一个非默认的配置
log4jscanner.exe scan --cidr 192.168.7.0/24 --server=192.168.1.100:5000
如果你想禁用回调服务器,使用 --noserver
可用的参数
--nocolor提供没有颜色的输出--ports可以是top10(默认)、top100(最常见的100个网络端口的列表)、一个自定义的单一端口、一个端口范围或一个自定义端口的列表--noserver只扫描,不使用本地回调服务器--timeout=10 设置服务器关闭的超时时间为10秒--connect-timeout=2000设置每个被扫描端口的响应超时为2000毫秒
使用的方法
目前,该工具使用以下领域来尝试和发送一个漏洞。
- 各种X-*头信息(我们计划在未来扩大这些信息)
- URL参数的编码
- 用户代理