공부/포렌식 (Forensics)

[xcz.kr | Forensics] Prob35 write up

eunjuu 2023. 11. 23. 16:17
728x90

👾 Description

해커그룹 'XCZ' 에서는 데이터를 전송할 때 파일이 외부로 유출되더라도 볼 수 없게 숨겨놨다고 한다.
아래의 파일에서 숨겨져 있는 파일을 찾아라.
HINT 1 : RAR 패스워드 브루트포싱 문제가 아닙니다.

 


 

먼저 문제를 다운로드한다.

 

 

문제에서 다운받은 format_it.zip 파일의 압축을 풀어봤는데, ‘flag.rar’은 다운로드에 성공했으나 어떤 파일 하나는 압축 풀기에 실패했다.

→ 압축 파일 안에 두 개의 파일이 존재하는 것을 알 수 있다.

 

🍳 zip 파일의 구조

 

ZIP파일은 크게 Local File HeaderCentral Directory, 그리고 End of central directory record로 나뉜다.

참고 링크 : https://dokhakdubini.tistory.com/401

 

[FORENSIC] ZIP 파일헤더 및 분석방법

ZIP FILE HEADER 워게임 문제를 풀다가 만나게 되었는데 생각보다 정리할 부분이 많은 것 같아서 글로 작성합니다. 0. ZIP파일이란? 너무 일상생활에서 많이 쓰여서 다들 알고있는 내용이지만, 위키에

dokhakdubini.tistory.com

 

Local File Header Signature 50 4B 03 04 (4bytes)
Central Directory Signature 50 4B 01 02 (4bytes)
End of central directory record Signature 50 4B 05 06 (4bytes)

 

zip 파일 구조를 파악하기 위해 HxD를 이용하겠다.

두 개의 파일이 존재하기 때문에, local header 2개, central header 2개, footer 1개가 있어야 한다.

  • local header의 hex 값 : 50 4B 03 04
  • central header 의 hex 값 : 50 4B 01 02
  • footer의 hex 값 : 50 4B 05 06

 

 

50 4B 03 04

→ local header 1 (정체 모를 파일)

 

 

50 4B 03 04

→ local header 2 (flag.rar)

 

 

50 4B 01 02

→ central header 2 (flag.rar)

 

 

40 4B 05 06

→ footer

 

central header 1의 hex 값이 존재하지 않는 것을 확인할 수 있다. 그래서 파일 압축 풀기에 실패한 것으로 추정된다.

central header 1 값을 넣어주면 압축 파일이 완성된다.

central header 1을 채우기 위해 먼저 local header 1을 살펴보겠다.

 

참고링크 : https://bing-su-b.tistory.com/81

 

[xcz.kr #35] ZIP - 300 points

xcz.kr의 35번째 문제는 ZIP이다. 포렌식 문제고, 문제는 아래와 같다. 숨겨져 있는 파일을 찾으면 된다. 이 문제의 파일을 다운로드해서 열어봤다. 이름이 없는 파일과, flag.rar 파일이 있었다. flag.ra

bing-su-b.tistory.com

 

 

local header 1

  • Signature: 50 4B 01 02
  • Version: 14 00
  • need.ver: 14 00
  • Bit Flags: 00 00
  • 압축 방식: 08 00
  • 수정 시간: D2 BE
  • 수정 날짜: 50 43
  • CRC: EC BD 08 97
  • 압축 크기: 71 05 00 00
  • 원본 크기: 76 05 00 00
  • 파일 이름 길이: 09 00
  • 추가 필드 길이: 08 00
  • 파일 코멘트 길이: 00 00
  • 디스크 번호 시작: 00 00
  • 파일 속성: 01 00 20 00 00 00
  • 로컬 헤더 offset: 00 00 00 00
  • 파일명: 00 00 00 00 00 00 00 00 00

 

 

위에 local header 1을 바탕으로 central header 1 내용을 채워보자.

 

  • Signature: 50 4B 01 02
  • Version: 14 00
  • need.ver: 14 00
  • Bit Flags: 00 00
  • 압축 방식: 08 00
  • 수정 시간: D2 BE
  • 수정 날짜: 50 43
  • CRC: EC BD 08 97
  • 압축 크기: 71 05 00 00
  • 원본 크기: 76 05 00 00
  • 파일 이름 길이: 09 00
  • 추가 필드 길이: 08 00
  • 파일 코멘트 길이: 00 00
  • 디스크 번호 시작: 00 00
  • 파일 속성: 01 00 20 00 00 00
  • 로컬 헤더 offset: 00 00 00 00
  • 파일명: 00 00 00 00 00 00 00 00 00

 

 

central header 2 위에 central header 1 추가

 

504B01021400140000000800D2BE5043ECBD08977105000076050000090008000000000001002000000000000000000000000000000000

 

 

수정한 압축 파일 안에 못 보던 파일이 생겼다. 그러나 이 압축 파일을 풀어도 여전히 저 정체 모를 파일은 생성되지 않는다. FTK Imager를 이용해보겠다.

 

 

비밀번호가 나타났다.

 

 

이 비밀번호로 잠금이 걸려있던 flag.rar을 푼다.

 

 

풀었더니 png 파일이 등장했다.

 

 

flag : z1p_1t_f0rmat_1t

728x90