슈포스/디지털 포렌식 개론

[강의]인프런 : 기초부터 따라하는 디지털 포렌식 섹션3(1)

haerim9.9 2024. 11. 5. 16:43

섹션3

침해사고 대응기법 -> 메모리 포렌식

메모리 : 프로그램이 올라갈 수 있는 공간

 

 

사전 준비

더보기

도구 설치 : 

Volatility - 메모리 관련 데이터를 수집해주는 도구이다.

Windows Terminal - Windows11은 기본으로 깔려있으나 Windows7, 10의 경우에는 따로 설치해야 한다. Microsoft Store에 들어가서 Windows Terminal을 검색해 설치할 수 있다.

https://drive.google.com/file/d/13KhjlrVkPLUlkEytp8jzWD1eaAhl6-q_/view?pli=1

 

환경 설정 : 시스템 환경 변수 설정

Windows+S키 -> 시스템 환경 변수 검색 -> 고급 탭의 환경 변수 -> Path 편집, volatility 파일 경로 추가하기(새로 만들기로)

 

*환경 변수 : 폴더가 어느 경로에 있든 어느 경로에서든 접근할 수 있도록 하는 것.

 

문제 다운로드 :

1) Volatility Wiki - Memory Samples 원래는 해당 루트로 다운받으나, 현재는 사이트 만료로 다운로드가 불가능하다. 따라서 아래의 링크로 다운받을 것.

https://drive.google.com/file/d/1vhideFMxXF3TFf-aOA9Irpg473-maZFL/view

 

2) CTF-d - GrrCON 2015

https://drive.google.com/file/d/15tspUQzmad7BTt76x6C-j5pzO-E_UOL0/view


 

 

Volatility Cridex 풀이

terminal을 이용해야 한다. 기본 명령어 숙지해둘 것! 해당 명령어들은 리눅스 명령어와 유사했다.

 

*편의상 경로는 생략하고 디렉토리명이나 파일명만 적었다.

 

volatility -f cridex imageinfo

어떤 운영체제의 메모리 덤프인지 판단한다.

 

명령어 실행 결과 중

Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86)

해당 줄에서 제시된 운영체제 중 하나만 임의로 꼽아서 실습에 사용해본다.

 

volatiltiy  -f cridex --profile=WinXPSP2x86 pslist

pslist : 프로세스들의 리스트를 출력

 

volatility -f cridex --profile=WinXPSP2x86 pslist > pslist.log

위의 명령어로 pslist의 결과를 텍스트 파일에 저장한다. 그리고 이 파일을 notepad++로 열어준다.

 

이외에 프로세스들을 볼 수 있는 도구 : psscan, pstree, psxview

더보기
volatility -f cridex --profile= WinXPSP2x86 psscan > psscan.log
volatility -f cridex --profile= WinXPSP2x86 pstree > psxview.log
volatility -f cridex --profile= WinXPSP2x86 psxview > psxview.log

마찬가지로 해당 파일들이 생성되고, 이 파일들을 notepad++로 열어준다.

여기에서 뜨는 각각의 한 줄 한 줄이 프로세스이다. 실행되고 있는, 실행되었던 프로세스들의 리스트인 것이다.

 

pslist : 시간 순서대로 출력

psscan : 오프셋(메모리 덤프에 어떤 위치에 존재하는지) 순서대로 출력 + 숨김 프로세스를 볼 수 있다.

pstree : PID와 PPID를 기반으로 모양이 구조화되어서 출력한다.

psxview : pslist, psscan을 한눈에 볼 수 있다.

 

=> 이 도구들을 가지고 할 것 : 의심스러운 프로세스들의 목록을 파악하기

 

의심스러운 프로세스 파악 방법 : 각 프로세스들의 이름을 서치해본다.

그러나 악성 프로세스들의 이름을 다른 일반 프로세스들의 이름과 동일하게 설정하기도 한다. 

 

프로세스 중, reader_sl.exe는 adobe 기반

adobe -> PDF -> PDF 문서를 통한 악성코드가 多 => reader_sl.exe 의심을 해볼 수 있음.

 


어떤 커맨드라인을 썼는지 검색해 볼 수 있는 명령어

volatility -f cridex --profile=WinXPSP2x86 cmdscan > cmdscan.log
volatility -f cridex --profile=WinXPSP2x86 consoles > consoles.log
volatility -f cridex --profile=WinXPSP2x86 cmdline > cmdline.log

cmdscan : cmd에서 실행한 명령을 조회한다.

consoles : cmdscan과 유사하지만 조회하는 개체가 조금 다르다.

cmdline : 현재 실행되고 있는 command-line argument를 조회한다.

 

volatility -f cridex --profile=WinXPSP2x86 filescan > filescan.log

filescan : 메모리 내에 존재하는 모든 파일에 대한 정보

 

notepad++로 열어서 ctrl+F로 검색창 열기, 검색창에는 의심스러웠던 reader_sl.exe 검색, 모두 찾기를 누른다.

검색 결과에 나온 라인의 오프셋을 복사한다.

 

mkdir files
volatility -f cridex --profile=WinXPSP2x86 dumpfiles -Q <복사한 오프셋> -D files -n

dumpfiles : reader_sl.exe 추출

virustotal 사이트 : 추출한 파일을 해당 사이트에 업로드하면, 악성 코드일지도 모르는 부분들을 제시해 준다.

 

virustotal 사이트에 추출한 파일을 업로드하니 reader_sl.exe에 악성 코드로 의심되는 부분이 조금 있는 정도였다. 확신할 정도는 아님.

 


네트워크 정보 출력 명령어

volatility -f cridex --profile=WinXPSP2x86 connections > connections.log

connections : 연결된 TCP 통신 정보를 출력한다.

 

notepad++로 해당 파일 열어보면, 하나만 나온다. 해당 PID인 1484를 가지는 프로세스를 pslist에서 찾아본다. PID가 1484인 프로세스는 exploerer이고, 해당 프로세스를 부모 프로세스로 가지는 reader_sl.exe 또한 다시 의심스러워진다.

 

exploerer보다는 크기가 작은 reader_sl.exe부터 분석한다.

mkdir dumps
volatility -f cridex --profile=WinXPSP2x86 memdump -p 1640(=reader_sl.exe의 PID) -D dumps

 

이렇게 만들어진 파일을 HxD에서 열 수 있다. 불필요한 값들이 많다. 이러한 값들을 걸러내기 위해서 SysinternalsSuite를 시스템 환경 변수에 추가해준다.

strings dumps/1640.dmp > strings_1640.log

strings_1640 파일을 역시 notepad++에서 열어준 뒤, connections.log에서의 IP주소 -> 해당 사이트가 해커의 웹사이트 주소로 추정됨(reader_sl.exe -> 악성 PDF 문서 -> 취약점 -> URL 접속으로 추정 / 은행 관련 피싱)

 

해당 도구들로 어느 부분이 수상한지 발견할 수 있다.


본 게시글은 아래의 강의를 시청하고 공부 목적으로 작성됨.

https://www.inflearn.com/course/%EA%B8%B0%EC%B4%88-%EB%94%94%EC%A7%80%ED%84%B8-%ED%8F%AC%EB%A0%8C%EC%8B%9D/dashboard

 

[지금 무료]기초부터 따라하는 디지털포렌식 강의 | 훈지손 - 인프런

훈지손 | 기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 '물 흐르듯, 자연스럽게' 실력이 늘어가는 강의를 추구합니다., 초보자 눈높이에 딱 맞춘, 원리를 이해하는 디지털

www.inflearn.com