상세 컨텐츠

본문 제목

[xcz.kr #35] ZIP - 300 points

Forensics/xcz.kr

by bing_su 2021. 4. 2. 01:19

본문

반응형
SMALL

xcz.kr의 35번째 문제는 ZIP이다. 포렌식 문제고, 문제는 아래와 같다. 

숨겨져 있는 파일을 찾으면 된다. 이 문제의 파일을 다운로드해서 열어봤다.

이름이 없는 파일과, flag.rar 파일이 있었다. flag.rar 파일을 열려고 했더니 암호를 입력해야 한다고 떴다.

일단 zip 파일 구조를 분석하기 위해 HxD를 사용했다. zip 파일의 구조는 이 블로그를 많이 참고했다.

출처: https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220612641115&proxyReferer=https:%2F%2Fwww.google.com%2F

위와 같이 zip 파일의 일반적인 구조는 크게 3개의 파일 구조(Local File Header, Central Directory, End of central directory record)로 되어 있다. 이때, 파일 하나 당 하나의 Local File Header, Central Directory는 반드시 가져야 한다. 이 문제에서 제공된 압축 파일 내부의 파일은 2개다. 따라서 2개의 Local File Header, 2개의 Central Directory, 1개의 End of central directory record를 가져야 정상적인 파일 구조라고 할 수 있다.

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)

위의 signature 정보를 토대로 검색을 해서 파일 구조를 쉽게 확인할 수 있었다.

이름 없는 파일의 Local File Header
flag.rar의 Local File Header
flag.rar의 Central Directory

이름 없는 파일의 Central Directory 부분이 빠져 있는 것을 확인할 수 있었다. 따라서 문제에서 주어진 압축 파일은 손상된 압축 파일임을 알 수 있었고, 이름 없는 파일의 Central Directory 부분을 복구하면 된다.

 출처: https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220612641115&proxyReferer=https:%2F%2Fwww.google.com%2F
출처: https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220612641115&proxyReferer=https:%2F%2Fwww.google.com%2F

위의 사진을 보면 알 수 있듯이, Local File Header와 Central Directory의 구조에서 겹치는 부분이 있다. 이를 토대로 봤을 때 이름 없는 파일의 Local File Header를 참고해 Central Directory 부분을 채워 주면 된다.

첫 번째 이름 없는 파일의 Local File Header

- Signature: 50 4B 03 04

- Version: 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 00 00 00 00 00

 

위의 내용을 토대로 Central Directory에 들어갈 내용을 작성했다.

- 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 Directory

압축 파일을 복구하고, 이름 없는 파일을 살펴보기 위해 FTK Imager를 사용했다. 아마 이 이름 없는 파일은 Image 파일인 것으로 예상된다. 아래와 같이 이름 없는 파일로부터 pw를 얻을 수 있다.

얻은 pw를 flag.rar 파일의 비밀번호로 입력했다.

비밀번호를 입력하면 파일이 열리고, flag가 담긴 png 파일을 얻을 수 있다. 이를 인증하면 문제가 풀린다.

 

반응형
LIST

관련글 더보기

댓글 영역