Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RCEへの近道
Search
kawakatz
July 20, 2024
Research
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RCEへの近道
kawakatz
July 20, 2024
Other Decks in Research
See All in Research
視覚若手の会LENSって何??
mickey_0226
0
410
[CV勉強会@関東 CVPR2026] PSDesigner: Automated Graphic Design with a Human-Like Creative Workflow / kantocv 67th CVPR 2026
shunk031
0
400
HAKARI-Bench - 実運用視点での情報検索モデル評価ベンチマーク
hotchpotch
1
860
Santé et fertilité des sols : ce que nous disent les pratiques dans les systèmes de polyculture-élevage
institutdelelevage
PRO
0
220
生成AI時代の開発方法論と、メールサーバー運用の新しいかたち
hirachan
0
180
実例から見るLLMのマンガ理解:実務VQAタスクによる長期的文脈と視覚情報の定性評価
kzmssk
0
220
VLMの推論を高速化する視覚トークン削減の仕組み
tattaka
2
420
論文紹介: Understanding Epistemic Language with a Language-augmented Bayesian Theory of Mind
hisaokatsumi
0
210
就労支援の現場での生成AI活用
enochan
0
200
Top 4セキュリティ会議に一通り論文が採択されるまでの道のりと展望 / Top 4 Security Grand Slam
takaomurakami
0
1.1k
Du suivi individuel à la sélection animale : comment Digi4Live valorise les données des technologies numériques en élevage
institutdelelevage
PRO
0
110
山中市政の総括:相反する二つの顔
sishi
0
230
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
We Are The Robots
honzajavorek
0
440
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Building AI with AI
inesmontani
PRO
1
1.4k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
3
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Skip the Path - Find Your Career Trail
mkilby
1
290
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
530
Odyssey Design
rkendrick25
PRO
2
930
BBQ
matthewcrist
90
10k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Typedesign – Prime Four
hannesfritz
42
3.2k
Transcript
None
None
X: @kawakatz 自己紹介 GMOサイバーセキュリティ byイエラエ株式会社 オフェンシブセキュリティ部ペネトレーションテスト課 川田 柾浩 • 業務領域
(5年目) ツール・マルウェア開発 ペネトレーションテスト・レッドチーム その他調査・研究 • 資格 • CVE CVE-2023-27966: macOS App Sandbox escape (>$10,000, Apple Inc.) CVE-2024-XXXXX: Remotely accessible TightVNC passwords (GlavSoft LLC) CVE-2024-XXXXX: RCE * 2 + LPE CVE-2024-XXXXX: RCE * 3 (Vuln * 5)
1. 自己紹介 2. メインテーマ 3. 調査目的 4. 脆弱性概要 5. TightVNCとは
6. 解析対象ソフトウェアの選定 7. 名前付きパイプに関する処理の解析 8. PoCの実装 9. TightVNC側の対策 10. CVEの発行 11. タイムライン 目次
None
ü 解析対象ソフトウェアの選定基準 ü 解析対象箇所の特定に至るまで メインテーマ 対象 選定 入力 受取 入力
解析 後続 処理
None
RCE(かLPE)に至る脆弱性の検出を目的としたソフトウェア解析の練習 調査目的
None
TightVNCに対してリモートからパスワードを読み込み可能な脆弱性 脆弱性概要
None
TightVNC 2.8.81 (2023/05/04) インストーラ: https://www.tightvnc.com/download/2.8.81/tightvnc-2.8.81- gpl-setup-64bit.msi ソースコード: https://www.tightvnc.com/download/2.8.81/tightvnc-2.8.81- src-gpl.zip TightVNCとは
対象 選定 入力 受取 入力 解析 後続 処理
オープンポート 名前付きパイプ 解析対象ソフトウェアの選定 プログラムに対する入力の入口 5営業日で脆弱性の 発見から悪用まで
オープンポート 名前付きパイプ 解析対象ソフトウェアの選定 プログラムに対する入力の入口 5営業日で脆弱性の 発見から悪用まで
5900/tcp recv(), recvfrom() WSARecv(), WSARecvFrom() send(), sendto() WSASend(), WSASendTo() tvnserver.exe
-service オープンポート: TCP/UDP通信の入口 解析対象ソフトウェアの選定
オープンポート 名前付きパイプ 解析対象ソフトウェアの選定 プログラムに対する入力の入口 5営業日で脆弱性の 発見から悪用まで
\\.\pipe\TightVNC_Service_Control tvnserver.exe -service tvnserver.exe –controlservice -slave ConnectNamedPipe(), ReadFile(), WriteFile() 名前付きパイプ:
プロセス間通信の入口 解析対象ソフトウェアの選定
ツール # オープンポート - Process Hacker https://processhacker.sourceforge.io/ # 名前付きパイプ -
Get-ProcessPipes.ps1 https://gist.github.com/Wra7h/62b42c8a2219ae94d865c1c2f7196e61 解析対象ソフトウェアの選定
0.0.0.0 5800/tcp: tvnserver.exe –service 0.0.0.0 5900/tcp: tvnserver.exe -service 解析対象ソフトウェアの選定
\\.\pipe\TVN_log_pipe_public_name: tvnserver.exe -service \\.\pipe\TightVNC_Service_Control: tvnserver.exe –service 解析対象ソフトウェアの選定
# tvnserver.exe -service - オープンポート 0.0.0.0 5800/tcp 0.0.0.0 5900/tcp -
名前付きパイプ \\.\pipe\TVN_log_pipe_public_name \\.\pipe\TightVNC_Service_Control 解析対象ソフトウェアの選定
# tvnserver.exe -service - オープンポート 0.0.0.0 5800/tcp 0.0.0.0 5900/tcp -
名前付きパイプ \\.\pipe\TVN_log_pipe_public_name \\.\pipe\TightVNC_Service_Control 解析対象ソフトウェアの選定
\\.\pipe\TightVNC_Service_Control 解析対象ソフトウェアの選定
\\.\pipe\TightVNC_Service_Control tvnserver-app/TvnServer.cpp 解析対象ソフトウェアの選定
\\.\pipe\TightVNC_Service_Control tvnserver-app/TvnServer.cpp 解析対象ソフトウェアの選定
対象 選定 入力 受取 入力 解析 後続 処理
ツール # 動的解析 - x64dbg https://x64dbg.com/ # 静的解析 - IDA
Pro https://hex-rays.com/ida-pro/ - Ghidra https://ghidra-sre.org/ # Windows APIの監視 - Frida https://frida.re/ 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Modules CPU 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 サンプルコードで対象の名前付きパイプと紐づく呼び出しであることを確認 名前付きパイプに関する処理の解析
Fridaを用いたReadFile関数、WriteFile関数の監視 名前付きパイプに関する処理の解析
ReadFile関数の引数 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Execute till return + Step over (Step into) 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Modules 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Edit > Segments > Rebase program... 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Jump > Jump to address... 名前付きパイプに関する処理の解析
ReadFile関数の呼び出し元特定 Jump > Jump to address... 名前付きパイプに関する処理の解析
対象 選定 入力 受取 入力 解析 後続 処理
ReadFile関数を呼び出している関数の呼び出し元特定 名前付きパイプに関する処理の解析
ReadFile関数で受け取った入力値の扱い 名前付きパイプに関する処理の解析
ReadFile関数で受け取った入力値の扱い 名前付きパイプに関する処理の解析
ReadFile関数で受け取った入力値の扱い 名前付きパイプに関する処理の解析
対象 選定 入力 受取 入力 解析 後続 処理
tvnserver-app/ControlClient.cpp > ControlClient::execute() 名前付きパイプに関する処理の解析
tvnserver-app/ControlClient.cpp > ControlClient::execute() 名前付きパイプに関する処理の解析
tvnserver-app/ControlClient.cpp > ControlClient::execute() 名前付きパイプに関する処理の解析
server-config-lib/ServerConfig.cpp > ServerConfig::serialize() 名前付きパイプに関する処理の解析
None
PoCの実装 # 悪用条件 ü SMB(445/tcp)への通信が可能 ü いずれかのユーザとして認証が可能 Active Directory (or
Microsoft Entra ID) # 影響 暗号化されたパスワードの読み込み + 復号によってTightVNCに接続可能
PoCの実装
PoCの実装
PoCの実装
PoCの実装
PoCの実装
PoCの実装
None
TightVNC側の対策
TightVNC側の対策
None
CVEの発行 開発者と連絡が途絶えてしまって、CVEを発行してもらえなかった場合 (JPCERT様からご教授いただきました🙇) - Report/Request for Non-CNAs https://www.cve.org/ReportRequest/ReportRequestForNonCNAs
CVEの発行 - Submit a CVE Request https://cveform.mitre.org/
None
タイムライン 2024/04/20: 脆弱性報告 2024/04/26: 開発者側による脆弱性報告の確認 2024/05/28: TightVNC 2.8.84のリリース 2024/05/28: CVE発行の調整開始
2024/07/12: MITREにCVEの発行申請