CISA发布Log4J漏洞扫描器 log4j scanner

CISA发布Log4J漏洞扫描器 log4j scanner

log4j-scanner 是 CISA 从开源社区的其他成员衍生出来的一个项目,旨在帮助组织识别受 log4j 漏洞影响的潜在易受攻击的 Web 服务。

该存储库为 log4j 远程代码执行漏洞 (CVE-2021-44228 & CVE-2021-45046) 提供了扫描解决方案。此存储库中的信息和代码“按原样”提供,并在开源社区的帮助下进行组装,并由 CISA 通过与更广泛的网络安全社区合作进行更新。

log4j scanner

用于查找易受攻击的 log4j 主机的全自动、准确且广泛的扫描器

CISA发布Log4J漏洞扫描器 log4j scanner

特征

  • 支持 URL 列表。
  • 对 60 多个 HTTP 请求标头进行模糊测试(不仅仅是之前看到的工具的 3-4 个标头)。
  • 对 HTTP POST 数据参数进行模糊测试。
  • 对 JSON 数据参数进行模糊测试。
  • 支持用于漏洞发现和验证的 DNS 回调。
  • WAF 绕过 payloads。

公告

Log4J v2.15.0 上有一个补丁绕过,允许完整的 RCE。FullHunt 添加了对 log4j-scan 的社区支持,以可靠地检测 CVE-2021-45046。如果您在大规模发现和扫描基础设施或跟上 Log4J 威胁方面遇到困难,请联系 ( [email protected] )。

CISA发布Log4J漏洞扫描器 log4j scanner

官方 CISA 指南和资源

CISA 当前活动警报

针对CVE-2021-44228 和 CVE-2021-45046漏洞

测试步骤

配置您自己的 DNS 服务器 – 首选)
– 将 DNS 记录添加到您的域。(example.com)

  • A记录您的 IP 地址值 ( test.example.com-> )
  • NS记录 ( ns1.example.com) 的值,test.example.com如上面选择的那样。
  • 托管 DNS 服务器以记录向您的域发出的 DNS 请求。
  • 安装需求模块 -> pip3 install -r requirements.txt
  • dns/ddnsserver.py用上面的 NS 记录的值修改脚本 ( test.example.com)
  • python3 dns/ddnsserver.py --udp 53 >> dns-results.txt
  • nslookup hello.test.example.com. 您可以运行tail -f dns-results.txt以监视这些日志。
  • 您应该dns-results.txtnslookup命令后看到文件中的条目。完成后,您就可以开始扫描了!
  • 注意:如果您使用内部 DNS 来测试,同样的概念将适用。

DNS 提供商 -(Interact.sh 或 canarytokens.org)

  • Interact.sh – Interactsh 是用于带外数据提取的开源解决方案。它是一种旨在检测导致外部交互的错误的工具。这些错误包括 Blind SQLi、Blind CMDi、SSRF 等。
  • Canarytokens.org – Canarytokens 有助于跟踪您网络上的活动和操作。

LDAP 服务器(可选)

  • 如果您还想测试正在运行的 LDAP 服务器,请参考目录README.md下的ldap
  • 使用 maven 构建项目。 
cd ldap
mvn clean package -DskipTests
nohup java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8080/#payload" 443 >> ldap_requests.txt &

HTTP 服务发现和扫描

  • 收集您组织的最新资产列表并查找 Web 服务。尽管此漏洞不仅仅影响 Web 服务,但这将作为最小化攻击面的一个很好的起点。
  • 如果您有公司拥有的 URL 列表,您可以跳过这一步:利用一些众所周知的工具,如httpprobehttpx来识别在多个端口上运行的 Web 服务。基本示例:httpprobe->cat list-of-your-company-domains.txt | $HOME/go/bin/httprobe > your-web-assets.txt
  • 现在您有了一个 URL 列表,您可以开始扫描了: 
python3 log4j-scan.py --run-all-tests --custom-dns-callback-host test.example.com -l web-asset-urls.txt
  • 一定要扫描新的CVE ->
python3 log4j-scan.py --test-CVE-2021-45046 --custom-dns-callback-host test.example.com -l web-asset-urls.txt
  • 监控在步骤 2 中配置的 DNS 服务器。

项目地址

GitHub

使用方法

python3 log4j-scan.py -h
[•] CVE-2021-44228 - Apache Log4j RCE Scanner
[•] Scanner provided by FullHunt.io - The Next-Gen Attack Surface Management Platform.
[•] Secure your External Attack Surface with FullHunt.io.
usage: log4j-scan.py [-h] [-u URL] [-l USEDLIST] [--request-type REQUEST_TYPE] [--headers-file HEADERS_FILE] [--run-all-tests] [--exclude-user-agent-fuzzing]
                     [--wait-time WAIT_TIME] [--waf-bypass] [--dns-callback-provider DNS_CALLBACK_PROVIDER] [--custom-dns-callback-host CUSTOM_DNS_CALLBACK_HOST]

optional arguments:
  -h, --help            显示这个帮助信息并退出
  -u URL, --url URL     检查单个URL。
  -p PROXY, --proxy PROXY
                        通过代理发送请求。代理应该以请求支持的格式指定
                        (http[s]://<proxy-ip>:<proxy-port>)
  -l USEDLIST, --list USEDLIST
                        检查url列表。
  --request-type REQUEST_TYPE
                        请求类型:(get, post) -[默认值:get]。
  --headers-file HEADERS_FILE
                        Headers fuzzing list - [default: headers.txt].
  --run-all-tests       对每个URL运行所有可用的测试。
  --exclude-user-agent-fuzzing
                        排除用户代理头模糊-有用绕过弱检查的用户代理。
  --wait-time WAIT_TIME
                        处理完所有url后的等待时间(秒)—[默认值:5]。
  --waf-bypass          使用WAF绕过有效负载扩展扫描。
  --test-CVE-2021-45046
                        使用有效载荷对CVE-2021-45046进行测试(检测有效载荷)。
  --dns-callback-provider DNS_CALLBACK_PROVIDER
                        DNS回调服务提供商(选项:dnslog.cn, interactive .sh)—[默认:interactive .sh]。
  --custom-dns-callback-host CUSTOM_DNS_CALLBACK_HOST
                        自定义DNS回调主机。
  --disable-http-redirects
                        禁用HTTP重定向。注意:HTTP重定向是有用的,因为它允许有效负载有更高的机会到达脆弱的系统。

扫描单个 URL

python3 log4j-scan.py -u https://log4j.lab.secbot.local

使用所有请求方法扫描单个 URL:GET、POST(URL 编码形式)、POST(JSON 正文)

python3 log4j-scan.py -u https://log4j.lab.secbot.local --run-all-tests

发现环境中的 WAF 绕过

python3 log4j-scan.py -u https://log4j.lab.secbot.local --waf-bypass

扫描 URL 列表

python3 log4j-scan.py -l urls.txt

安装

pip3 install -r requirements.txt

docker支持

git clone https://github.com/fullhunt/log4j-scan.git
cd log4j-scan
sudo docker build -t log4j-scan .
sudo docker run -it --rm log4j-scan

# With URL list "urls.txt" in current directory
docker run -it --rm -v $PWD:/data log4j-scan -l /data/urls.txt

下载地址

①GitHub

github.com/cisagov/log4j-scanner.zip

②云中转网盘

yzzpan.com/#sharefile=XKbrUb9U_23932
解压密码:www.ddosi.org

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注