シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

隠す こおしいず TSG LT大会 2015/07/02 1

2.

$ whoami Cookies a.k.a. こおしいず / くうきいず / き / こ @cookies146 . seccamp 2012 SW組 a member of CTF team wasamusume Windows上で生きてきたのでWindowsの話しかできない 2

3.

ファイル隠蔽 それは、ロマン。 別に隠したいファイルがあるわけじゃあない。 3

4.

隠し属性 ♪~ 4

5.

隠し属性 あ! 5

6.

> attrib +s +h [file] 隠し属性 + システム属性 間違いなくビビる。 6

7.

「特殊フォルダ」 昔よりアクセスが煩雑になったっぽい。 Vistaはもっと楽だった。 .{20D04FE0-3AEA-1069-A2D8-08002B30309D} 7

8.

代替データストリーム 何に使うんだろう。 8

9.

ここから本題。 るーときっとってなんかかっこいいよね(笑) 9

10.

N年前 10

11.

IAT *K!FFF Kernel32.dll FindFirstFile(…) { …; } Process A Call FFF これを… 11

12.

IAT *H!FFF Kernel32.dll FindFirstFile(…) { …; } Process A Call FFF Hook.dll hook_FFF(…) { …; FindFirstFile(…); …; } こう! rootkit 12

13.

反省 僕はなんにもしてない。 ネットにめっちゃきれいなライブラリ。 explorer.exeから丸見え あいつFindFirstFileを呼んでない。 13

14.

ということで 全部自力で書こう。 機械語送りつけたい。 うわ、explorer.exeって64bitアプリか・・・ 14

15.

explorer.exe 一般に 自分 → Windows API → NTDLL.dll → Kernel ってなってる。 FindFirstFileW 15

16.

explorer.exe 一般に FindFirstFileExW push ebp push rbx push rsi ... mov dword ptr ss:[rsp+28],4021 mov qword ptr ss:[rsp-28],rax FindFirstFileW mov qword ptr ss:[rbp-18],r11 mov qword ptr ss:[rbp-10],r11 mov qword ptr ss:[rsp+20],7 call ntdll!NtOpenFile ... call ntdll!ZwQueryDirectoryFile ... call ntdll!RtlReleaseRelativeName ... 自分 → Windows API → NTDLL.dll → Kernel FindFirstFileW sub rsp, 38 and dword ptr ss:[rsp+28],0 and qword ptr ss:[rsp+20],0 mov r8,rdx xor edx,edx xor r9d,r9d call FindFirstFileExW add rsp,38 ret ってなってる。 ZwQueryDirectoryFile mov r10,rcx mov eax,34 syscall ret FindFirstFileW 16

17.

explorer.exe ZwQueryDirectoryFileを呼んでた。 呼び出し元はよくわかんないところ。shell32.dll。 17

18.

方法 適当にZwQueryDirectoryFileの結果改竄アセンブリを書く。 適当にShell32.dllのIATを書き換えるアセンブリを書く。 適当にexplorer.exe上にメモリを確保して機械語を書き込む。 適当にCreateRemoteThreadする。 18

19.

方法 適当にZwQueryDirectoryFileの結果改竄アセンブリを書く。 適当にShell32.dllのIATを書き換えるアセンブリを書く。 適当にexplorer.exe上にメモリを確保して機械語を書き込む。 適当にCreateRemoteThreadする。 19

20.

方法 適当にZwQueryDirectoryFileの結果改竄アセンブリを書く。 適当にShell32.dllのIATを書き換えるアセンブリを書く。 適当にexplorer.exe上にメモリを確保して機械語を書き込む。 適当にCreateRemoteThreadする。 20

21.

方法 適当にZwQueryDirectoryFileの結果改竄アセンブリを書く。 適当にShell32.dllのIATを書き換えるアセンブリを書く。 適当にexplorer.exe上にメモリを確保して機械語を書き込む。 適当にCreateRemoteThreadする。 21

22.

方法 適当にZwQueryDirectoryFileの結果改竄アセンブリを書く。 適当にShell32.dllのIATを書き換えるアセンブリを書く。 完成したのは今日の2:00 適当にexplorer.exe上にメモリを確保して機械語を書き込む。 適当にCreateRemoteThreadする。 22

23.

デモ ‘hid3’という文字列が含まれているものをファイル一覧から外す 23

24.

でも IATが書き換えられていることは火を見るよりも明らか。 いろいろ雑。とくにアセンブリ。 24

25.

いつか Windowsのデバイスドライバとか書きたい。 Ring 0で遊びたい。 25

26.

END 26