본문 바로가기

2026 - 1

4주차 윈도우 과제[SuNaNiTaS Forensics 30]

 

이 문제는 메모리 덤프에서 운영체제 프로파일을 잡고, 네트워크 정보와 명령 기록을 추적한 뒤, 파일을 복구해서 최종 키를 찾는 방식으로 풀 수 있다.

 

이 문제는 해킹당한 PC의 메모리 덤프 파일이 주어지고, 여기서 김장군 PC의 IP 주소와 해커가 열람한 기밀문서, 그리고 그 문서 안의 Key 값을 찾아야 하는 문제였다. 메모리 포렌식은 일반적인 파일 분석과 달리, 실행 중이던 흔적이 메모리에 남아 있다는 점을 이용해 사건의 흐름을 재구성해야 한다. 그래서 처음부터 파일 내용만 보려 하기보다, 먼저 시스템 환경과 사용자 행동을 추적하는 순서로 접근했다.

 

메모리 분석의 첫 단계는 해당 덤프가 어떤 운영체제에서 생성되었는지 확인하는 것이다. 운영체제와 비트 수에 따라 사용할 수 있는 Volatility 플러그인 결과가 달라지기 때문에, 이 과정을 건너뛰면 이후 분석이 잘못될 수 있다. 그래서 먼저 imageinfo로 프로파일 후보를 확인한 뒤, 적절한 프로파일을 지정해 분석을 이어갔다. 이 문제에서는 Win7SP1x86 프로파일을 사용하는 것이 맞았다.

 

그다음에는 네트워크 정보를 확인했다. 메모리 안에는 현재 연결된 네트워크 세션과 소켓 정보가 남아 있기 때문에, netscan을 보면 해당 PC의 IP 주소를 찾을 수 있다. 이 단계는 단순히 주소 하나를 알아내는 작업이 아니라, 분석 대상이 되는 시스템을 식별하는 과정이다. 실제로 netscan 결과에서 김장군 PC의 IP는 192.168.197.138로 확인되었다.

 

IP를 확인한 다음에는 해커가 어떤 파일을 열람했는지 찾는 단계로 넘어갔다. 이때는 실행된 프로그램과 명령 기록을 같이 보는 것이 효율적이라고 한다. 특히 기밀문서를 열어본 상황이라면 보통 문서를 열 수 있는 프로그램, 예를 들어 메모장 같은 응용프로그램이 실행되었을 가능성이 높다고 한다.

 

그래서 cmdscan을 이용해 명령 프롬프트에서 어떤 명령이 실행되었는지 확인했다. 이 방식은 사용자가 실제로 입력한 명령을 복원하는 데 유용하다. 확인 결과, 해커가 notepad를 실행했고, 그 과정에서 SecretDocumen7.txt 파일을 열어본 흔적이 보였다. 이 시점에서 파일명이 거의 특정되었다고 볼 수 있다. 왜냐하면 문제의 핵심이 기밀문서의 내용이기 때문에, 명령 기록에 등장한 파일명이 가장 직접적인 단서가 되기 때문이다.

 

파일명을 찾았다고 바로 끝나는 것은 아니다. 메모리 포렌식에서는 파일이 실제로 어디에 남아 있는지 찾아서 복구해야 한다. 그래서 filescan으로 SecretDocumen7.txt와 관련된 메모리 위치를 찾았다. 파일이 메모리 상에 존재하는 주소를 알아야 dumpfiles로 내용을 추출할 수 있기 때문이다. 이 단계는 단순 검색이 아니라, “파일 이름”을 “복구 가능한 메모리 객체”로 바꾸는 과정이라고 보면 된다.

 

이제 찾은 메모리 주소를 이용해 dumpfiles로 파일을 추출했다. 메모리 덤프에서 파일을 복구하는 이유는, 화면에 보이는 파일명만으로는 정답을 얻을 수 없고 실제 파일 내용을 읽어야 하기 때문이다. 복구된 파일을 DB으로 열어보면 문서 안에 문제에서 요구하는 Key 값이 들어 있다. 이 문제에서는 키 값이 4rmy_4irforce_N4vy였다.

 

IP 주소 192.168.197.138, 문서명 SecretDocumen7.txt, Key 값 4rmy_4irforce_N4vy 이므로 3개를 다 합치고 소문다 MD5 로 변환하면

 


 

간스 정리용

1. 메모리 포렌식이 뭔지

메모리 포렌식은 RAM에 남아 있는 휘발성 데이터를 분석하는 기법이다. 디스크처럼 오래 남는 정보가 아니라, 실행 중인 프로세스, 네트워크 연결, 사용자 활동 흔적, 명령 기록 같은 정보가 남아 있어서 사건 당시의 상황을 복원하는 데 유리하다.

 

이 유형 문제에서는 “누가 무엇을 열었는지”, “어떤 PC였는지”, “어떤 명령을 썼는지”를 메모리에서 추적한다. 그래서 단순 파일 분석보다 행동 추적에 가깝다고 이해하면 된다.

 

2. Volatility 기본 흐름

Volatility는 메모리 덤프를 분석하는 대표 도구다. 보통은 먼저 imageinfo로 메모리 이미지의 프로파일을 추정하고, 그다음 pslist, netscan, cmdscan, filescan 같은 플러그인을 순서대로 사용한다.

기본 흐름은 다음처럼 잡으면 된다.

  1. imageinfo로 프로파일 확인.
  2. pslist로 실행 중이던 프로세스 확인.
  3. netscan으로 IP와 연결 정보 확인.
  4. cmdscan으로 명령 프롬프트 기록 확인.
  5. filescan으로 파일 객체 탐색.
  6. dumpfiles로 파일 복구.

3. 자주 쓰는 플러그인

이 문제 계열에서 특히 자주 쓰는 플러그인은 imageinfo, pslist, netscan, cmdscan, cmdline, filescan, dumpfiles다. imageinfo는 어떤 프로파일로 봐야 하는지 정하는 출발점이고, netscan은 네트워크 정보, cmdscan과 cmdline은 사용자의 실행 흔적, filescan과 dumpfiles는 파일 복구에 쓰인다.

 

filescan은 파일 이름을 찾는 데 유용하고, findstr로 원하는 문자열을 걸러서 보면 편하다. 실제로 이런 문제는 파일이 너무 많기 때문에, 특이한 이름이나 의심스러운 문자열로 먼저 좁히는 게 중요하다.

 

4. 이번 문제에서 필요한 사고방식

이 문제는 “정답 파일을 바로 찾는 문제”가 아니라, 흔적을 따라가면서 정답에 도달하는 문제다. 그래서 먼저 시스템 정보를 잡고, 네트워크에서 IP를 확인한 뒤, 명령 기록으로 사용자가 뭘 했는지 보고, 마지막으로 파일을 복구하는 순서가 자연스럽다.

 

즉, 질문이 “어떤 파일이 열렸는가?”라면 바로 파일만 보는 게 아니라, 그 파일이 왜 의심되는지 설명할 수 있어야 한다. 질문이 “IP가 뭐냐?”면 netscan에서 어떤 연결이 근거인지 말할 수 있어야 한다. 이런 식으로 증거 → 해석 → 결론 구조를 익히는 게 핵심이다.

 

  • 메모리 포렌식 개념 이해.
  • Volatility 설치와 기본 실행법 익히기.
  • imageinfo, pslist, netscan, cmdscan, filescan 결과 해석하기.
  • 파일 복구(dumpfiles) 연습하기.
  • Windows 아티팩트와 연결해서 보기.