Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
log4jcheck — 一个脚本,通过向常见HTTP头中注入payload来检查存在Log4j漏洞(CVE-2021-44228)的系统。 | Kitploit
工具/GitHubGitHub/northwavesecurity/log4jcheck
侦察漏洞扫描器Web漏洞扫描器漏洞利用信息收集DNS 分析
GitHubnorthwavesecurity/log4jcheck

log4jcheck

一个脚本,通过向常见HTTP头中注入payload来检查存在Log4j漏洞(CVE-2021-44228)的系统。

查看仓库
126234年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Northwave Log4j CVE-2021-44228 检测工具

2021年12月10日(星期五),一个针对 Java 库 'log4j' 2 中远程代码执行(RCE)漏洞的概念验证 1 被发布。此漏洞并未提前向软件开发者披露。该漏洞被追踪为 CVE-2021-44228 3。更多关于该漏洞的信息可在 Northwave Threat Response 4 中找到。

Northwave 创建了一个测试脚本,通过在常见 HTTP 头部中注入 payload 以及作为 HTTP GET 请求的一部分来检查存在漏洞的系统。通过监听包含为目标特制 UUID 的入站 DNS 请求来检测存在漏洞的系统。通过监听入站 DNS 而非部署(例如)LDAP 服务器,我们提高了检测到存在出站流量过滤的漏洞系统的可能性。在实践中,出站 DNS 通常是允许的。预计会有较高的假阴性率,请阅读免责声明。

覆盖范围:

以下 HTTP 头部被覆盖:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

对于每次注入,检查以下 JNDI 前缀:

  • jndi:rmi
  • jndi:ldap
  • jndi:dns
  • jndi:${lower:l}${lower:d}ap

免责声明

请注意,该脚本仅执行两个特定检查:HTTP 头部 和 HTTP GET 请求。这在需要针对其他头部、特定输入字段等情况触发漏洞时会导致假阴性。这种情况非常可能发生。

重要提示: 如果检测工具返回“未检测到漏洞”,请按照 Northwave Threat Response 4 中的描述进行文件系统检查。仅运行此检测工具不足以判断系统是否存在漏洞。

设置 DNS 服务器

首先,我们需要一个子域来接收入站 DNS 请求。在本例中,我们使用区域 log4jdnsreq.northwave.nl,并将脚本部署在 log4jchecker.northwave.nl 上。按如下方式配置 DNS 条目:

root@kitploit:~
log4jdnsreq 3600 IN  NS log4jchecker.northwave.nl.

现在,我们在 Debian 系统上使用 apt install bind9 设置 BIND DNS 服务器,并将以下内容添加到 /etc/bind/named.conf.options 文件中:

root@kitploit:~
	recursion no;
	allow-transfer { none; };

这会禁用递归,因为我们不希望运行开放式 DNS 服务器。通过在 /etc/bind/named.conf.local 中添加以下配置来配置日志:

root@kitploit:~
logging {
	channel querylog {
		file "/var/log/named/query.log";
		severity debug 3;
		print-time yes;
	};
	category queries { querylog;};
};

不要忘记使用 systemctl restart bind9 重启 BIND。通过执行针对 xyz.log4jdnsreq.northwave.nl 的 DNS 查询来检查日志记录是否正常工作。一个或多个查询应出现在 /var/log/named/query.log 中。

验证您的 DNS 服务器

验证名称服务器查询确实被记录下来非常重要。除非您的名称服务器能记录请求,否则此脚本无法检测存在漏洞的站点

通过执行一次测试查询(最好从另一台机器)来测试您的服务器:

root@kitploit:~
dig test.log4jchecker.northwave.nl

您不应期望收到响应,但应期望日志文件中出现条目(cat /var/log/named/query.log)。该条目可能类似于:

root@kitploit:~
14-Dec-2021 13:36:01.402 client @0x7f8b180a9b30 requester-ip#58755 (test.log4jchecker.northwave.nl): query: test.log4jchecker.northwave.nl IN A -E(0)DC (your-ip)

除非在日志中看到响应,否则不要继续。没有它,脚本将无法检测漏洞。

运行脚本

使用 pip install -r requirements.txt 安装任何 Python 依赖项。编辑脚本,将以下行更改为您配置的 DNS 区域:

root@kitploit:~
HOSTNAME = "log4jdnsreq.northwave.nl"

现在,您可以通过 -u 参数提供单个 URL,或通过 -l 参数提供 URL 列表来运行脚本:

root@kitploit:~
usage: nw_log4jcheck.py [-h] [-l LIST] [-u URL] [-w WAIT] [-t TIMEOUT]

optional arguments:
  -h, --help            显示此帮助信息并退出
  -l LIST, --list LIST  包含要检查的 URL 列表的文本文件(每行一个 URL)
  -u URL, --url URL     要检查的 URL(例如:http://yoururl.com)
  -w WAIT, --wait WAIT  在检查 DNS 日志之前等待的秒数(默认:15)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP 超时秒数(默认:5)

输出的最后一行显示系统是否被发现存在漏洞:

root@kitploit:~
NO VULNERABILITY DETECTED. Proceed with on-server checking. No incoming DNS request to 3414db71-309a-4288-83d4-aa3f103db97c.log4jdns.northwave.nl was seen

如果未检测到漏洞,请按照 Northwave Threat Response 4 中的描述进行文件系统检查。再次强调,仅运行此检测工具不足以判断系统是否存在漏洞。

许可证

Log4jcheck 是采用 MIT 许可证的开源软件。

下载工具