워게임 포렌식 #08 (Digital Forensics - Command & Control - level 2)

만두다섯개·2024년 1월 20일
0

포렌식 워게임

목록 보기
9/11

문제 출처 https://www.root-me.org/en/Challenges/Forensic/Command-Control-level-2

1. CASE 제시

메모리 덤프 분석 전 바이러스 백신 로그를 확인하려고 시도했으나 워크스테이션의 호스트 이름을 분실했다.
메모리 덤프로부터 호스트 이름을 찾아주세요.

힌트 : VOLATILITY CHEATSHEET 파일
문제 파일 : ch2.dmp 파일


압축해제하면 아래와 같은 메모리 dump 파일이 나온다.

2. CASE 접근

메모리 덤프로부터 호스트 이름을 획득해야 한다.
메모리 덤프(어떤 장비인지 모름) 주체 장비의 호스트 이름을 찾으면 된다.
즉, 특정 장비에서 생성된 메모리 덤프의 호스트 이름을 찾아야 한다.

호스트 이름이란? 네트워크에 연결된 장치(컴퓨터, 파일 서버, 복사기, 케이블 모뎀 등)들에게 부여되는 고유한 이름

아래 사진은 윈도우 OS의 명령어 프롬프트 창에서 호스트 이름을 확인한 결과이다.

주어진 문제는 메모리 덤프 파일로부터 호스트네임을 질의하고 있다.

  1. 메모리 덤프 프로파일 확인
    메모리 덤프 프로파일을 volatility 2.6을 사용해 탐색한다.
  • 사용 명령어 : volatility_2.6_win64_standalone.exe -f ch2.dmp imageinfo
  • 확인한 프로파일 : Win7SP1x86_23418

윈도우7 OS의 메모리 덤프 파일임을 확인 가능하다.

윈도우 OS 메모리 덤프 파일로부터 호스트이름을 탐색해야 한다.
프로세스의 환경변수 중, "COMPUTERNAME"항목이 호스트네임이다.
따라서, 메모리 덤프 파일에서 프로세스의 환경변수를 검색하고, 이 중, "COMPUTERNAME"을 검색하면, 호스트 이름을 찾아낼 수 있다.

  1. 프로세스 환경 변수 확인
    환경 변수는 프로그램 동작 제어, 설정 시 사용된다. 프로세스가 실행 시 OS로부터 받는 환경 설정 정보이다.
    envars 명령어를 사용해 주어진 덤프파일의 프로세스 환경변수 중, "COMPUTERNAME"가 존재하는 값을 출력한다.
  • 사용 명령어 : volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP1x86_23418 envars | find "COMPUTERNAME"
  • 명령어 사용 옵션
    - envars : 프로세스의 환경변수를 보여준다. (Display process environment variables)
    - find "COMPUTERNAME" : envars 명령어 실행 결과로부터 COMPUTERNAME을 찾는다.

services.exe 프로세스는 서비스 관리자로써, 서비스의 시작, 중지

3. CASE 해결

획득한 COMPUTERNAME을 호스트이름으로써 플래그를 입력한다.

4. 피드백

  1. volatility 2.6 envars 명령어 세부
  • envars 명령어 수행 결과
    • pid : 프로세스 ID, 프로세스 식별자
    • process : 프로세스 이름 또는 실행 파일
    • block : 프로세스 환경 변수 저장하는 메모리 블록 주소.
    • variable : 환경 변수 이름
    • value : variable가 가진 값
  1. printkey 는 명령어의 경로를 사용해 접근해야 한다.
    문제에서는 주어진 keypath 경로가 존재하지 않아 해당 명령어 사용 어려웠음.
  1. 호스트 이름이란?
    COMPUTERNAME은 WINDOW OS에서 사용되는 환경 변수 중 하나로 현재 시스템 컴퓨터 이름을 나타낸다.
    만약 문제에서 식별한 Profile이 리눅스 또는 MAC OS등 유닉스 기반 시스템이였다면, "COMPUTERNAME" 대신 "HOSTNAME"을 사용한다.
    즉, 아래와 같은 명령어로 프로세스 환경변수를 검색해야 문제에서 원하는 호스트 이름을 획득했을 것이다

    volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=MACOS envars | find "HOSTNAME"

profile
磨斧爲針

0개의 댓글