Dreamhack/Dreamhack Wargame (Challenge)

[91] IT 비전공자 [dreamhack]Windows Search문제 풀기

imaginefuture-1 2024. 12. 9. 08:17

윈도우 서칭..?
이게..무슨 파일이죠?

 

 

EDB 파일은 다양한 소프트웨어와 애플리케이션에서 사용되는 데이터베이스 파일 형식 중 하나입니다. "EDB"는 일반적으로 "Extensible Database" 또는 특정 프로그램에서 사용하는 고유 데이터베이스 형식을 나타냅니다. 이 파일은 구조화된 데이터를 저장하는 데 사용되며, 특정 소프트웨어에서만 읽거나 수정할 수 있습니다.


1. EDB 파일의 주요 사용 사례

(1) Microsoft Exchange Database File

  • 설명:
    • Microsoft Exchange Server에서 메일, 연락처, 일정 등을 저장하는 데 사용되는 데이터베이스 파일.
    • 이메일 및 관련 데이터를 효율적으로 관리하기 위해 설계됨.
  • 파일 위치:
    • 기본적으로 C:\Program Files\Microsoft\Exchange Server 디렉토리에 저장됨.
  • 관련 파일:
    • .edb 외에도 .stm, .log와 같은 로그 및 스트리밍 파일과 함께 작동.

(2) Windows Search Index File

  • 설명:
    • Windows 운영 체제에서 검색 인덱싱 데이터를 저장하는 데 사용.
    • Windows Search가 파일 및 내용의 인덱스를 생성하여 빠른 검색을 지원.
  • 파일 위치:
    • 일반적으로 C:\ProgramData\Microsoft\Search\Data\Applications\Windows\ 디렉토리에 저장됨.
  • 작동 원리:
    • 파일 이름, 경로, 내용 등의 정보를 인덱싱하여 검색 속도를 최적화.

(3) Active Directory EDB File

  • 설명:
    • Active Directory의 데이터베이스 파일로, 도메인 컨트롤러의 사용자 계정, 그룹, 정책 등의 정보를 저장.
  • 파일 위치:
    • 기본적으로 %SystemRoot%\NTDS\ntds.dit에 저장됨.
  • 작동 원리:
    • Active Directory는 ntds.dit라는 EDB 파일을 사용해 디렉터리 데이터를 관리.

(4) 기타 소프트웨어

  • 일부 데이터베이스 관리 시스템 또는 특정 애플리케이션에서 커스텀 데이터 저장 형식으로 EDB 파일을 사용.

2. EDB 파일의 특징

  • 고성능 데이터 관리:
    • 대규모 데이터를 효율적으로 저장하고 검색하기 위한 구조.
  • 프로그램 의존성:
    • 특정 소프트웨어에서만 읽고 쓸 수 있는 경우가 많음.
    • 예: Exchange EDB 파일은 Eseutil이나 ExMerge 같은 Microsoft 전용 도구로만 관리 가능.
  • 바이너리 파일:
    • 사람이 직접 읽을 수 없는 바이너리 형식으로 저장됨.

3. EDB 파일의 문제점 및 관리

  • 손상 가능성:
    • Exchange Server의 EDB 파일은 크기와 복잡성 때문에 손상될 가능성이 있음.
    • 복구 도구(Eseutil 등)를 사용해야 복구 가능.
  • 백업 중요성:
    • Active Directory 및 이메일 데이터베이스처럼 중요한 데이터를 저장하는 경우 정기적인 백업이 필수.
  • 크기 문제:
    • Windows Search Index EDB 파일은 시간이 지나면 크기가 커질 수 있음.
    • 필요 시 인덱스를 재설정하거나 삭제하여 디스크 공간 확보 가능.

4. EDB 파일 열기 및 복구 방법

(1) Exchange EDB 파일:

  • Eseutil 명령어 사용:
    eseutil /p <edb파일경로>
    
  • 또는 Stellar Repair for Exchange 같은 타사 복구 도구 사용.

(2) Windows Search EDB 파일:

  • 파일 손상 시 인덱스 재생성:
    1. Windows 설정 → 검색 → 인덱싱 옵션.
    2. "고급 옵션" 클릭 → "인덱스 다시 작성" 선택.

(3) Active Directory EDB 파일:

  • 복구 명령:
    ntdsutil
    

5. 주의사항

  • EDB 파일은 민감한 데이터를 포함할 가능성이 높으므로, 백업 및 복구 작업 시 보안에 유의해야 합니다.
  • 특정 소프트웨어의 기능을 사용해야 하며, 일반적인 텍스트 편집기로 열 수 없습니다.

결론

EDB 파일은 다양한 시스템에서 데이터베이스로 사용되는 고성능 파일 형식입니다. Microsoft Exchange, Windows Search, Active Directory 같은 환경에서 특히 많이 사용되며, 파일의 수정 또는 복구는 반드시 해당 시스템에 맞는 도구를 사용해야 안전하고 효율적으로 작업할 수 있습니다.

 


 

 

요걸 포렌식해서 flag 찾아야한다는데 어떻게 해?
 

 

 

 

 

 

 

 

 

EDB 파일을 포렌식 분석하여 flag를 찾으려면 파일의 특성과 분석 도구를 고려한 체계적인 접근이 필요합니다. 아래는 단계별로 설명한 포렌식 분석 프로세스입니다.


1. 사전 준비

  1. 분석 환경 구축:
    • 파일을 분석할 안전한 환경(예: 가상 머신)을 준비.
    • Forensic-specific OS(예: Kali Linux, Parrot OS) 또는 윈도우 기반 분석 도구 사용.
  2. 필요 도구 설치:
    • Exchange EDB 분석:
      • Eseutil (Microsoft 전용 도구): Exchange EDB 파일 복구.
      • EDB Viewer 또는 Stellar Repair for Exchange: 파일 내용 확인.
    • Windows Search EDB 분석:
      • Windows 자체 도구로 복구하거나, SQLite 브라우저로 데이터베이스 확인.
    • Active Directory EDB 분석:
      • NTDSXtractdsusers.py: 데이터베이스에서 계정 정보 추출.
      • Impacket: 도메인 데이터 분석.
    • Hex Editors:
      • HxD 또는 010 Editor: 바이너리 파일 탐색.
    • 검색 및 문자열 추출 도구:
      • strings (리눅스 기본 명령) 또는 grep.
  3. 파일 복사 및 무결성 유지:
    • 원본 파일을 보호하기 위해 사본을 생성하고 해시값(MD5, SHA1) 기록.

2. EDB 파일 분석 방법

(1) EDB 파일 식별

  • 파일이 어떤 용도인지 확인 (Exchange, Windows Search, Active Directory).
  • 파일 크기와 위치를 통해 EDB 유형을 추정:
    • Exchange: 수십 MB~GB 단위, 이메일 데이터.
    • Windows Search: 수 MB~GB, 파일 인덱스 데이터.
    • Active Directory: NTDS 데이터베이스.

(2) 1차 데이터 추출

  • strings 명령 사용 (EDB에서 문자열 추출):
    strings <edb파일경로> | grep -i "flag"
    
    • grep으로 "flag" 키워드를 찾거나 다른 힌트가 될 만한 문자열 검색.
  • 추출된 문자열에서 흥미로운 데이터(암호, 계정 이름, 키워드)를 분석.

(3) Exchange EDB 파일

  • Eseutil로 복구:
    • EDB 파일을 복구하여 데이터베이스를 읽을 수 있게 함:
      eseutil /p <edb파일경로>
      
  • EDB Viewer 사용:
    • GUI를 통해 데이터베이스 탐색 및 이메일 검색.
  • 검색 대상:
    • 이메일 본문, 첨부 파일, 메타데이터에서 플래그 키워드 찾기.

(4) Windows Search EDB 파일

  • SQLite 브라우저 사용:
    • EDB 파일이 SQLite 기반이라면 DB Browser for SQLite로 열어서 내용 확인.
  • 재인덱싱 또는 데이터 추출:
    • Windows 시스템에서 복구:
      Get-Content <edb파일경로>
      
    • 인덱스 데이터에서 숨겨진 텍스트 또는 키워드 탐색.

(5) Active Directory EDB 파일

  • NTDSXtract로 데이터베이스 추출:
    • 사용자 계정 및 해시 데이터 추출:
      python dsusers.py -e /path/to/ntds.dit -s /path/to/boot/system
      
  • Impacket 사용:
    • 암호화된 데이터에서 패턴 검색 및 복호화.
  • 검색 대상:
    • 사용자 속성(예: 주석, 그룹 이름, 정책 등)에서 플래그 찾기.

(6) Hex Editor 분석

  • HxD 또는 010 Editor로 열기:
    • 바이너리 데이터를 직접 탐색.
    • "FLAG", "key", 또는 특정 패턴 검색:
      • Ctrl+F → "Text string" 검색.
  • 특정 위치에서 문자열과 메타데이터 분석.

3. 결과 분석

  • 로그와 메타데이터 확인:
    • 파일 생성/수정 시간, 관련 시스템 이벤트 분석.
    • 메타데이터에서 힌트를 얻을 수 있음.
  • 추출 데이터 디코딩:
    • base64, XOR, ROT13 등의 간단한 인코딩이 사용되었을 수 있으므로 디코딩 시도.
    • 플래그 형식 예:
      • FLAG{example} 또는 key:12345.

4. 추가 팁

  • 도구 조합 사용:
    • 한 가지 도구로 해결되지 않는 경우 다른 분석 도구를 조합.
  • 시스템 환경 재현:
    • 원래 파일이 작동하던 환경을 재현(가상 환경 사용)하면 데이터를 더 쉽게 복구할 수 있음.
  • 의심 데이터 집중 탐구:
    • 의미 있는 문자열, 주석, 파일 내부 숨겨진 필드에서 플래그를 찾음.

결론

EDB 파일에서 플래그를 찾기 위해서는 파일 유형을 파악하고 적합한 도구를 사용해 데이터베이스 구조를 분석해야 합니다. strings, hex editor, 그리고 데이터베이스 뷰어 등의 도구를 활용해 숨겨진 정보를 찾고, 패턴 분석과 디코딩 과정을 통해 플래그를 추출하세요.

 

 


 

 

 

흐음.....(1분 고민함)

풀이글 보러가자! 포렌식은 무조건 풀이글 보고 참고해야함 ㅋㅋ도구를 하나도 모르니까..

 

 

https://hackhijack64.tistory.com/94#google_vignette

 

 

https://github.com/moaistory/WinSearchDBAnalyzer

 

 

 

WinSearchDBAnalyzer Tool 사용할 경우, 시스템 내의 파일 정보와 구조를 확인가능하다

 

 

 

 

찾으러 가보자!!

 

 

edb 파일을 열어보자. 참고로 winserchdbanalyzer.exe를 debu폴더가 아닌 release에서 열면 오류가 있을 수 있다한다
한국 시간으로 맞춰준다

 

 

 

 

업로드 중

 

 

user->Desktp->flag.txt파일 발견

 

짜자잔 플래급니다~