메모리 포렌식 - sample 분석

악성코드 및 포렌식|2021. 1. 25. 13:16

 

 

 

 

 

vol.exe -f sample.vmem pstree

여기서 한번 분석을 시작해보자

 

 

 

 

 

 

 

 

 

 

vol.exe -f sample.vmem psscan

 

 

샘플을 살펴보면 이게 악성코드일 확률이 높지만

원래는 이렇게 대놓고 주지는 않는다.

 

하지만 부모자식처럼 부모가 가장중요하다

 

 

 

 

 

 

잘보면 부모가 explorer.exe였고 탐색이였다

 

익스플로러 브라우저는 iexplore.exe인데

익스플로러 브라우저가 아니였다.

 

 

1708인 explorer.exe의 부모를 찾아보니까 존재하지않은걸보니까

 

시스템 기본 내장 프로세서이고

윈도우 내장프로세서인데

 explorer.exe의 부모 프로세스

최종적으로는 타고 타고 가서 system이 되야하는 것이지만

이것은 부모가 존재하지않았다.

 

 

 

 

 

 

vol.exe -f sample.vmem userassist (사용자가 입력한 명령어)

 

사용자가 실행한 명령어

 

보통은 바탕화면에 들어가서 실행을 한다

근데 cmd에서 실행을 한다는게 당연히 일반적으로는 정상적이지는 않은 상황이다

 

 

 

 

 

 

 

 

 

프로세스 덤프

vol.exe -f sample.vmem procdump -p 476 --dump-dir=./

 

메모리는 휘발성이 강하기떄문에 무조건 끌어낼수는없을수있다.

-p 는 프로세스 아이디입니다

 

지금은 추출당시 메모리에서 해제된 상태이므로 프로세스 덤프 불가

 

 

 

 

 

 

 

 

vol.exe -f sample.vmem connscan

웹서버 ip 접속한 기록을 한번찾아봤는데 특이사항이 없었다.

 

 

 

 

 

 

 

 

 

 

svchost.exe 파일은 윈도우 시스템파일로 win32 서비스들을 처리하기위한 포괄적인 호스트 프로세스라고 합니다.

 

정상적인 방법으로는 악성코드는 윈도우 시스템 함수에 접근을 못합니다.

 

 

 

 

 

악성코드가 svchost 를 감염시키고 windows 시스템함수에 접근을 할수가있으니까

svchost를 많이 건듭니다.

 

 

 

 

 

 

 

 

vol.exe -f sample.vmem malfind

 

 

 

모든 프로세스가 변조가 되있나 안되있나 검색.

code injection이 의심되는 프로세스 검색(malfind)

 

- svchost.exe. 중간에 mz로 시작되는 부분이 있다(0xc30000).

즉 이 파일 내부로 injection(exe or dll) 공격이 있었음을 추측

 

- service host 파일은 윈도우가 실행되는데 필요한 파일을 실행시켜 주는 파일

 

 

 

 

 

 

 

 

 

svchost.exe 

4d 5a (MZ) 시그니쳐로 시작을 합니다.

 

여기안에 악성코드를 삽입을합니다. 여러개를 넣을수도 있고

 

0x00000000 이렇게 시작을해야하는데

 

0x00c30000는 4d 5a 인 악성코드일 확률이 많이높으니까 끄집어내려고합니다.

 

 

 

 

 

그리고 pid는 856 프로세스 id 가 856번이였고

 

 

 

 

당연히 정상적인 프로세스라면 856 번 프로세스 svchost를 실행시킬리는 없다

 

이놈이 나쁜놈이겠구나 하고 알수가있습니다.

 

 

 

 

 

 

 

그리고 또 여기 

0x00c30000 4d 5a 90 (MZ 시그니쳐로 시작하는)

의심스러운 놈이 하나 더있었습니다.

 

 

 

 

 

자 이제

 

 

 

 

 

 

 

 

해당 프로세스에 숨겨진 DLL 호출이 있었는지 검색(ldrmodules)

- volatility -f sample.vmem ldrmodules –p 856

(856을 누가 호출하고있는지 확인한다)

 

그런데 잘보니까 svchost를 호출하는곳은 정상적인곳도 많은데

수상한것을 찾아보게되면

 

 

 

 

 

 

잘보면 false false 만 되고있다. 의심스럽게 추측을 해볼 수 있다.

실제로는 많은 노가다를 해야 합니다.

 

- msxml3r.dll 파일이 모두 숨김으로 처리되어 있으므로 악성행위를 하는 것으로 의심

 

dll= 시스템 내장함수 

 

 

 

 

 

 

 

 

 

모든게올라가는게하니라

pid 856 이 할당받은 공간인 메모리로 실행하기위한 dll이 올라간다

 

 

svchost가 오염이 되있는 것은 알았는데 

자세히보니까 의심파일 두개가 의심이됩니다.

 

 

 

지금상황은 프로세스 id 어딘가에 감염이되잇고

msxml3r,dll 이 감염됬다고 추측을 할수가있습니다.

 

 

 

 

숨겨진 DLL을 추출(2개)

 

 

 

 

 

- volatility -f sample.vmem dlldump -p 856 -b 0x00c30000 --dump-dir=./

c30000이 바이러스였습니다.

 

 

 

 

 

- volatility -f sample.vmem dlldump -p 856 -b 0x00eb0000 --dump-dir=./

eb0000은 의심은 되지만 정상이였습니다.

 

 

 

 

 

 

 

 

 

이파일들이 생겼고

 

 

 

 

 

 

 

c30000.dll은 악성코드였고

eb0000.dll은 악성코드가 아니였습니다.

 

 

 

 

메모리분석도구이지 침해사고 분석도구는 아닙니다.

 

c30000.dll 이 악성코드였고 악성코드가 확실했습니다.

 

 

 

 

이런 행위를하고 스스로 자폭하도록 설계가 되 있을 수도 있을거 같습니다.

 

댓글()