「Volatility Frameworkを使ったメモリフォレンジック」と言うハンズオンに参加させて頂きました。
1 はじめに
本日は、「第23回北海道情報セキュリティ勉強会」に参加させて頂きました。
https://secpolo.doorkeeper.jp/events/39013
セッションの内容は次の通りです。
Session.1 フリーツールを用いた x86 プログラム解析
トレンドマイクロ株式会社 花岡 弥生 さん
Session.2 Volatility Framework を使ったメモリフォレンジックス (ハンズオン)
トレンドマイクロ株式会社 平原 伸昭 さん
Session.3 北大キャンパスネットワークと私
北海道大学 情報基盤センター 南 弘征 先生
今回は、この2つ目のセッションであった、ハンズオンに参加させて頂いて手を動かした内容を紹介させて頂きます。
講師を務めて頂いた、平原さんにお伺いしたところ、内容は公開しても問題ないとの事でしたので、単純に、作業した内容の羅列で恐縮なのですが、個人的にはこのような作業が初体験であった事もあり、非常に印象に残ったので、記録させて頂きました。
2 メモリフォレンジック
ハンズオンの最初に、メモリフォレンジックについて、簡単に説明をしていただきました。
- メモリイメージを解析し、不審なプロセス、通信先を調査することで、犯罪者の痕跡・攻撃手法を解明する
- インシデントライフサイクルにおける「検出」「分析」のサイクルでの作業の一つ
- フォン・ノイマン型のプログラムは、必ずメモリに展開されるので、確実に実施できる検査方法である
- 大量のディスクイメージをフォレンジックするのに比べると非常に作業量が少ない(大きな利点)
- インジェクションされたコードやRootKitは、この方法で見つけやすい
ちなみに、不審な何かを発見するためには、まず、実行プロセス・実行時間などの正常な状態を把握しておく必要があるとのことでした。
たとえば・・・
正常だと、services.exeはひとつだけ存在し、その階層下にsvchost.exeが5つほど存在する
もし、下記のようなものがあったら
- services.exeが複数ある
- svchost.exeが、services.exeと同じ階層にある
「不審である」という感じ・・・
3 ハンズオン
いよいよ、ハンズオンの開始です。 なお、ハンズオンで使用する、Volatility Framework と検査対象のメモリイメージは、下記から取得するように指示されておりました。
Volatility Framework
zeus.vmem.zip <=このリンクがいつまで有効かは、不明です。
なお、macであれば、brewでもインストールできます。
$ brew install volatility
(1) OSの判定
まず、最初に行う作業は、このメモリダンプが取られたOSが何であるかを確認する作業です。
volatilityを使用したOS判定は、次のコマンドで行います。 なお、zeus.vmemは、検査対象のメモリダンプファイルです。(以下、同じ)
$ ./volatility_2.4_x86 -f zeus.vmem imageinfo Volatility Foundation Volatility Framework 2.4 Determining profile based on KDBG search... Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86) AS Layer1 : IA32PagedMemoryPae (Kernel AS) AS Layer2 : FileAddressSpace (/Users/SIN/Downloads/volatility_2.4.mac.standalone/zeus.vmem) PAE type : PAE DTB : 0x319000L KDBG : 0x80544ce0L Number of Processors : 1 Image Type (Service Pack) : 2 KPCR for CPU 0 : 0xffdff000L KUSER_SHARED_DATA : 0xffdf0000L Image date and time : 2010-08-15 19:17:56 UTC+0000 Image local date and time : 2010-08-15 15:17:56 -0400
Suggested Profile(s)及びImage Type (Service Pack)を見ると OSは、「WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)」 サービスパックは「2」ということが分かります。
(2) プロセス一覧
pstreeで、そのメモリダンプを採った時点でのプロセス一覧が取得できます。
./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 pstree Volatility Foundation Volatility Framework 2.4 Name Pid PPid Thds Hnds Time -------------------------------------------------- ------ ------ ------ ------ ---- 0x810b1660:System 4 0 58 379 1970-01-01 00:00:00 UTC+0000 . 0xff2ab020:smss.exe 544 4 3 21 2010-08-11 06:06:21 UTC+0000 .. 0xff1ec978:winlogon.exe 632 544 24 536 2010-08-11 06:06:23 UTC+0000 ... 0xff255020:lsass.exe 688 632 21 405 2010-08-11 06:06:24 UTC+0000 ... 0xff247020:services.exe 676 632 16 288 2010-08-11 06:06:24 UTC+0000 .... 0xff1b8b28:vmtoolsd.exe 1668 676 5 225 2010-08-11 06:06:35 UTC+0000 .... 0x80ff88d8:svchost.exe 856 676 29 336 2010-08-11 06:06:24 UTC+0000 .... 0xff1d7da0:spoolsv.exe 1432 676 14 145 2010-08-11 06:06:26 UTC+0000 .... 0x80fbf910:svchost.exe 1028 676 88 1424 2010-08-11 06:06:24 UTC+0000 ..... 0x80f60da0:wuauclt.exe 1732 1028 7 189 2010-08-11 06:07:44 UTC+0000 ..... 0x80f94588:wuauclt.exe 468 1028 4 142 2010-08-11 06:09:37 UTC+0000 ..... 0xff364310:wscntfy.exe 888 1028 1 40 2010-08-11 06:06:49 UTC+0000 .... 0xff217560:svchost.exe 936 676 11 288 2010-08-11 06:06:24 UTC+0000 .... 0xff143b28:TPAutoConnSvc.e 1968 676 5 106 2010-08-11 06:06:39 UTC+0000 ..... 0xff38b5f8:TPAutoConnect.e 1084 1968 1 68 2010-08-11 06:06:52 UTC+0000 .... 0xff22d558:svchost.exe 1088 676 7 93 2010-08-11 06:06:25 UTC+0000 .... 0xff218230:vmacthlp.exe 844 676 1 37 2010-08-11 06:06:24 UTC+0000 .... 0xff25a7e0:alg.exe 216 676 8 120 2010-08-11 06:06:39 UTC+0000 .... 0xff203b80:svchost.exe 1148 676 15 217 2010-08-11 06:06:26 UTC+0000 .... 0xff1fdc88:VMUpgradeHelper 1788 676 5 112 2010-08-11 06:06:38 UTC+0000 .. 0xff1ecda0:csrss.exe 608 544 10 410 2010-08-11 06:06:23 UTC+0000 0xff3865d0:explorer.exe 1724 1708 13 326 2010-08-11 06:09:29 UTC+0000 . 0xff374980:VMwareUser.exe 452 1724 8 207 2010-08-11 06:09:32 UTC+0000 . 0xff3667e8:VMwareTray.exe 432 1724 1 60 2010-08-11 06:09:31 UTC+0000
ここで、名前・親子関係・起動時間などから、不審なものを見つける作業が必要です。
- svchost.exeは、services.exeの下にあるので、問題ない。
- services.exeと同じ階層にsvchost.exeも無いので問題無い。
ということで、この時点で、不審なものは見つけることはできませんでした。
(3) 通信の接続状況
connectionsで、メモリダンプを採った時点で通信している一覧が見れます。
./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 connections Volatility Foundation Volatility Framework 2.4 Offset(V) Local Address Remote Address Pid ---------- ------------------------- ------------------------- ---
ここでは、Listen中のものだけを列挙したので、何も通信しているものは見つかりませんでした。
そこで、下記のように、クローズしたソケットも列挙します。
$ ./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 connscan Volatility Foundation Volatility Framework 2.4 Offset(P) Local Address Remote Address Pid ---------- ------------------------- ------------------------- --- 0x02214988 172.16.176.143:1054 193.104.41.75:80 856 0x06015ab0 0.0.0.0:1056 193.104.41.75:80 856
193.104.41.75というサーバに接続していますが、そのプロセス番号は、856です。 先のプロセス一覧で856番のプロセスを確認すると、svchost.exeになっています。
なぜ、svchost.exeが、このサーバにアクセスしているのか? このサーバについて調べてみます。
http://www.ipvoid.com/で、このサーバについてを調査します。
怪しい。
(4) ダンプ
続いて、下記のコマンドで対象プロセスのダンプを取ります。
$ ./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 malfind -p 856 --dump-dir=. Volatility Foundation Volatility Framework 2.4 Process: svchost.exe Pid: 856 Address: 0xb70000 Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE Flags: CommitCharge: 38, MemCommit: 1, PrivateMemory: 1, Protection: 6 0x00b70000 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 MZ.............. 0x00b70010 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@....... 0x00b70020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x00b70030 00 00 00 00 00 00 00 00 00 00 00 00 d0 00 00 00 ................ 0xb70000 4d DEC EBP 0xb70001 5a POP EDX 0xb70002 90 NOP 0xb70003 0003 ADD [EBX], AL 0xb70005 0000 ADD [EAX], AL 0xb70007 000400 ADD [EAX+EAX], AL 0xb7000a 0000 ADD [EAX], AL 0xb7000c ff DB 0xff 0xb7000d ff00 INC DWORD [EAX] 0xb7000f 00b800000000 ADD [EAX+0x0], BH 0xb70015 0000 ADD [EAX], AL 0xb70017 004000 ADD [EAX+0x0], AL 0xb7001a 0000 ADD [EAX], AL 0xb7001c 0000 ADD [EAX], AL 0xb7001e 0000 ADD [EAX], AL 0xb70020 0000 ADD [EAX], AL 0xb70022 0000 ADD [EAX], AL 0xb70024 0000 ADD [EAX], AL 0xb70026 0000 ADD [EAX], AL 0xb70028 0000 ADD [EAX], AL 0xb7002a 0000 ADD [EAX], AL 0xb7002c 0000 ADD [EAX], AL 0xb7002e 0000 ADD [EAX], AL 0xb70030 0000 ADD [EAX], AL 0xb70032 0000 ADD [EAX], AL 0xb70034 0000 ADD [EAX], AL 0xb70036 0000 ADD [EAX], AL 0xb70038 0000 ADD [EAX], AL 0xb7003a 0000 ADD [EAX], AL 0xb7003c d000 ROL BYTE [EAX], 0x1 0xb7003e 0000 ADD [EAX], AL Process: svchost.exe Pid: 856 Address: 0xcb0000 Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE Flags: CommitCharge: 1, MemCommit: 1, PrivateMemory: 1, Protection: 6 0x00cb0000 b8 35 00 00 00 e9 cd d7 c5 7b 00 00 00 00 00 00 .5.......{...... 0x00cb0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x00cb0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0x00cb0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0xcb0000 b835000000 MOV EAX, 0x35 0xcb0005 e9cdd7c57b JMP 0x7c90d7d7 0xcb000a 0000 ADD [EAX], AL 0xcb000c 0000 ADD [EAX], AL 0xcb000e 0000 ADD [EAX], AL 0xcb0010 0000 ADD [EAX], AL 0xcb0012 0000 ADD [EAX], AL 0xcb0014 0000 ADD [EAX], AL 0xcb0016 0000 ADD [EAX], AL 0xcb0018 0000 ADD [EAX], AL 0xcb001a 0000 ADD [EAX], AL 0xcb001c 0000 ADD [EAX], AL 0xcb001e 0000 ADD [EAX], AL 0xcb0020 0000 ADD [EAX], AL 0xcb0022 0000 ADD [EAX], AL 0xcb0024 0000 ADD [EAX], AL 0xcb0026 0000 ADD [EAX], AL 0xcb0028 0000 ADD [EAX], AL 0xcb002a 0000 ADD [EAX], AL 0xcb002c 0000 ADD [EAX], AL 0xcb002e 0000 ADD [EAX], AL 0xcb0030 0000 ADD [EAX], AL 0xcb0032 0000 ADD [EAX], AL 0xcb0034 0000 ADD [EAX], AL 0xcb0036 0000 ADD [EAX], AL 0xcb0038 0000 ADD [EAX], AL 0xcb003a 0000 ADD [EAX], AL 0xcb003c 0000 ADD [EAX], AL 0xcb003e 0000 ADD [EAX], AL
このsvchost.exeは、元々は正しいものだったのですが、なんらかのプロセスがインジェクションされているようです。
そのことは、4行目から察することができます。
Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE
また、そのダンプを見ると先頭がMZで始まっています。Windowsで先頭がMZなのは、実行形式のプログラムです。
どうやら、不審なものを発見できたようです。
0x00b70000 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 MZ.............. 0x00b70010 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
なお、この時点でフォルダに2つのイメージが出力されています。
$ ls -la -rw-r--r-- 1 SIN staff 155648 3 5 16:47 process.0x80ff88d8.0xb70000.dmp -rw-r--r-- 1 SIN staff 4096 3 5 16:47 process.0x80ff88d8.0xcb0000.dmp $
fileコマンドで見ても、0xb70000は、EXEであると判定されています。
$ file process.0x80ff88d8.0xb70000.dmp process.0x80ff88d8.0xb70000.dmp: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
(5) イメージの検査
ダンプしたファルを下記のページで確認してみると、各社でウイルスと認定しています。 https://www.virustotal.com/ja/
これで、どんなウイルスが、どこに感染していたのかを突き止めた事になります。
(6) ミューテックス
先までの作業で、一応、不審なプログラムを発見できましたが、ここからは、その他の検査手法を試してみます。
通常、悪意のあるプログラムの作成者は、そのプログラムが2重起動するのを避けるためミューテックスを使用します。 (ミューテックス自体は、普通に使用されるものなので、使用することが、そのまま悪意があるわけではありません。)
次のコマンドで、使用されているミューテックスを一覧することが可能です。
$ ./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 mutantscan Volatility Foundation Volatility Framework 2.4 Offset(P) #Ptr #Hnd Signal Thread CID Name ------------------ -------- -------- ------ ---------- --------- ---- 0x00000000000962c0 1 1 1 0x00000000 0x00000000007c0840 1 1 1 0x00000000 0x00000000009d86e0 1 1 1 0x00000000 0x00000000009d90d8 1 1 1 0x00000000 0x0000000000eda878 1 1 1 0x00000000 0x0000000000edae88 1 1 1 0x00000000 0x000000000105a278 1 1 1 0x00000000 0x000000000105a2e8 1 1 1 0x00000000 0x000000000105aa38 7 6 1 0x00000000 _!MSFTHISTORY!_ 0x000000000105acf0 2 1 0 0xff3ba880 888:912 wscntfy_mtx 0x000000000105e900 1 1 1 0x00000000 0x0000000001061fe0 2 1 1 0x00000000 542B5ABE01CB391B000003A82 0x00000000010633b8 2 1 1 0x00000000 msgina: InteractiveLogonRequestMutex 0x0000000001066480 2 1 1 0x00000000 PerfOS_Perf_Library_Lock_PID_684 0x00000000010669d0 2 1 1 0x00000000 winlogon: Logon UserProfileMapping Mutex 0x0000000001066bd0 2 1 1 0x00000000 PerfProc_Perf_Library_Lock_PID_684 0x00000000010676d8 2 1 1 0x00000000 RemoteAccess_Perf_Library_Lock_PID_684 0x0000000001067d60 1 1 1 0x00000000 0x0000000001069fa8 2 1 1 0x00000000 WmiApRpl_Perf_Library_Lock_PID_684 0x000000000106fb60 3 2 1 0x00000000 WininetProxyRegistryMutex 0x0000000001070380 2 1 1 0x00000000 Spooler_Perf_Library_Lock_PID_684 0x00000000010719b0 2 1 1 0x00000000 ContentFilter_Perf_Library_Lock_PID_684 0x0000000001071e40 1 1 1 0x00000000 0x000000000107a2b0 2 1 1 0x00000000 54D23F5A01CB391B0000047C2 0x000000000107b290 2 1 1 0x00000000 c:!windows!system32!config!systemprofile!cookies! 0x000000000107c200 1 1 1 0x00000000 0x000000000108af60 1 1 1 0x00000000 0x0000000001093568 1 1 1 0x00000000 0x0000000001093c10 1 1 1 0x00000000 0x0000000001093c90 4 3 1 0x00000000 ZonesLockedCacheCounterMutex 0x00000000010af880 1 1 1 0x00000000 0x00000000010b7f68 1 1 1 0x00000000 0x00000000010bb748 1 1 1 0x00000000 0x00000000010bb7b8 1 1 1 0x00000000 0x00000000010bbf10 2 1 1 0x00000000 Tcpip_Perf_Library_Lock_PID_684 0x00000000010bc140 2 1 1 0x00000000 MSDTC_Perf_Library_Lock_PID_684 0x00000000010bc550 2 1 1 0x00000000 PerfDisk_Perf_Library_Lock_PID_684 0x00000000010bc750 2 1 1 0x00000000 PerfNet_Perf_Library_Lock_PID_684 0x00000000010bc7f8 1 1 1 0x00000000 0x00000000010bcc38 2 1 1 0x00000000 TapiSrv_Perf_Library_Lock_PID_684 0x00000000010bed60 2 1 1 0x00000000 TermService_Perf_Library_Lock_PID_684 0x00000000010c2c60 1 1 1 0x00000000 0x00000000010c2cd0 1 1 1 0x00000000 0x00000000010c46f0 1 1 1 0x00000000 0x00000000010c7cf0 1 1 1 0x00000000 0x00000000010c9898 4 3 1 0x00000000 ZonesCounterMutex 0x00000000010d4030 2 1 1 0x00000000 ISAPISearch_Perf_Library_Lock_PID_684 0x00000000010d61e8 2 1 1 0x00000000 userenv: User Registry policy mutex 0x00000000010d7de8 1 1 1 0x00000000 0x00000000010d9a50 2 1 1 0x00000000 53AF607601CB391B000002A42 0x00000000010dd398 2 1 1 0x00000000 ContentIndex_Perf_Library_Lock_PID_684 0x000000000110c530 1 1 1 0x00000000 0x0000000001113cc8 1 1 1 0x00000000 0x0000000001116218 1 1 1 0x00000000 0x0000000001119730 2 1 1 0x00000000 RAS_MO_02 0x000000000111bfe0 1 1 1 0x00000000 0x000000000111eb40 2 1 1 0x00000000 c:!windows!system32!config!systemprofile!local settings!history!history.ie5! 0x00000000011211a8 4 3 1 0x00000000 ZonesCacheCounterMutex 0x000000000112cad0 1 1 1 0x00000000 0x000000000112d0e0 1 1 1 0x00000000 0x000000000112da78 2 1 1 0x00000000 5C9DCF9C01CB391B000007B02 0x000000000112f388 3 2 1 0x00000000 SRDataStore 0x000000000112f688 2 1 1 0x00000000 55319D6A01CB391B000005982 0x0000000001130ef8 3 2 1 0x00000000 c:!documents and settings!administrator!cookies! 0x0000000001133f48 1 1 1 0x00000000 0x000000000113f1b8 2 1 1 0x00000000 c:!windows!system32!config!systemprofile!local settings!temporary internet files!content.ie5! 0x000000000113fd28 1 1 1 0x00000000 0x00000000011465c8 3 2 1 0x00000000 c:!documents and settings!administrator!local settings!temporary internet files!content.ie5! 0x000000000114e9c0 2 1 1 0x00000000 userenv: Machine Registry policy mutex 0x0000000001152150 1 1 1 0x00000000 0x0000000001159760 1 1 1 0x00000000 0x000000000115e988 1 1 1 0x00000000 0x000000000115ed38 2 1 1 0x00000000 SingleSesMutex 0x000000000115f628 2 1 0 0xff398638 1732:680 Instance0: ESENT Performance Data Schema Version 40 0x00000000011627c8 1 1 1 0x00000000 0x00000000011633c0 2 1 1 0x00000000 839553D201CB391B000006C42 0x0000000001163898 2 1 1 0x00000000 C1EA8C7801CB391B000006BC2 0x0000000001166e20 1 1 1 0x00000000 0x00000000011875d8 1 1 1 0x00000000 0x000000000118b330 1 1 1 0x00000000 0x000000000118c228 1 1 1 0x00000000 0x000000000118d2d0 1 1 1 0x00000000 0x000000000118d640 1 1 1 0x00000000 0x0000000001190288 1 1 1 0x00000000 0x000000000211a230 5 4 1 0x00000000 TpVcW32ListMutex 0x00000000024c9ef8 2 1 1 0x00000000 PSched_Perf_Library_Lock_PID_684 0x0000000002ae49b0 1 1 1 0x00000000 0x0000000002e2c4b0 1 1 1 0x00000000 0x00000000043d21b8 2 1 1 0x00000000 53EAFB4001CB391B0000034C2 0x00000000043d62a0 2 1 1 0x00000000 0CADFD67AF62496dB34264F000F5624A 0x00000000043d6e18 1 1 1 0x00000000 0x000000000441a380 2 1 1 0x00000000 C3CCBBD401CB391B000001C42 0x000000000445c2c8 1 1 1 0x00000000 0x000000000445cec8 1 1 1 0x00000000 0x000000000485e548 1 1 1 0x00000000 0x0000000004861550 1 1 1 0x00000000 0x0000000004866dc8 2 1 1 0x00000000 c:!documents and settings!networkservice!local settings!history!history.ie5! 0x000000000486b0f8 1 1 1 0x00000000 0x00000000048f8fb0 2 1 1 0x00000000 543E6D8E01CB391B000004402 0x000000000493faa8 1 1 1 0x00000000 0x0000000004a064f8 9 8 1 0x00000000 ShimCacheMutex 0x0000000004a06c00 2 1 1 0x00000000 5A50EAC601CB391B000006842 0x0000000004a4ad70 2 1 1 0x00000000 647C72AE01CB391B0000043C2 0x0000000004a50740 1 1 1 0x00000000 0x0000000004a97110 1 1 1 0x00000000 0x0000000004b58900 2 1 1 0x00000000 6303BF2201CB391B000003782 0x0000000004b5c608 1 1 1 0x00000000 0x0000000004b5c668 2 1 1 0x00000000 HGFSMUTEX00000000000242b4 0x0000000004be2778 1 1 1 0x00000000 0x0000000004be4410 2 1 1 0x00000000 userenv: user policy mutex 0x0000000004c2d6b8 2 1 1 0x00000000 5C2B5EBC01CB391B000006FC2 0x00000000052af290 1 1 1 0x00000000 0x00000000052af2d0 1 1 1 0x00000000 0x00000000054707e0 2 1 1 0x00000000 238FAD3109D3473aB4764B20B3731840 0x00000000054714b0 3 2 1 0x00000000 c:!documents and settings!localservice!local settings!temporary internet files!content.ie5! 0x00000000054716f8 2 1 1 0x00000000 4FCC0DEFE22C4f138FB9D5AF25FD9398 0x00000000054b2a48 1 1 1 0x00000000 0x00000000054b2ab8 1 1 1 0x00000000 0x00000000054f30c0 1 1 1 0x00000000 0x0000000005534f48 1 1 1 0x00000000 0x00000000055379d8 2 1 1 0x00000000 WPA_LICSTORE_MUTEX 0x0000000005537a28 2 1 1 0x00000000 WPA_HWID_MUTEX 0x0000000005537a78 2 1 1 0x00000000 WPA_LT_MUTEX 0x0000000005537ac8 2 1 1 0x00000000 WPA_RT_MUTEX 0x00000000055fe480 2 1 1 0x00000000 WPA_PR_MUTEX 0x00000000055fe538 1 1 1 0x00000000 0x00000000058020d0 1 1 1 0x00000000 0x00000000058021f0 1 1 1 0x00000000 0x00000000058022d0 1 1 1 0x00000000 0x00000000058024f0 1 1 1 0x00000000 0x0000000005802868 1 1 1 0x00000000 0x0000000005b949a0 1 1 1 0x00000000 0x0000000005c16378 2 1 1 0x00000000 c:!documents and settings!networkservice!cookies! 0x0000000005c18f08 3 2 1 0x00000000 MidiMapper_modLongMessage_RefCnt 0x0000000005c9f978 2 1 1 0x00000000 C70DD0D201CB391B000001D42 0x0000000005c9fb30 2 1 1 0x00000000 5CE2F3CE01CB391B000000D82 0x0000000005ca17e8 2 1 1 0x00000000 _AVIRA_2108 0x0000000005ce3e60 2 1 1 0x00000000 C39837F001CB391B000001B02 0x0000000005ce5dd0 2 1 1 0x00000000 _SHuassist.mtx 0x0000000005d281f0 2 1 1 0x00000000 746bbf3569adEncrypt 0x0000000005d2a258 1 1 1 0x00000000 0x0000000005d2a440 1 1 1 0x00000000 0x0000000005e32020 1 1 1 0x00000000 0x0000000005e320f0 1 1 1 0x00000000 0x0000000005e36c08 1 1 1 0x00000000 0x0000000005e7ffe0 3 2 1 0x00000000 MidiMapper_Configure 0x0000000005f01c68 2 1 1 0x00000000 ExplorerIsShellMutex 0x0000000005f02378 1 1 1 0x00000000 0x0000000005f024d8 2 1 1 0x00000000 RAS_MO_01 0x0000000005f45148 7 6 1 0x00000000 SHIMLIB_LOG_MUTEX 0x0000000005f45528 1 1 1 0x00000000 0x0000000005f45908 1 1 1 0x00000000 0x0000000005f45e48 2 1 1 0x00000000 msgina: InteractiveLogonMutex 0x0000000005f48ba8 2 1 1 0x00000000 DBWinMutex 0x0000000005f8aec8 1 1 1 0x00000000 0x0000000005fd0b38 3 2 1 0x00000000 c:!documents and settings!localservice!cookies! 0x0000000005fd4eb0 3 2 1 0x00000000 c:!documents and settings!administrator!local settings!history!history.ie5! 0x00000000060152d8 1 1 1 0x00000000 0x0000000006016b88 2 1 1 0x00000000 VMwareGuestCopyPasteMutex 0x0000000006017ee8 3 2 1 0x00000000 ThinPrint-L 0x0000000006017fe0 2 1 1 0x00000000 c:!documents and settings!networkservice!local settings!temporary internet files!content.ie5! 0x000000000605ff40 1 1 1 0x00000000 0x0000000006124810 1 1 1 0x00000000 0x0000000006126908 1 1 1 0x00000000 0x00000000061682e8 1 1 1 0x00000000 0x000000000616ad30 1 1 1 0x00000000 0x00000000061ab388 1 1 1 0x00000000 0x00000000061ad0e0 1 1 1 0x00000000 0x00000000061ee258 2 1 1 0x00000000 PnP_Init_Mutex 0x00000000061efc38 1 1 1 0x00000000 0x0000000006231bd0 1 1 1 0x00000000 0x0000000006231e28 1 1 1 0x00000000 0x0000000006233a98 1 1 1 0x00000000 0x0000000006234b58 2 1 1 0x00000000 5434E42601CB391B000004042 0x0000000006234bc8 1 1 1 0x00000000 0x0000000006234ec0 1 1 1 0x00000000 0x00000000062354d8 2 1 1 0x00000000 VMToolsHookQueueLock 0x00000000062363a0 2 1 1 0x00000000 53B1C2D001CB391B000002B02 0x0000000006238c38 1 1 1 0x00000000 0x00000000062392e8 1 1 1 0x00000000 0x000000000627e0e0 1 1 1 0x00000000 0x000000000627f960 1 1 1 0x00000000 0x0000000006381678 1 1 1 0x00000000 0x0000000006381aa0 1 1 1 0x00000000 0x0000000006381de8 1 1 1 0x00000000 0x0000000006383150 2 1 1 0x00000000 userenv: machine policy mutex 0x00000000063c6678 1 1 1 0x00000000 0x00000000063c6aa0 1 1 1 0x00000000 0x00000000063c7908 1 1 1 0x00000000 0x0000000006408950 1 1 1 0x00000000 0x00000000064093e8 1 1 1 0x00000000 0x0000000006409c38 1 1 1 0x00000000 0x000000000640aa70 1 1 1 0x00000000 0x000000000640aec0 1 1 1 0x00000000 0x000000000644c7e8 1 1 1 0x00000000 0x000000000644e898 3 2 1 0x00000000 c:!documents and settings!localservice!local settings!history!history.ie5! 0x000000000644eeb0 5 4 1 0x00000000 WindowsUpdateTracingMutex 0x0000000006453bc8 1 1 1 0x00000000 0x0000000006453c38 1 1 1 0x00000000 0x0000000006453e48 1 1 1 0x00000000 0x00000000064951d0 3 2 1 0x00000000 WininetStartupMutex 0x00000000064995c0 1 1 1 0x00000000 0x000000000651a720 1 1 1 0x00000000 0x0000000006560db0 1 1 1 0x00000000 0x0000000006560e20 1 1 1 0x00000000 0x00000000065c05a8 1 1 1 0x00000000 0x00000000065e6810 1 1 1 0x00000000 0x00000000066290f8 1 1 1 0x00000000 0x000000000666c678 1 1 1 0x00000000 0x00000000066ad9a8 1 1 1 0x00000000 0x00000000066add28 1 1 1 0x00000000 0x00000000066f68b0 5 4 1 0x00000000 RasPbFile 0x00000000066f6cd0 1 1 1 0x00000000 0x00000000067358a8 2 1 1 0x00000000 RSVP_Perf_Library_Lock_PID_684 0x0000000006735dc0 2 1 1 0x00000000 _AVIRA_2109 0x00000000067790f8 1 1 1 0x00000000 0x0000000006779d48 1 1 1 0x00000000 0x000000000687f0f8 1 1 1 0x00000000 0x0000000006901208 1 1 1 0x00000000 0x0000000006944ba0 1 1 1 0x00000000 0x0000000006945830 1 1 1 0x00000000 0x0000000006945a30 1 1 1 0x00000000 0x0000000006946678 1 1 1 0x00000000 0x0000000006b1a460 2 1 1 0x00000000 VMwareGuestDnDDataMutex 0x0000000006b400f8 1 1 1 0x00000000 $
この情報だけで、どれが怪しいかを見つけるのは、難しいのですが、この方法も悪意あるプログラムを探す有効な手段の一つです。
ここでは、もう、答えとして「_AVIRA_2108」が怪しいと分かっていたと仮定すると、次のように検索することで、さらなる調査が可能になります。
(7) レジストリ
次のコマンドで、レジストリの状況を出力することもできます。
$ ./volatility_2.4_x86 -f zeus.vmem --profile=WinXPSP2x86 printkey -K "Microsoft\Windows NT\CurrentVersion\Winlogon" Volatility Foundation Volatility Framework 2.4 Legend: (S) = Stable (V) = Volatile ---------------------------- Registry: \Device\HarddiskVolume1\WINDOWS\system32\config\software Key name: Winlogon (S) Last updated: 2010-08-15 19:17:23 UTC+0000 Subkeys: (S) GPExtensions (S) Notify (S) SpecialAccounts (V) Credentials Values: REG_DWORD AutoRestartShell : (S) 1 REG_SZ DefaultDomainName : (S) BILLY-DB5B96DD3 REG_SZ DefaultUserName : (S) Administrator REG_SZ LegalNoticeCaption : (S) REG_SZ LegalNoticeText : (S) REG_SZ PowerdownAfterShutdown : (S) 0 REG_SZ ReportBootOk : (S) 1 REG_SZ Shell : (S) Explorer.exe REG_SZ ShutdownWithoutLogon : (S) 0 REG_SZ System : (S) REG_SZ Userinit : (S) C:\WINDOWS\system32\userinit.exe,C:\WINDOWS\system32\sdra64.exe, REG_SZ VmApplet : (S) rundll32 shell32,Control_RunDLL "sysdm.cpl" REG_DWORD SfcQuota : (S) 4294967295 REG_SZ allocatecdroms : (S) 0 REG_SZ allocatedasd : (S) 0 REG_SZ allocatefloppies : (S) 0 REG_SZ cachedlogonscount : (S) 10 REG_DWORD forceunlocklogon : (S) 0 REG_DWORD passwordexpirywarning : (S) 14 REG_SZ scremoveoption : (S) 0 REG_DWORD AllowMultipleTSSessions : (S) 1 REG_EXPAND_SZ UIHost : (S) logonui.exe REG_DWORD LogonType : (S) 1 REG_SZ Background : (S) 0 0 0 REG_SZ AutoAdminLogon : (S) 0 REG_SZ DebugServerCommand : (S) no REG_DWORD SFCDisable : (S) 0 REG_SZ WinStationsDisabled : (S) 0 REG_DWORD HibernationPreviouslyEnabled : (S) 1 REG_DWORD ShowLogonOptions : (S) 0 REG_SZ AltDefaultUserName : (S) Administrator REG_SZ AltDefaultDomainName : (S) BILLY-DB5B96DD3 $
ここでも、答えとして、「sdra64.exe」が怪しいという前提で進めると、検索した様子が次の通りです。
4 質疑応答
Q.何が正しい状態かを確認できる情報はありませんか?
A.SANSのホームページに、次のようなpdfが公開されており、参考になるのでは?
https://digital-forensics.sans.org/media/poster_2014_find_evil.pdf
Q.勉強のためにサンプルとなるメモリダンプはありませんか?
A.次のようなサイトがあります。
10 最後に
個人的には、このような作業は初めての経験で、非常に新鮮な経験でした。また、興味を持って、勉強してみたいと思いました。
「せきゅぽろ」という勉強会は、おやつタイムが有名です。