Volatility plugin 세부 내용 비교(pslist, psscan, pstree, psxview) (cmdscan, consoles, cmdline) (netscan, socket, connections)

Hunjison·2022년 2월 28일
0

Digital Forensics

목록 보기
7/17

Volatility의 플러그인, 다양한 기능이 있는데 그 기능에 대해 세부 내용까지 자세히 설명한 곳이 많지는 않다.

process 관련

pslist, psscan, pstree, psxview

  1. pslist
    pslist는 "시간 순"으로 나열한다.
    따라서 악성 프로세스의 선후 관계를 파악하는 데에 유용하다.

    예를 들어 아래와 같은 경우에 TeamViewer.exe 가 먼저 실행되고, mstsc.exe가 실행된 것이다.

0x84013598 TeamViewer.exe         2680   1696     28      632      1      0 2015-10-09 12:08:46 UTC+0000                                 
0x84017d40 tv_w32.exe             4064   2680      2       83      1      0 2015-10-09 12:08:47 UTC+0000                                 
0x858bc278 TeamViewer_Des         1092   2680     16      405      1      0 2015-10-09 12:10:56 UTC+0000                                 
0x83f1ed40 mstsc.exe              2844   2116     11      484      1      0 2015-10-09 12:12:03 UTC+0000 
  1. psscan
    psscan는 offset 순서로 나열한다.
    숨겨진 파일을 가져올 수 있다고 알려져 있다.

  2. pstree
    pstree는 PID, PPID를 기준으로 트리 형태로 보여준다.
    악성 프로세스 간의 부모-자식 관계를 파악할 수 있어, 전반적인 흐름을 파악하는 데에 유리하다.

 0x84f97628:wininit.exe                               420    360      3     77 2015-10-09 11:30:48 UTC+0000
. 0x84e979f8:services.exe                             528    420      9    200 2015-10-09 11:30:48 UTC+0000
.. 0x85ae0cb0:dllhost.exe                            1888    528     13    196 2015-10-09 11:30:54 UTC+0000
.. 0x8586fd40:svchost.exe                             644    528     11    351 2015-10-09 11:30:48 UTC+0000
.. 0x85ae3030:vmtoolsd.exe                           1432    528      8    274 2015-10-09 11:30:54 UTC+0000
  1. psxview
    psxview는 7개의 프로세스 관련 플러그인을 합쳤다고 알려져있다.
    자세한 기능은 잘 모르지만, pslist와 psscan값이 다를 때(일반적으로 False, True), 숨겨진 프로세스이다.
0x3ecebb18 csrss.exe               368 True   True   True     True   False True    True     
0x3e816d40 csrss.exe               432 True   True   True     True   False True    True     
0x03fbb4e8 System                    4 True   True   True     True   False False   False 
0x3e85e978 mscorsvw.exe            912 False  True   False    False  False False   False    2015-10-09 05:28:46 UTC+0000
0x3f443ab0 explorer.exe           3932 False  True   True     False  False False   False

cmd 관련

cmdscan, consoles, cmdline

  1. cmdscan
    cmdscan은 csrss.exe(Windows 7 이전), conhost.exe(Windows 7 이후)의 메모리를 검색하여 cmd에서 실행한 명령을 조회한다. 따라서 cmd를 통해 공격자가 수행한 명령을 볼 수 있다.
CommandProcess: conhost.exe Pid: 916
CommandHistory: 0x2f9098 Application: cmd.exe Flags: Allocated, Reset
CommandCount: 5 LastAdded: 4 LastDisplayed: 4
FirstCommand: 0 CommandCountMax: 50
ProcessHandle: 0x5c
Cmd #0 @ 0x2efe98: cd ..
Cmd #1 @ 0x2efeb0: cd Temp
Cmd #2 @ 0x2f58a0: dir
Cmd #3 @ 0x2f6bb8: wce.exe -w
Cmd #4 @ 0x2fe400: wce.exe -w > w.tmp
  1. consoles
    consoles는 cmdscan과 유사하지만, 조회하는 개체가 조금 다르다.
    전체 screen buffer를 스캔하여, input과 output을 모두 획득할 수 있다.
C:\Windows\Temp>dir                                                             
 Volume in drive C has no label.                                                
 Volume Serial Number is FE0F-F423                                              
                                                                                
 Directory of C:\Windows\Temp                                                   
                                                                                
10/09/2015  07:29 AM    <DIR>          .                                        
10/09/2015  07:29 AM    <DIR>          ..                                       
10/09/2015  01:27 AM                 0 DMIE58D.tmp                              
10/09/2015  06:57 AM            50,176 getlsasrvaddr.exe                        
10/09/2015  02:02 AM             7,572 MpCmdRun.log                             
10/09/2015  12:07 AM             4,636 MpSigStub.log                            
10/09/2015  03:37 AM    <DIR>          MPTelemetrySubmit
  1. cmdline
    현재 실행되고 있는 프로세스의 command-line argument를 조회
    헷갈리기 쉽다!! cmdline은 프로세스를 기준으로 한다.
************************************************************************
cmd.exe pid:   3784
Command line : cmd
************************************************************************
conhost.exe pid:   1824
Command line : \??\C:\Windows\system32\conhost.exe
************************************************************************
TeamViewer.exe pid:   2680
Command line : "C:\Users\FRONTD~1\AppData\Local\Temp\TeamViewer\TeamViewer.exe" 
************************************************************************

network 관련

netscan, socket, connections

  1. netscan (Windows Vista 이후 전부)
    그냥 다~~~ 된다!!! 설명을 보자.
    옛날 윈도우 버전이 아닌 이상, 이것만으로도 충분해보인다.
This finds TCP endpoints, TCP listeners, UDP endpoints, and UDP listeners. It distinguishes between IPv4 and IPv6, prints the local and remote IP (if applicable), the local and remote port (if applicable), the time when the socket was bound or when the connection was established, and the current state (for TCP connections only).
  1. connections (x86 and x64 Windows XP and Windows 2003)
    Active한 TCP 연결에 대한 정보를 조회한다.

  2. connscan (x86 and x64 Windows XP and Windows 2003)
    종료된 연결을 포함한 데이터를 출력한다.

  3. sockets (x86 and x64 Windows XP and Windows 2003)
    응답받기를 기다리고 있는 모든 프로토콜에 대한 socket들을 탐지한다.

profile
비전공자 출신 화이트햇 해커

0개의 댓글