Forensics

[기초부터 따라하는 디지털 포렌식(inflearn)] - Volatility 사용 및 문제풀이

HackHiJack 2022. 7. 24. 22:38
728x90
반응형

오늘은 인프런의 무료 디지털 포렌식 강의를 기반으로 메모리 포렌식을 공부해 볼 것이다.

 

여기서는 volatility라는 도구를 이용하여 분석을 할 것이고, 문제 파일은 다음 링크에서 확인할 수 있다.

http://files.sempersecurus.org/dumps/cridex_memdump.zip

 

Cridex 문제

먼저 문제 파일 압축을 풀고 바로 volatility를 사용하여 분석을 시작할 것이다.

 

맨 처음 volatility에서 사용해야 할 명령어는 다음과 같다.(물론 앞에 실행파일 명은 윈도우, 맥에 따라서 달라질 수 있다.)

Volatility -f "filename" imageinfo

 

이 명령어는 메모리 덤프의 운영체제 같은 기본 정보를 찾아주는 명령어이다.

cridex문제파일로 실행하면 다음과 같이 운영체제가 분석되어 나오는 것을 확인할 수 있다.

이제는 프로세스 리스트를 한 번 분석해보겠다. 명령어는 아래와 같다.

volatility -f "filename" --profile="아까 분석했던 운영체제" pslist

똑같이 문제파일에 넣어보면 다음과 같이 프로세스 리스트들이 많이 나오는 걸 확인할 수 있다.

이외에도 volatility에는 프로세스 출력 명령어가 pslist, psscan, pstree, psxview 와 같이 총 4개이다.

따라서 어떤 부분이 다른지 각각의 명령어를 log에 다음과 같이 저장해보자.

그리고 010editor로 모두 열어서 각각의 명령어가 어떤 특징이 있는지 알아보겠다.

 

먼저 아까 봤던 pslist이다.

 pslist는 시간순으로 정렬해준다는 특징이 있다.

 

두 번째로 psscan이다.

psscan은 오프셋을 기준으로 보여주는데, 이는 숨긴 프로세스를 찾을 수 있다는 특징이 있다.

 

세 번째로는 pstree이다.

pstree는 PID와 PPID를 기반으로 tree형태로 나타나는 것이 특징이다.

 

마지막으로 psxview이다.

psxview는 pslist, psscan을 동시에 보여줄 수 있다는 특징이 있다. 여기서 plist, psscan의 값이 똑같이 True가 아니라 False가 있다면 공격자가 의도적으로 숨겼다고 가정할 수 있다.

 

위에서 확인해보면 reader_ls.exe가 있는데, 이건 pdf 관련 프로그램이다. pdf에는 해킹에 쉽게 노출 가능하기 때문에 의심스럽다고 확인해볼 수 있다.

 

그 다음 사용해 볼 명령어는 cmd 관련 명령어이다. 프로세스가 실행될 때의 인자 값을 확인하는 옵션이 있는데 cmdline이고, 실제 cmd에서 입력된 것들의 기록을 볼 수 있는 것이 cmdscan, consoles이다.

 

다음과 같이 명령어를 사용하여 log로 저장해보자.

중간에 에러가 살짝 있어서 고친 흔적입니다.

3가지의 결과를 확인해보면, cmdline만 결과가 나온 것을 확인할 수 있다.

하지만 확인해보면 그렇게 의심될 만한 명령어는 없는 것 같다.(그래도 아까 의심스러웠던 reader_sl.exe가 실행된 것을 확인할 수 있다.)

 

이제 메모리에 존재하는 파일에 대한 정보를 주는 filescan을 이용하여 한번 그 reader_sl.exe를 추출해보자.

 

먼저 filescan 명령어를 다음과 같이 사용하여 저장해보자.

그리고 이 파일에서 reader_sl.exe만 찾아서 그 앞의 오프셋을 복사해준다.

그리고 이 오프셋을 이용하여 다음과 같이 명령어를 입력해준다.

그러면 다음과 같이 파일 두개가 추출될 것이다.

그러면 이 파일들중 아무거나 하나를 https://www.virustotal.com/ 이라는 바이러스 확인 사이트에 넣고 돌리면 다음과 같이 한 개에서 두 개가 바이러스를 감지한 것을 확인할 수 있다. 

 

VirusTotal

Analyze suspicious files and URLs to detect types of malware, automatically share them with the security community

www.virustotal.com

완벽히 확실한 것은 아니지만 그래도 reader_sl.exe가 약간의 악성코드일 가능성이 생겼다.

 

이제 확인해 볼 것은 tcp 통신 정보이다.

 

아래와 같이 명령어를 입력해보면 PID 1484에서만 통신이 이루어지는 것을 확인할 수 있다.

pid 1484를 아까 pstree.log에서 확인해보면 explorer.exe이고, 그 아래의 프로세스가 reader_sl.exe인 것을 확인할 수 있다.

그러면 reader_sl.exe가 또다시 의심스러워진다고 판단할 수 있다.

 

이제 procdump라는 옵션을 이용해서 아까의 오프셋을 이용한 프로그램을 추출하는 것이 아닌 프로세스를 기준으로 추출하는 옵션을 이용하여 아래와 같이 reader_sl.exe를 뽑아보자.(윈도우 사용자는 알아서 백신이 감지하여 삭제하니 백신 프로그램을 꺼두고 진행해야 한다.)

그리고 아까와 같은 virustotal 사이트에 추출한 파일을 넣으면 악성파일이라고 감지를 많이 하는 걸 확인할 수 있다.

728x90
반응형