본문 바로가기
디지털 포렌식(Digital Forensics)/네이버 웨일 웹 포렌식(Naver Whale Web Forensics)

1. 볼라틸리티(Volatility) 기본 명령어 실습 - 프로파일(Profiles)

by LIZ0904 2020. 6. 13.
반응형

환경 : Win7x64 Home (VMware)

(처음엔 Win10x64를 시도해 봤지만 pslist같은 명령어들이 되지 않았다 ㅠ)

 

1. imageinfo

imageinfo는 덤프파일의 이미지 정보를 분석할 수 있는 명령어이다. pslist와 같은 다른 중요 명령어를 사용할 때 프로파일명이 필요하기 때문에, 프로파일명을 잘 알아두어야 한다.

C:\Python27\Lib\site-packages\volatility-2.6\volatility-master>vol.py -f "C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem" imageinfo
Volatility Foundation Volatility Framework 2.6
INFO    : volatility.debug    : Determining profile based on KDBG search...
          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418
                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
                     AS Layer2 : FileAddressSpace (C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem)
                      PAE type : No PAE
                           DTB : 0x187000L
                          KDBG : 0xf800029e9120L
          Number of Processors : 1
     Image Type (Service Pack) : 1
                KPCR for CPU 0 : 0xfffff800029eb000L
             KUSER_SHARED_DATA : 0xfffff78000000000L
           Image date and time : 2020-06-12 14:30:40 UTC+0000
     Image local date and time : 2020-06-12 23:30:40 +0900​
형식 : vol.py -f "덤프파일의 경로" imageinfo

위의 결과 화면을 보면 프로세스의 수 및 메모리 이미지가 생성된 날짜와 시간 등을 확인할 수 있고, 메모리 이미지 프로파일은 Suggested Profile(s)=Win7SP1x64 임을 알 수 있다. 잘 기억해두자!

 

 

2. pslist

pslist는 현재 실행중인 시스템 프로세스들의 정보를 보여주기 위해 사용한다. 오프셋, 프로세스 이름, PID(프로세스 ID), PPID(부모 프로세스ID), 스레드 및 핸들개수, 프로세스의 시작과 종료 시간 등을 알 수 있다. 

C:\Python27\Lib\site-packages\volatility-2.6\volatility-master>vol.py -f "C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem" --profile=Win7SP1x64 pslist
Volatility Foundation Volatility Framework 2.6
Offset(V)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit
------------------ -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0xfffffa80018be9b0 System                    4      0     77      561 ------      0 2020-06-12 14:22:59 UTC+0000
0xfffffa80028233f0 smss.exe                228      4      2       29 ------      0 2020-06-12 14:22:59 UTC+0000
0xfffffa8002fb2060 csrss.exe               308    296      8      556      0      0 2020-06-12 14:23:03 UTC+0000
0xfffffa80018c3b00 wininit.exe             344    296      3       75      0      0 2020-06-12 14:23:03 UTC+0000
0xfffffa8003761060 csrss.exe               352    336      8      314      1      0 2020-06-12 14:23:03 UTC+0000
0xfffffa8003b7a060 winlogon.exe            380    336      7      131      1      0 2020-06-12 14:23:03 UTC+0000
0xfffffa8003bb62e0 services.exe            436    344      9      218      0      0 2020-06-12 14:23:04 UTC+0000
0xfffffa8003af2b00 lsass.exe               456    344      9      867      0      0 2020-06-12 14:23:04 UTC+0000
0xfffffa8003af1790 lsm.exe                 464    344      9      139      0      0 2020-06-12 14:23:04 UTC+0000
0xfffffa8003b9a5d0 svchost.exe             576    436     11      369      0      0 2020-06-12 14:23:04 UTC+0000
0xfffffa8003ca0b00 svchost.exe             636    436      7      288      0      0 2020-06-12 14:23:04 UTC+0000
0xfffffa8003d2a8f0 sppsvc.exe              800    436      5      152      0      0 2020-06-12 14:23:05 UTC+0000
0xfffffa8003d88b00 svchost.exe             844    436     25      512      0      0 2020-06-12 14:23:06 UTC+0000
0xfffffa8003d92b00 svchost.exe             868    436     45     1082      0      0 2020-06-12 14:23:06 UTC+0000
0xfffffa8003dbbb00 svchost.exe             916    436     24      601      0      0 2020-06-12 14:23:06 UTC+0000
0xfffffa8003b98060 svchost.exe             528    436     60      595      0      0 2020-06-12 14:25:26 UTC+0000
0xfffffa8003c21840 svchost.exe             768    436     21      496      0      0 2020-06-12 14:25:26 UTC+0000
0xfffffa8002fd4060 spoolsv.exe            1056    436     14      280      0      0 2020-06-12 14:25:28 UTC+0000
0xfffffa8003f8db00 svchost.exe            1084    436     20      317      0      0 2020-06-12 14:25:28 UTC+0000
0xfffffa8003866b00 svchost.exe            1176    436     11      149      0      0 2020-06-12 14:25:28 UTC+0000
0xfffffa8003ee6330 svchost.exe            1476    436      7       97      0      0 2020-06-12 14:25:28 UTC+0000
형식: vol.py -f "덤프파일의 경로" --profile=[프로파일명] pslist

이때, 프로파일명에 아까 우리가 imageinfo로 확인한 프로파일명을 적어주면 된다.

※pslist는 은닉되거나 연결이 끊긴 프로세스는 출력하지 않는다. 이럴 땐, 다음에 나올 psscan명령어를 사용하면 된다.

 

 

3. psscan

psscan 명령어를 통해 종료되거나 은닉되어 있는 프로세스를 확인할 수 있다. 

C:\Python27\Lib\site-packages\volatility-2.6\volatility-master>vol.py -f "C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem" --profile=Win7SP1x64 psscan
Volatility Foundation Volatility Framework 2.6
Offset(P)          Name                PID   PPID PDB                Time created                   Time exited
------------------ ---------------- ------ ------ ------------------ ------------------------------ ------------------------------
0x000000007f746b30 smss.exe            176      4 0x000000002c0e7000 2020-06-13 07:14:37 UTC+0000
형식 : vol.py -f "덤프파일의 경로" --profile=[프로파일명] psscan

 

 

4. pstree

pstree명령어는 프로세스들의 부모 자식간의 관계를 트리형식으로 보여준다. 

C:\Python27\Lib\site-packages\volatility-2.6\volatility-master>vol.py -f "C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem" --profile=Win7SP1x64 pstree
Volatility Foundation Volatility Framework 2.6
Name                                                  Pid   PPid   Thds   Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
 0xfffffa8002fb2060:csrss.exe                         308    296      8    556 2020-06-12 14:23:03 UTC+0000
. 0xfffffa8001a42b00:conhost.exe                     1696    308      3     57 2020-06-12 14:28:27 UTC+0000
 0xfffffa80018c3b00:wininit.exe                       344    296      3     75 2020-06-12 14:23:03 UTC+0000
. 0xfffffa8003af2b00:lsass.exe                        456    344      9    867 2020-06-12 14:23:04 UTC+0000
. 0xfffffa8003bb62e0:services.exe                     436    344      9    218 2020-06-12 14:23:04 UTC+0000
.. 0xfffffa8003c21840:svchost.exe                     768    436     21    496 2020-06-12 14:25:26 UTC+0000
.. 0xfffffa8001a7c8e0:SearchIndexer.                 1664    436     17    841 2020-06-12 14:27:30 UTC+0000
... 0xfffffa8001d25510:SearchProtocol                2824   1664     11    512 2020-06-12 14:28:57 UTC+0000
... 0xfffffa8001c8eb00:SearchFilterHo                2844   1664      8    172 2020-06-12 14:28:57 UTC+0000
... 0xfffffa8001f6e240:SearchProtocol                1488   1664      7    248 2020-06-12 14:29:48 UTC+0000
.. 0xfffffa8003f34b00:mscorsvw.exe                   2016    436      6     84 2020-06-12 14:27:28 UTC+0000
.. 0xfffffa8003b98060:svchost.exe                     528    436     60    595 2020-06-12 14:25:26 UTC+0000
.. 0xfffffa8003dbbb00:svchost.exe                     916    436     24    601 2020-06-12 14:23:06 UTC+0000
... 0xfffffa8001e36060:audiodg.exe                   3000    916      4    121 2020-06-12 14:29:27 UTC+0000
.. 0xfffffa8003866b00:svchost.exe                    1176    436     11    149 2020-06-12 14:25:28 UTC+0000
.. 0xfffffa8001bddb00:svchost.exe                    2244    436     10    363 2020-06-12 14:28:46 UTC+0000
.. 0xfffffa8002fd4060:spoolsv.exe                    1056    436     14    280 2020-06-12 14:25:28 UTC+0000
.. 0xfffffa8001a553e0:CompatTelRunne                 1700    436      2     51 2020-06-12 14:28:27 UTC+0000
... 0xfffffa8001aadb00:CompatTelRunne                1908   1700     16    445 2020-06-12 14:28:28 UTC+0000
.. 0xfffffa8001db0b00:wmpnetwk.exe                   2728    436     10    207 2020-06-12 14:29:33 UTC+0000
.. 0xfffffa8001a244d0:taskhost.exe                   2320    436     12    277 2020-06-12 14:29:13 UTC+0000
형식: vol.py -f "덤프파일의 경로" --profile=[프로파일명] pstree

참고로 pstree가 왜 있는지 이해가 가지 않았었는데, 정상적인 PPID가 아닌 다른 외부에서 실행되고 있는 프로세스가 있다면 공격당하고 있음을 알 수 있다고 한다.

 

 

5. psxview

psxview는 psscan처럼 은닉된 프로세스를 확인할 수 있는 명령어다.

C:\Python27\Lib\site-packages\volatility-2.6\volatility-master>vol.py -f "C:\Users\[사용자명]\Documents\Virtual Machines\Windows 7 x64\Windows 7 x64-74924c7c.vmem" --profile=Win7SP1x64 psxview
Volatility Foundation Volatility Framework 2.6
Offset(P)          Name                    PID pslist psscan thrdproc pspcid csrss session deskthrd ExitTime
------------------ -------------------- ------ ------ ------ -------- ------ ----- ------- -------- --------
0x000000007ff40b00 wininit.exe             344 True   False  False    True   True  True    True
0x000000007de66b00 svchost.exe            1176 True   False  False    True   True  True    True
0x000000007fc244d0 taskhost.exe           2320 True   False  False    True   True  True    True
0x000000007d98db00 svchost.exe            1084 True   False  False    True   True  True    True
0x000000007fb25510 SearchProtocol         2824 True   False  False    True   True  True    True
0x000000007dcf1790 lsm.exe                 464 True   False  False    True   True  True    False
0x000000007fa8eb00 SearchFilterHo         2844 True   False  False    True   True  True    True
0x000000007f96e240 SearchProtocol         1488 True   False  False    True   True  True    True
0x000000007fbb0b00 wmpnetwk.exe           2728 True   False  False    True   True  True    True
0x000000007db92b00 svchost.exe             868 True   False  False    True   True  True    True
0x000000007fc4b850 mscorsvw.exe           1104 True   False  False    True   True  True    True
0x000000007d934b00 mscorsvw.exe           2016 True   False  False    True   True  True    True
0x000000007d8e6330 svchost.exe            1476 True   False  False    True   True  True    True
0x000000007fc7c8e0 SearchIndexer.         1664 True   False  False    True   True  True    True
0x000000007db09600 svchost.exe            1992 True   False  False    True   True  True    True
0x000000007f9f7700 iexplore.exe           3796 True   False  False    True   True  True    True
0x000000007da21840 svchost.exe             768 True   False  False    True   True  True    True
0x000000007dd98060 svchost.exe             528 True   False  False    True   True  True    True
0x000000007dbbbb00 svchost.exe             916 True   False  False    True   True  True    True
0x000000007f836060 audiodg.exe            3000 True   False  False    True   True  True    True
0x000000007e9d4060 spoolsv.exe            1056 True   False  False    True   True  True    True
0x000000007fdddb00 svchost.exe            2244 True   False  False    True   True  True    False
0x000000007fc60850 svchost.exe            1252 True   False  False    True   True  True    False
형식 : vol.py -f "덤프파일의 경로" --profile=[프로파일명] psxview

각 열에서 보이는 True, False는 프로세스가 그 영역(pslist, psscan 등)에서 발견되는지에 대한 여부를 의미한다.

 

 

 

 

 

 

 

참고자료: https://aaasssddd25.tistory.com/53

 

[2장] Volatility를 활용한 메모리 분석 - 프로세스

안녕하세요. 칸입니다. 저번 장에서는 설치부터 플러그인 확인하는 법을 알아보았는데, 이번장에는 직접 플러그인을 활용해 메모리를 분석해보도록 하겠습니다. 모든 플러그인을 다루지는 못��

aaasssddd25.tistory.com

 

반응형

댓글