공부/Forensic

Volatility Tool 사용

완이버스 2024. 7. 10. 23:23

본 게시물은 inflearn의 "기초 디지털 포렌식"강의를 통해 학습한 내용을 재현한 과정을 서술하였습니다.


Environment

실습 파일 대상 : cirdex.vmem (메모리 파일)

volatility tool version: 2.6

 

Command : volatility_2.6_win64_standalone.exe -f ./cirdex.vmem imageinfo

"imageinfo" option을 통해서 메모리 덤프 파일에 대한 대략적인 분석을 진행할 수 있다.

해당 과정은 분석 실습에 앞서서 꼭 한번은 진행해야할 과정이라 함

Suggested Profile 에서 "WinXPSP2x86, WinXPSP3x86" 이렇게 2개를 확인할 수 있는데 해당 정보는 이 file이 생성되었을 것으로 추측되는 환경을 의미한다.

간단한게 WinXPSP2x86을 구글링 한 결과는 Windows XP Service Pack 2, 32-bit 이라는 것을 확인할 수 있었다.

 

 

Command : volatility_2.6_win64_standalone.exe -f ./cirdex.vmem --profile=WinXPSP2x86 pslist

"pslist" option은 process list의 약자로 말 그대로 확인할 수 있다.

이러한 log들을 꽤나 긴 편이니 다른 program을 이용하여서 확인하는것이 좋다

! pslist의 특징으로는 시간 순으로 출력해준다는 특징이 있다

psscan : offset 순으로 order (숨긴 process를 확인 가능)

psscan.log

pstree : 구조화된 내용으로 확인 (pid와 ppid를 통해 구조화된 내용으로 정렬)

pstree.log

여기서는 앞에서 말한듯이 process들간의 부모,자식 관계를 확인할 수 있는데 여기서 해당 process들을 하나씩 검색해보면서 어떤 process인지 확인할 수 있고 독립적으로 수행되고 있는 process가 있는지, 또는 process name을 보았을때 의심갈만한 process가 있는지도 추측해볼 수 있다.

단 악성코드라 할지라도 process name정도는 정상 process으로 위장가능하기에 충분히 의심해봐야 한다.

 

여기 log에서는 explorer.exe와 그 자식 process인 reader_sl.exe가 있는데 reader_sl.exe는 adobe 관련 프로세스이고 현재 활발한 악성코드 중에서는 pdf파일에 악성코드를 injection하는 경우가 많기에 충분히 의심해봐야할 대상이 된다.

 

- 그렇기에 이후의 command는 reader_sl.exe를 중점적으로 분석을 진행한다.

 

 

psxview : 7가지의 tool(pslist, psscan...etc)을 한번에 확인가능

psxview.log

 

여기서는 만약 pslist가 Flase인데 psscan이 True이라면 해당 process는 background에서 동작하고 있을 가능성이 있기때문에 악성행동을 한다고 의심해 봐야한다.

 

cmdline : process가 실행될때 그때 사용된 parameter를 확인 가능

cmdline.log

filescan : 메모리의 존재하는 모든 파일에 대한 정보를 확인 가능

filescan.log

connections : 현재 연결된 TCP 통신에 대한 정보

connections.log

여기서는 41.168.5.140이라는 ip로 TCP connection을 한다는 정보를 확인할 수 있다.

이러한 정보들을 토대로 분석가라면 악성코드 실행 흐름도를 시나리오를 통해 어떻게 수행되는지 추측하고 그에 따른 로그 분석을 수행한다면 보다 빠른 접근이 가능할 것이라고 생각한다. 

 

socket : 응답 대기중인 모든 프로토콜에 대한 socket 정보

 

! connections, sockets들은 모두 Win XP 환경 이전에서만 사용한다 -> Win7이후로는 netscan 사용

procdumps : pid를 인자로 주어서 해당 프로그램이 사용하는 program을 추출 할 수 있음

마지막으로 pid : 1640인 reader_sl.exe 실행파일을 procdumps를 통해서 추출할 수 있었고 해당 program을 virustotal을 통해서 확인한 결과 28개로 악성코드 프로그램이 삽입되었음을 찾을 수 있다.


P.S) 굉장히 많은 options들이 volatility가 지원해준다. 한번에 많은 option들을 받다 보니 뭐가 뭔지 정리가 잘 안되는데 이런 option들은 앞으로 많이 사용해 보면서 주로 사용되는 option들을 숙지해 나가는 것이 가장 효과적이니 앞으로 꾸준히만 한다면 익숙해질 것으로 생각한ㄷ..