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
Process Hollowing
Search
ry0kvn
December 19, 2019
Programming
2.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Process Hollowing
ry0kvn
December 19, 2019
More Decks by ry0kvn
See All by ry0kvn
Loading DLL from memory
ry0kvn
0
130
Code Injection詰め合わせ
ry0kvn
0
33
Other Decks in Programming
See All in Programming
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
SREの越境 / SRE Collaboration
y0hgi
2
310
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
エンジニアに許された特別な時間の終わり
watany
109
250k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
How to train your dragon (web standard)
notwaldorf
96
6.9k
BBQ
matthewcrist
90
10k
30 Presentation Tips
portentint
PRO
1
430
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Transcript
Process Hollowing @ry0kvn
About Me Twitter@ry0kvn りょーくん セキュリティキャンプ2019受講生 CODE BLUE2019 学生スタッフ
今日話すこと - Process Hollowing の紹介 - プロセスやPEまわりの解説 - ベース再配置の解説 -
PoCコードの簡単な解説 - デモ - 事例
ProcessHollowingとは 悪意あるプロセスがターゲットプロセスの 実行コード領域をくり抜いた後、代替コード を注入し実行させる検知回避手法の1つ。 Malicious process target process Malicious code
target process create and unmap inject
MITRE のATT&CK Matrixではこの辺り
実装に必要な前提知識解説
Windowsにおけるプロセス操作 プロセスA プロセスB VirtualAllocEX() でメモリ領域確保 WriteProcessMemory() でデータ書き込み
ソースファイル オブジェクトファ イル 実行可能ファイ ル ロードされた イメージファイル 仮想メモリ コンパイラ リンカ
ローダー EXEファイルの生成とロード
いろいろなアドレス - ImageBase イメージファイルがロードされたアドレス - RVA(Relative Virtual Address) ImageBaseからのオフセット -
VA 仮想メモリ内オフセット Virtual Memory ImageBase RVA VA
ベース再配置 リンカが想定した 理想の配置 ローダが選択した現 実の配置 0x00400000 ロードされたイメージ ファイル マップ済み 0x00400000
0x00600000 ロードされたイメージ ファイル
ベース再配置情報の格納場所 OPTIONAL_HEADERの DataDirectory の 5番目のエントリである IMAGE_DIRECTORY_ENTRY_BASERELOCに 再配置が必要なアドレスのリストが格納される。
ベース再配置情報の格納場所
PEviewで見るとこ んな感じ
ベース再配置の求め方 Delta = (ローダによる実際のImageBase) ー (リンカによる理想のImageBase) リンカによるメモリ配置 ローダによるメモリ配置 Delta
Win32APIを使った Process Hollowing の実装
ポイントとなる関数 CraeteProcessA ReadRemotePEB ReadRemoteImage NtUnmapViewOfSeciton VirtualAllocEX マニュアルでベース再配置を計算 WriteProcessMemory ResumeThread
ポイントとなる関数 CraeteProcessA ターゲットとなるプロセスをCREATE_SUSPENDで新規作成 ReadRemotePEB ターゲットプロセスのPEB情報を取得 ReadRemoteImage ImageBaseへのアドレスを取得 NtUnmapViewOfSeciton ターゲットプロセスのImageBaseからImageViewをアンマップ VirtualAllocEX ターゲットプロセスにメモリ領域の確保 マニュアルでベース再配置を計算 WriteProcessMemory ターゲットプロセスにデータの書き込み ResumeThread ターゲットプロセスの停止解除
%demo
None
事例 EMOTETでは、System32内の正規ファイルを名前変更して手元にコピーし、パスワー ド抽出を行うNirSoftというフリーツールを実行コードとしてProcessHollowingしてい た。 「流行マルウェア「EMOTET」の内部構造を紐解く」を参考 https://www.mbsd.jp/blog/20181225_2.html
end%