워게임/Root Me

[Root Me] Malicious Word macro - 포렌식 / Volatility

SecurityMan 2022. 11. 21. 11:00

 

Root Me에서 제공하는 문서형 악성코드 분석 문제

 

문제 설명을 읽어보면 Word 파일을 열었는데

 

그 이후로 항상 들어가는 웹사이트가 들어가지지 않는다고 한다.

 

이 문제의 플래그는 해당 웹사이트의 도메인 이름을 알아내는 것이다.

 

반응형

 

 

문제가 문서형 악성코드 분석에 관련된거라 .doc, .docx 같은 문서파일이 제공될 줄 알았는데

 

의외로 .dmp 파일이 주어졌다.

 

.dmp 파일은 메모리 덤프 파일이다.

 

아이콘은 와이어샤크 아이콘이지만 와이어샤크로 열려고 하면 안열린다.

 

 

메모리포렌식 문제를 풀 때는 Volatility 라는 도구를 사용한다.

 

이 분야에서 거의 독보적인 툴이다.

 

https://www.volatilityfoundation.org/releases

 

Release Downloads | Volatility Foundation

Volatility releases are the result of significant in-depth research into OS internals, applications, malicious code, and suspect activities. Releases represent a milestone in not only our team's progress, but also in the development of the community and fo

www.volatilityfoundation.org

 

위 주소에서 다운로드 받을 수 있다.

 

 

Volatility 를 사용해 분석하려면 가장 먼저 imgeinfo 를 알아야 한다.

 

python2 vol.py -f <덤프파일 명> imgaeinfo 라고 명령어를 입력하면 된다.

 

 

그럼 이렇게 메모리 덤프 정보가 출력되는데

 

Suggested Profile(s) 부분에 있는 프로필을 가져다 쓰면 된다.

 

맨 앞에 있는 Win7SP1x86_23418 를 사용할 것이다.

 

 

프로필은 위처럼 사용하면 된다.

 

앞으로 모든 플러그인을 쓸때 앞에 --profile=Win7SP1x86_23418 이라고 붙혀주면 된다.

 

가장 먼저 메모리 덤프 내에 문서파일이 있는지 확인하기 위해

 

filescan 플러그인을 이용해 doc 파일을 찾아봤다.

 

그랬더니 Very_sexy.docm 파일을 찾을 수 있었다.

 

 

찾은파일을 덤프떠 봤다.

 

덤프를 뜰때는 dumpfiles 플러그인을 사용하고, 

 

-Q 옵션으로 파일을 지정해준다. filescan 에서 확인한 16진수 값을 넣어주면 된다.

 

-D 옵션은 Output 을 저장할 경로를 지정해주는 역할을 한다.

 

 

덤프를 뜨면 이렇게 .dat 파일이 생성된다.

 

 

.docm 파일이므로 확장자를 .zip 으로 바꾸면 압축을 풀 수 있다.

 

 

압축을 풀고, 해당 폴더 안에있는 word 폴더로 들어가면

 

vbaProject.bin 파일이 보인다.

 

여기에 macro 정보가 들어있다.

 

 

cat 명령어를 이용해 해당 파일의 내용을 확인해보면

 

중간에 웹페이지 주소처럼 보이는게 눈에 띈다.

 

http://192.168.0.19:8080/BenNon.prox

 

아마 이 주소가 피해자가 자주 접속하는 홈페이지 주소인듯 하다.

 

 

인터넷 사용 흔적에 의미있는 데이터가 있는지

 

확인하기 위해 iehistory 플러그인을 이용했다.

 

 

출력된 결과를 보니 PID 가 3388인 iexplore.exe 에서

 

해당 웹 페이지를 방문한 듯하다.

 

 

해당 프로세스를 자세히 살펴보기 위해 memdunp 플러그인을 이용했다.

 

-p 옵션으로 PID 를 지정해주면 해당 프로세스를 덤프할 수 있다.

 

 

그럼 이렇게 3388.dmp 파일이 생성된다.

 

 

해당 파일을 strings 명령어를 이용해 내용을 확인해 보면

 

중간에 FindProxyForURL 함수의 실행흔적이 보이는데

 

거기에 192.168.0.19:8080 주소가 특정 도메인으로 연결되어있는것을 볼 수 있다.

 

해당 주소를 제출하면 점수를 획득할 수 있다.

반응형