오늘은 인프런의 무료 디지털 포렌식 강의를 기반으로 메모리 포렌식을 공부해 볼 것이다.
여기서는 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/ 이라는 바이러스 확인 사이트에 넣고 돌리면 다음과 같이 한 개에서 두 개가 바이러스를 감지한 것을 확인할 수 있다.
완벽히 확실한 것은 아니지만 그래도 reader_sl.exe가 약간의 악성코드일 가능성이 생겼다.
이제 확인해 볼 것은 tcp 통신 정보이다.
아래와 같이 명령어를 입력해보면 PID 1484에서만 통신이 이루어지는 것을 확인할 수 있다.
pid 1484를 아까 pstree.log에서 확인해보면 explorer.exe이고, 그 아래의 프로세스가 reader_sl.exe인 것을 확인할 수 있다.
그러면 reader_sl.exe가 또다시 의심스러워진다고 판단할 수 있다.
이제 procdump라는 옵션을 이용해서 아까의 오프셋을 이용한 프로그램을 추출하는 것이 아닌 프로세스를 기준으로 추출하는 옵션을 이용하여 아래와 같이 reader_sl.exe를 뽑아보자.(윈도우 사용자는 알아서 백신이 감지하여 삭제하니 백신 프로그램을 꺼두고 진행해야 한다.)
그리고 아까와 같은 virustotal 사이트에 추출한 파일을 넣으면 악성파일이라고 감지를 많이 하는 걸 확인할 수 있다.
'Forensics' 카테고리의 다른 글
CTF-d writeup - fore1-hit-the-core (0) | 2022.08.20 |
---|---|
CTF-d writeup - 윈도우 작업 관리자에서 우클릭... (0) | 2022.08.20 |
[대회 문제 풀이로 이해하는 디스크 포렌식 분석] - Thumbnail, Skype, Recycle.bin 분석 (0) | 2022.07.17 |
[대회 문제 풀이로 이해하는 디스크 포렌식 분석] - APK (0) | 2022.07.03 |
[대회 문제 풀이로 이해하는 디스크 포렌식 분석] - Docker (0) | 2022.07.03 |