[DH] 포렌식 Lv.1 모음

권한·2026년 3월 2일

WAR GAME

목록 보기
2/2

아는게 없는 상태에서 타플랫폼의 문제를 몇개 풀다가 근자감이 솟아나서 풀이 많은 순으로 풀어보았다.

Basic_Forensics_1 (0302)

사진을 하나 주는데, 이미지 파일 안에 히든 메세지가 있다고 한다.
HxD를 켜서 시그니처를 확인해 보았다.
별 문제 없어보인다.

그럼 뭐지? 해서보니, 다른 분이 아래에 작성하신 Q&A에 스테가노그래피를 방향으로 잡아보라고 하신다.
방금 방법도 스테가노그래피일텐데... 다른 툴을 써야하는건가?했다.
마침 찾다가 나온 스테가노그래피 해독 사이트가 있어서 이미지를 먹여주니 플래그가 얻어진다.

Snowing! (0305)

혹시나 앞 문제와 같을까? 해서 스테가노그래피를 우선 돌려봤다. 이 접근은 아닌듯
HxD로 일단 읽어준다.
이미지 파일은 jpeg형식인데 헤더시그니처는 FF D8 FF E0 혹은 FF D8 FF E8, 푸터시그니처는 FF D9이다.
아래는 각각 헤드, 푸터 시그니처 확인 결과이다.
잘 있는 것을 확인했다.
이로써 알고 있는 방법은 모두 소진했다. 뭘 해야하지?...

같이 있던 flag.txt파일은 어디다 쓰는걸까
fake flag가 들어있는 듯 한데, 수상하게 Enter가 많이 쳐져있다. 원래 이런가 해서 메모장에서 새파일을 만들어봤는다. 역시 아니다.
그럼 이 파일에 뭔가 있을 수도 있겠다.

HxD에서 파일을 열어보니 Decoded text에서 눈이 내린다.
문제 설명에 있던 상황이 이걸 의미하는 것이었을까?

0x20 0x09 0x0A가 많이 보인다. 공백, TAB, LF(개행)이다.
하지만 모르겠는건 여전하다. .....

구글링 해보니 whitespace steganography라는 유형의 문제인 듯 하다.
이 스테가노그래피를 풀기 위한 SNOW라는 툴을 다운받아준다.

쓰는 방법은 위와 같다.
#아니근데이거왜안되는거에요

어찌저찌 성공
Download폴더에서 다운받은 폴더 안에 그대로 뒀는데 이거 때문인가?... 실행파일을 Download폴더로 이동시키고 실행해줬는데 잘 되네묘..

💡 윈도우 cmd에서는 폴더 경로를 구분할 경우 역슬래시(\)를 사용.
커맨드에서 폴더 경로는 윈도우OS가 해석하기 때문에 앞부분에 오는 경로는 '\'를 써야한다.
반면 내부옵션의 경우 프로그램(여기선 SNOW.EXE)이 해석하기에 프로그램에서 정해진 방법으로 사용하면 된다.

Windows Search (0306)

윈도우 서치라는 문제. 문제 파일을 다운받으면 Windows.edb파일을 준다.

edb

WinSearchDBAnalyzer이라는 프로그램을 받아주고 Windows.edb파일을 open해준다.
선택하면 시간을 고르라고 나오는데, Incheon은 +9에 위치한다.
ALL파일을 열어서 파일명순으로 정렬하면 flag.txt를 찾을 수 있다.

lolololologfile (0306)

누군가가 flag가 담긴 pdf파일을 삭제했다. 복구할 수 있을까? 가 문제다. 문제 파일로는 Image.E01 이라는 것을 준다.

E01 파일이 무엇인지부터 알아보자. E01은 포렌식에서 가장 범용적으로 쓰이는 포맷으로 저장 매체를 이미징 할 때 사용하는 표준 포맷이다. 압축을 지원하기에 파일크기를 줄일 수 있다. 확장자가 E01이 아니라 E02, E03으로 늘어나면서 저장되는 포맷이다.

디스크 이미지 파일이라는 것 같으니 FTK Imager로 열 수 있지 않을까?
마운트하면 이런 디렉토리가 열린다.

File - Add Evidence Item 에서 logical Drive을 선택하면 해당 드라이브를 열 수 있다.
root 디렉토리에서 파일들을 하나씩 클릭하다 보면 seg1, 2, 3, 4파일이 있는데 이 파일들은 클릭해도 정보가 뜨지 않는다. 얘네들이 삭제된 파일인가?

삭제된 파일 복구에 대해 찾아봅시다~

삭제된 파일을 우클릭하여 Export Files. Export Results가 0인 경우 복원에 실패한 것.

엥... 이게끝?
그럴리 없지! 어김없이 실패했나보다.
Evidence Tree에 unallocated space라는 디렉토리가 있어서 구글링해보았다.
할당되지 않은 공간. 즉, 사용하지 않는 공간으로 윈도우 디스크 관리에서 '할당되지 않음' 공간으로 파일이 덮어쓰기가 되기 이전까지 복구할 수 있는 공간이다. https://threat.media/definition/what-is-unallocated-space/

PDF파일이 하나 있는 것을 확인했다. 파일을 추출해주자.
아 HxD - 도구 - 연결로 복구를 했는데 문서를 로드라지 못했다고 뜬다...

unallocated space의 파일 전체를 추출하고 연결하면서 순서를 맞추었더니 드디어 열렸다.

00 으로만 데이터가 이루어진 06615, 17130, 42730은 추출하지 않아도 무방하다.

❓ 00 으로만 이루어진 파일이 왜 이렇게 큰건지 생각해 보았다. 가장큰 170130 파일을 HxD로 열면 063FFFF0이 마지막 주소인데 이를 10진수로 변환하면 104857584바이트이다. 마지막줄의 16바이트를 더하면 104857600바이트가 된다.

FFFFAAAATTT (0307)

HxD로 우선 다운받은 파일을 열어보았다. 초심자인 나에겐 너무 가혹하다!... 디스크를 고치라고 한다.
확장자 없는 파일 하나만 딸랑 있어서 도저히 감이 안왔기에 Q&A게시판을 좀 훔쳐봤다. FAT이라는 파일 시스템이 존재하나보다.
FAT에 대해 정리해두었다

스크롤 하다보니 FAT32라는 글자를 찾을 수 있었다.
이런 메시지도 있었다.

FAT32의 백업본은 6번 섹터에 존재한다.
헤더가 남아있는 것을
0번 섹터에 덮어씌워주고, FTK Imager로 열어줬다.

noway!라는 zip파일에 플래그가 있는 것을 확인할 수 있다.
압축파일과 함께 있는 이미지들을 보니 GG.PNG파일 하나만 열리지 않는다.
이럴땐 뭐다? HxD다~
뭔가 더 있을 줄 알았는데 그냥 냅다 PW 알려준다.
파일 두 개 중 하나는 훼이크였다. 함께 있는 다른 파일을 열어보면 flag를 얻을 수 있다.

Grand Theft Auto (0309)

2주전에 학교에서 VECTOR사에서 진행하는 특강을 들을 기회가 있었다. 자동차 해킹에도 관심이 있었기에 냉큼 갔다. CAN통신과 CALF에 대해 강의해주셨는데, 문제에도 CAN통신이 나오는 듯 해서 괜히 반가웠다.

힌트라고 준 링크에 접속하여 읽어보던 도중 문제의 txt파일에서 보았던 F1 90이 보였다. VIN 데이터 식별자라고, 읽기 서비스에서 차량 제조업체의 특정ECU 하드웨어의 번호를 참조하는데 사용된다. 차량 제조업체마다 다르다.

VIN(Vehicle Infomation Number) : 차대 번호
전세계 공통 17자리. 제작연도, 차종, 생산공장, 배기량 등의 정보가 담겨있다.

  • can0은 채널. CAN인터페이스의 이름이다.
  • 7E0, 7E8은 각각 CAN ID. '어디에서 보냈는지'가 되겠다.
  • [8]은 데이터 길이. 8byte

여길 참고했다
1. can0 7E0 [8] 03 22 F1 90 00 00 00 00

  • 0x03 : 0 -> 나는 싱글 데이터다. 3 -> 3바이트의 유효데이터가 뒤에 온다 예고
  • 0x22 : RDBI서비스. 데이터를 읽겠다는 요청
  • 0xF190 : VIN
  1. can0 7E8 [8] 10 14 62 F1 90 57 44 44
  • 0x1014 : 0x10 -> 지금부터 긴 데이터를 보낼거다. 이건 First Frame이다. 0x14 -> 20byte보낼거다.
  • 0xF190 : VIN
  • 57 44 44 : 데이터. VIN 17자리중 3자리 차지. 남은 받아야 할 데이터는 15byte
  1. can0 7E0 [8] 30 00 00 00 00 00 00 00
  • 0x30 : 3 -> 흐름제어. 0 -> 마저 데이터를 보내라
  • '00 00' : 각각 한꺼번에 다 보내라, 지연시간 없이 최대한 발리 보내라
  1. can0 7E8 [8] 21 48 46 35 47 42 35 42
  • 21 : 데이터의 순서
  • 나머지 : 데이터
  1. can0 7E8 [8] 22 41 32 37 30 38 36 36
  • 22 : 데이터의 순서
  • 나머지 : 데이터

데이터의 순서
연속 프레임에 대한 약속. 21에서 앞자리(2)는 이전에 보낸 First Frame에 이어지는 조각임을 뜻한다. 뒷자리(1)은 순서 번호이다. 21, 22, ... 2F, 20... 순환한다.

따라서 데이터를 조합해보면 57 44 44 48 46 35 47 42 35 42 41 32 37 30 38 36 36이 VIN이 된다.
여기서 차량을 조회할 수 있다

Steg-Pack (0312)

가짜 flag를 피해서 진짜 flag를 찾으라고 한다. HxD를 이용해 먼저 파일을 열어보자. png의 헤더 시그니처다. 푸터 시그니처 뒤에 뭔가 있는 것을 확인할 수 있다. pass = 99999 뭔가 쓰일 수 있을지도. 쭉 내리다가 이런 것을 발견했다. 뒷 부분을 어떻게 하며 flag를 찾을 수 있을 것 같다. 50 4B 03 04 는 ZIP파일의 헤더 시그니처다. 푸터 시그니처 뒤에도 뭔가 있는데... 일단 zip파일부터 생성하여 해제해보자.
flag는 Pictures 아래에 있는 듯 하다. flag를 획득할 수 있다.

푸터 시그니처 부분까지만 복사하여 ZIP파일을 생성하니, 압축해제했을 때 바로 flag가 위치한 Pictures에서 열린다. 뒷부분은 무슨 역할을 하는거지?...

zip 파일 구조

Audio Steganography (0313)

WAV 파일을 재생해보면 신호하는 듯한 알 수 없는 소리가 재생된다.
Audacity를 이용해 wav파일을 열어주고 스펙트로그램을 해주면 플래그를 얻을 수 있다.

profile
티스토리로 옮김

0개의 댓글