Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
hotpatch-for-apache-log4j2 — CVE-2021-44228 の log4j RCE をホットパッチするエージェント | Kitploit
ツール/GitHubGitHub/corretto/hotpatch-for-apache-log4j2
防御ツール脆弱性分析エクスプロイトサプライチェーンセキュリティインシデントレスポンス
GitHubcorretto/hotpatch-for-apache-log4j2

hotpatch-for-apache-log4j2

CVE-2021-44228 の log4j RCE をホットパッチするエージェント

リポジトリを見る
49772113年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Log4jHotPatch

これは、実行中のJVMプロセスにJavaエージェントを注入するツールです。エージェントは、ロードされたすべてのorg.apache.logging.log4j.core.lookup.JndiLookupインスタンスのlookup()メソッドをパッチし、常に文字列"Patched JndiLookup::lookup()"を返すようにします。これは、Javaプロセスを再起動せずにLog4jのリモートコード実行脆弱性CVE-2021-44228を解決するために設計されています。このツールはCVE-2021-45046も対処します。

これは現在、Linux上のJDK 8、11、15、17でのみテストされています!

ビルド

Gradle

Linux、Mac、Windows Subsystem for Linuxでビルドするには

./gradlew build

Windowsでビルドするには

.\gradlew.bat build

ビルドするプラットフォームに応じて、build/libs/Log4jHotPatch.jarが生成されます。

Maven

Mavenを使用してビルドするには

mvn clean package

これによりtarget/Log4jHotPatch.jarが生成されます。

実行

JDK 8

java -cp <java-home>/lib/tools.jar:Log4jHotPatch.jar Log4jHotPatch <java-pid>

JDK 11以降

java -jar Log4jHotPatch.jar <java-pid>

静的エージェントの実行

次のようにjavaコマンドラインにエージェントを追加するだけです:

java -classpath <class-path> -javaagent:Log4jHotPatch.jar <main-class> <arguments>

エージェントのテスト

GradleやMavenの外部で実行できる一連のテストがあります。

build-tools/bin/run_tests.sh Log4jHotPatch.jar <JDK_ROOT>

既知の問題

次のようなエラーが発生した場合:

Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: The VM does not support the attach mechanism
	at jdk.attach/sun.tools.attach.HotSpotAttachProvider.testAttachable(HotSpotAttachProvider.java:153)
	at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:56)
	at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
	at Log4jHotPatch.loadInstrumentationAgent(Log4jHotPatch.java:115)
	at Log4jHotPatch.main(Log4jHotPatch.java:139)

これは、JVMが-XX:+DisableAttachMechanismで実行されているため、あらゆる種類の介入を拒否していることを意味します。

次のようなエラーが発生した場合:

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
	at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
	at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
	at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
	at Log4jHotPatch.loadInstrumentationAgent(Log4jHotPatch.java:182)
	at Log4jHotPatch.main(Log4jHotPatch.java:259)

これは、ターゲットJVMとは異なるユーザー(rootを含む)で実行していることを意味します。JDK 8ではrootユーザーとしてのパッチ適用は処理できません(ターゲットJVMでスレッドダンプが発生しますが、無害です)。JDK 11では、rootプロセスから非rootプロセスへのパッチ適用は問題なく動作します。

ターゲットプロセスで次のようなエラーが発生した場合:

Exception in thread "Attach Listener" java.lang.ExceptionInInitializerError
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:411)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "log4jFixerAgentVersion" "write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:886)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.System.setProperty(System.java:794)
        at Log4jHotPatch.<clinit>(Log4jHotPatch.java:66)

これは、ターゲットプロセスにセキュリティマネージャーがインストールされていることを意味します。ターゲットプロセスで次のコマンドラインオプションを探してください:

-Djava.security.policy=/local/apollo/.../apollo-security.policy

このエラーが発生した場合は、ツールの最新バージョンを使用していることを確認してください。

重要: 誤ったユーザーとしてパッチを試みた場合、再試行する前に.attach_pid<pid>ファイル(/tmpやVMプロセスのCWDにある可能性があります)を削除する必要があるかもしれません。これらのファイルは、アタッチを成功させるために正しい所有権を持っている必要があります。

ツールをダウンロード