Volatility 튜토리얼
by Qerogram* 2.4 버전으로 작성되었고, 주관적인 사용법 내역이다.
* Image 버전은 Win7SP0x86 기준이다.
1. 이미지 수집
vol.exe -f [dump파일] imageinfo
=== 결과 ===
Suggested Profile(s) : Win7SP0x86, Win7SP1x86
Image Type (Service Pack) : 0
============
위와 같이 정보가 나오고 ImageType에서 서비스팩 버전을 알려준다. 왼쪽에 있을 수록 정확.
즉, Win7SP0x86으로 추정.
2. 프로세스 정보 수집.
vol.exe -f [dump파일] --profile=Win7SP0x86 psscan
- 프로필 인자는 1에서 수집한걸 쓴다.
psscan의 경우 죽은 프로세스들도 나온다.
pslist의 경우 죽은 프로세스는 나오지 않는다.
psxview의 경우 두 경우를 모두 대조하여 은닉된 프로세스까지 볼 수 있다.
pstree의 경우 부모와 자식을 식별하기 아주 좋다.
3. 네트워크 정보 수집
vol.exe -f [dump파일] --profile=Win7SP0x86 netscan
- win7부턴 connections나 그외 명령어가 안되므로 netscan을 이용해서 검색가능.
4. 이상행위 있는 파일 식별
vol.exe -f [dump파일] --profile=Win7SP0x86 malfind > malfind.txt
================================================
Process: svchost.exe Pid: 852 Address: 0x1000000
Vad Tag: VadS Protection: PAGE_EXECUTE_READWRITE
Flags: CommitCharge: 2, MemCommit: 1, PrivateMemory: 1, Protection: 6
=================================================
- 위와 같이 프로세스별로 나열된다. Vad Tag가 VadS인것, PAGE_READWRITE권한이 있다면 악성코드로 의심을 해야한다.
dll로 추출하려면
vol.exe -f [dum파일] --profile=Win7SP0x86 dlldump -p852 -b 0x1000000 -D 추출경로
하면 되겠다. 그러나 이렇게되면 그 코드 부분만 꺼내기 때문에 악성코드 분석시엔 유용하나 전체로직을 알기는 어렵다.
전체 exe를 추출하려면 psscan으로 프로세스의 오프셋 값을 구한뒤.
vol.exe -f [dump파일] --profile=Win7SP0x86 dlldump -p852 --offset=오프셋값 -D 경로 하면 EXE밑 하위 DLL을 덤프뜨는 것 이 가능하다.
* 그외에도 volshell을 통해 셸을 띄운 뒤
dis(주소, 범위) 를 통해 어셈코드로 확인도 가능하며,
db(주소, 범위)를 통해 헥사값 또한 알 수가 있다.
블로그의 정보
Data+
Qerogram