훈훈훈
디지털 포렌식 : : Volatility 도구를 이용한 메모리 분석 본문
1. Volatility 소개
Volatility 는 오픈 소스 기반으로 CLI 인터페이스를 제공하는 메모리 분석 도구이다.
비슷한 기능을 제공하는 도구로는 구글에서 제작한 ReKall, 멘디언트에서 제작한 Redline 등이 있다.
2. Volatility 플러그인
이번 분석에서 사용할 Volatility 플러그인 외 몇 가지 플러그인을 추가로 기능들을 정리했다.
- pstree : 프로세스를 트리구조로 출력
- pslist : 프로세스 리스트 출력, 리스트 워킹 (가상 주소)
- psscan : 프로세스 리스트 출력, 패턴 매칭 (물리적 주소)
- psxview : 프로세스 은닉을 탐지하기 위해 다양한 방식으로 프로세스 등을 조회
- procdump : 프로세스 실행파일 추출
- memdump : 프로세스가 사용한 전체 메모리영역 덤프
- filescan : 메모리상의 파일 오브젝트 전체검색(패턴 매칭)
- hivelist : 메모리상의 파일
- cmdscan : cmd에서 실행한 명령어 확인
- cmdline : cmd에서 실행한 명령어 이력 확인
- netscan : 네트워크 연결 등 확인
이외에 다른 플러그인 기능에 대한 설명은 밑에 주소에서 확인할 수 있다.
: https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
3. 메모리 분석
1) 분석 환경
Windows 7 64bit 가상환경
2) 분석 도구
- Volatility
다운로드 링크 : https://www.volatilityfoundation.org/26
- HxD
다운로드 링크 : https://mh-nexus.de/en/hxd/
- HashCalc
다운로드 링크 : https://download.cnet.com/HashCalc/3000-2250_4-10130770.html
3) 분석 대상
K-shield Jr 강의에서 제공된 RAT 에 감염된 시스템을 이미지한 파일을 사용했다.
4) 분석 과정
[분석과정 - 1]
"volatility.exe -f RAT_MEM.raw imageinfo" 명령을 실행하면 해당 파일에 대한 정보가 출력된다.
이 다음 명령을 실행할때 "profile"에 대한 정보를 입력해야한다. 따라서 피해자 시스템 운영체제인는 Windows7 SP1 64bit 이므로
명령을 실행할때 "--profile=Win7SP1x64" 를 입력하자.
[분석과정 - 2]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 pstree" 명령을 실행하여 분석대상 시스템의 프로세스 트리를 살펴보자.
명령이 실행되면 위 그림과 같이 프로세스 트리르 출력되는 것을 확인할 수 있다.
이제 이 수 많은 프로세스 중에서 악성으로 의심되는 프로세스를 찾아보자.
[분석과정 - 3]
위 그림에서 빨간박스 체크된 부분을 살펴보자. cmd의 PID 는 3720 이고 PPID 는 864를 가지고 있다.
하지만 밑에 msdcsc.exe를 살펴보면 PID 는 864이고 PPID 는 cmd 의 PID인 3720을 갖고 있다.
게다가 explorer.exe 와 iexplore.exe의 PPID 또한 864이다. 이 부분을 분석해보았을때 msdcsc.exe가 악성 파일임을 추측할 수 있다.
[분석과정 - 4]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 cmdscan" 명령을 실행하여 분석대상 시스템에서 cmd에서 실행한 명령들을
확인해보았다. 명령 실행 결과 cmd에서 실행된 명령어를 찾을 수 없었다.
[분석과정 - 5]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 netscan | findstr "msdcsc" 명령을 실행하여 msdcsc.exe 파일의 네트워크 연결 정보를 확인해보았다. 명령 실행 결과 의심스러운 IP와 네트워크 통신하는 것을 확인할 수 있다.
[분석과정 - 7]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 procdump -p 864 -D ./" 명령을 실행하여
피해자 시스템의 PID 864(msdcsc.exe) 에 대해서 덤프파일을 생성한다. 명령이 실행이되면 해당 경로에 executable.864.exe 파일이
생성되어 있다.
만약 분석 PC 에 안티바이러스 프로그램이 동작하고 있다면 executable.864.exe 파일이 생성되자마자 삭제될 수 있다.
따라서 실습을 할때 안티바이러스 프로그램을 종료하거나 검역소로 가서 복구를 하자.
[분석과정 - 8]
이제 HashCalc 툴을 이용하여 executable.864.exe 파일의 해쉬 값을 추출하여 바이러스토탈에 업로드 해보자.
필자는 MD5 값을 이용하였다.
[분석과정 - 9]
바이러스토탈 검색 결과 58/66 의 탐지 비율을 보았을때 악성 파일임을 알 수 있다.
결과 부분을 살펴보면 Backdoor, Trojan, Keylogger 등의 악성 코드 기능들을 확인할 수 있다.
[분석과정 - 9]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 memdump -p 864 -D ./" 명령을 실행하여 메모리 덤프를 파일을 생성하자.
명령이 실행이 완료되면 864.dmp 파일을 확인할 수 있다.
[분석과정 - 10]
HxD 를 이용하여 864.dmp 파일의 문자열들을 확인해보자.
"net user"로 검색했을때 user name : bdr , password : 123 인 계정이 생성된 것을 알 수 있다.
따라서 이 계정은 백도어 계정으로 추측할 수 있다.
[분석과정 - 11]
백도어 계정 정보를 획득 후 문자열들을 자세히 살펴본 결과 "dclogs" 라는 로그 파일이 있는 것을 알 수 있다.
이제 이 로그 파일에 대해 한번 살펴보자.
[분석과정 - 12]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 filescan | findstr "dclog" " 명령을 실행하자.
실행 결과 해당 파일에 대한 정보를 수집할 수 있다.
[분석과정 - 13]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 hivelist" 명령을 실행하여 각 하이브들의 오프셋을 확인하자.
출력된 하이브 중 "\??\C:\Users\User\ntuser.dat" 파일의 레지스트리 정보를 확인해보자.
ntuser.dat 은 사용자별 설정 정보를 확인할 수 있는 파일이다.
[분석과정 - 14]
"volatility.exe -f RAT_MEM.raw --profile=Win7SP1x64 printkey -o 0xfffff8a0018a2010 -K “Software\Microsoft\Windows\
CurrentVersion\Run" 명령 실행 결과 해당 파일의 레지스트리 정보를 확인할 수 있다.
확인 결과 msdcsc.exe 파일은 자동 실행이 등록되었음을 알 수 있다.
'정보보안 > 디지털포렌식' 카테고리의 다른 글
디지털 포렌식 : : 웹 아티팩트 분석 (0) | 2018.11.19 |
---|---|
디지털 포렌식 : : 파일시스템 로그 분석 (0) | 2018.11.19 |
디지털 포렌식 : : 메모리 수집 (0) | 2018.11.15 |
디지털 포렌식 : : 비활성 데이터 개념 & 수집 실습 (0) | 2018.11.14 |
디지털 포렌식 : : 활성 데이터 개념 & 수집 실습 (0) | 2018.11.11 |