Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CVE-2022-47949について
Search
週末せっきゅ!
March 17, 2023
0
2.3k
CVE-2022-47949について
Security.Tokyoで発表させていただいた際のスライドです。
週末せっきゅ!
March 17, 2023
Tweet
Share
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Music & Morning Musume
bryan
47
6.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.3k
The Cult of Friendly URLs
andyhume
78
6.4k
Faster Mobile Websites
deanohume
307
31k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Code Reviewing Like a Champion
maltzj
523
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
620
Transcript
一緒にプレイするだけで乗っ取り!? ~任天堂のバッファオーバーフロー脆弱性~ 小笠原 啓祐
目次 自己紹介 脆弱性の概要 デモ動画 バッファオーバーフローについて 脆弱性解説 補足
自己紹介 ・大学一年生 ・サークル「週末せっきゅ!」(2名)してます ・情報機器管理コンテスト出ます →インシデントレスポンス等 お話聞きたいです!! 週末せっきゅ!@yuluhack
3DS以降の任天堂ゲームの共通ネットワークコード(ENL)に存在する脆弱性 攻撃 者がオンラインゲームをしているだけで被害者のゲーム機で リモートコード 実行可能(RCE)な脆弱性(修正済) 対象となったゲーム(画像は全て任天堂公式 HPより) ・マリオカート7,8 ・スプラトゥーン1,2,3 ・あつまれ どうぶつの森 etc,,, ENLBufferPwn(CVE-2022-47949)の概要
実際の動画 以下の動画でのハッキング、チーティング おそらくこの脆弱性によるものと考えられる https://www.youtube.com/watch?v=nVCPjUrkfPg&ab_channel=%E3%81%8F%E3 %82%89%E3%81%86%E3%81%A9 攻撃者側の概念実証デモ https://www.youtube.com/watch?v=PLAVmp5ky-k&ab_channel=PabloMK7
バッファオーバーフローとは? 許容量を超えるデータを送信し、システム機能を停止 または悪意あるプログラムを実行する攻撃(画像はIPA)
ENL ENL・・・任天堂のゲームで(オンライン上で)用いられ るネットワークライブラリ。 peer to peerのプライベート通信フレームワーク。今回 の脆弱性の原因だった。 クラス、メソッドの実装→
setもaddも入力されたデータサイズが バッファ サイズに収まるかをチェックしていない!
やや詳しく,,, ENLネットワークライブラリは、非同期であり、データ がバッファに充填される間、ゲームは他の操作を行う ことが可能なダブル・バッファ技術が使われており、 ネットワークバッファオブジェクトとそのコンテンツは 隣接している。 また、ダブルバッファからの両方の バッファは、メモリ上で隣接している。 バッファ割り当て後のメモリの配置は右図。
画像上部のバッファは Buffer0 として参照され下部 のバッファは Buffer1 として参照される。攻撃者は Buffer0 のバッファオーバーフローを起点に、 Buffer1 の
dataptrメンバを含む属性を上書きする ことができる。3DSはアドレス空間配置のランダム 化( ASLR) を実装していないため(なんと!),被害 者のゲーム機内のすべてのメモリ配置を知ることが でき、dataptr は任意の場所を指定できる。ゲーム がバッファを交換すると、新しいデータは任意の場 所にコピーされる。 これを利用して,,,
1,被害者のゲーム機に バッ ファオーバーフローを 引き起こ し、dataptrを上書きする用の データ (ペイロード)を送 信する 2,Buffer1 の内容を任意の データで設定することで 被害 者のゲーム機のBuffer1の dataptrが指す任意のアドレス
にコピーされる。 1,2を繰り返す。
クレジット 元のPoC(パブリックドメイン) PabloMK7/ENLBufferPwn: Information and PoC about the ENLBufferPwn vulnerability
(github.com) 情報処理推進機構 安全なウェブサイトの作り方 https://www.ipa.go.jp/security/vuln/websecurity 任天堂公式HP https://www.nintendo.com
ありがとうございました!