본문 바로가기
Digital Forensic/디지털포렌식 with CTF

[DigitalForensic with CTF] GrrCON 2015 #7(7)

by Study Ground 2021. 12. 7.

7번 문제는 맬웨어의 고유 이름을 찾는 문제이다.

이번 문제는 https://eforensicsmag.com/finding-advanced-malware-using-volatility/를 참고하면 좋을 것 같다.

 

이번엔 volatility를 사용하면서 'handles' 플러그인을 이용할 것인데, 그전에 핸들이 무엇을 의미하는지 알 필요가 있다.


핸들(Handle)은 프로세스 정보 중 하나로 커널이 관리하는 오브젝트들에 할당되는 유일한 '값'으로서, 프로세스 생성 시 필요한 자원에 대한 사용 요청을 할 때 사용하는 값이다. 핸들에는 파일, 디렉터리, 포트, 스레드, 세마포어 등이 포함되고, 하나의 프로세스에 여러 개의 핸들을 가지고 있는 것이 일반적이다.

 

 

출처: https://ziscuffine.tistory.com/75


volatility로 handles 명령을 실행하면 Type 항목에 'Directory', 'File', 'Key', 'Mutant'.. 등등이 있는 것을 볼 수 있는데, 여기서 우리는 'Mutant'에 주목할 필요가 있다.

 

https://velociraptor.velocidex.com/hunting-malware-using-mutants-ea08e86dfc19에 따르면 악성 프로그램은 단 하나의 악성 프로그램 복사본만 실행되게끔 함으로써 동일한 기기가 재감염되지 않도록 하기 위해 named mutant를 이용한다고 한다. 맨 처음에 문제에서 '고유한 이름을 사용해서 복사본 하나만 실행'이라고 언급되어있는데, 그렇다면 이번 문제는 mutant 관련해 정보를 찾아야 할 것 같다.

 

앞서 실행한 handles 명령어 뒤에 -t Mutant를 덧붙여서 뮤턴트 형식만 검색되도록 명령을 실행하였다. 출력된 결과 중 Details항목에 여러 단어들이 나와있는데, 가장 맨위에 있는 'RaspbFile'부터 flag로 제출해갔다.

 

이를 fsociety0.dat을 제출하니 정답이었다.