1. 문제
2. 번역
당신은 산업 기밀 누설 사건의 심사관입니다. 검사를 하는 동안 의심스러운 보관 파일을 발견했습니다. 이 ZIP 파일은 다른 용의자에게 보낸 전자 메일에 첨부되었으며 다른 기밀 파일이 배포된 당시 작성되었습니다. 따라서 아직 맥락에서 확인되지 않은 정보가 포함되어 있다고 추정됩니다.
주어진 ZIP 파일에서 이 사건과 관련된 단서를 찾으십시오.
Teams must :
- 결론을 이끌어 내기 위해 사용된 도구를 모두 지정하십시오.
- zip 파일의 구조, 찾은 내용 및 단계별 처리 방법 (압축된 비밀 JPEG 파일의 해시 값 포함)을 설명하십시오.
3. 나의 풀이
0) 문제 파일 준비, 010 editor 도구 설치
다운로드 링크: www.sweetscape.com/download/010editor/
1) 010 editor에서 ZIP 파일을 열어본다.
ZIPFILERECORD(파란동그라미)에는 0,1,2,3,4의 5개 파일이 있고
ZIPDIRENTRY(초록동그라미)에는 0,1,2,3으로 4개뿐이다.
파일을 비교해보면, Frperg Qbphzrag 파일이 은닉된 것임을 알 수 있다.
(ZIP 파일을 단순 압축 풀기 해봐도,
Frperg Qbphzrag을 제외한 다른 파일은 정상적으로 보이고
해당 파일만 은닉된 것을 확인할 수 있다.)
2) 파일 구조 분석
ZIPFILERECORD record[0]과
ZIPDIRENTRY dirEntry[0] 가 모두 7z1900.exe 파일을 가리키고 있다.
각각 펼쳐 내용을 비교해보자.
ZIPDIRENTRY에만 있고, ZIPFILERECORD에는 없는 것은 위 사진의 줄 친 내용과 같다.
- VersionToExtract
- FileCommentLength
- DiskNumberStart
- InternalAttributes
- ExternalAttributes
- HeaderOffset
위 6가지 항목이 없는 것을 알 수 있음.
--> 이들을 넣어주면 은닉된 파일도 ZIPDIRENTRY를 복구할 수 있다!
3) 은닉된 파일 (Frperg Qbphzrag) 복구
먼저 은닉된 파일(Frperg Qbphzrag)을 가리키는 ZIPFILERECORD를 확인한다.
Frperg Qbphzrag의 ZIPDIRENTRY에 추가해줄 항목 6개
- VersionToExtract = 20 (Version과 맞춰준다)
- FileCommentLength = 0 (주석의 용도, 주석이 딱히 필요없다고 생각되어 0)
- DiskNumberStart = 0
- InternalAttributes = 0
- ExternalAttributes= 32
// 여기까지 5개 항목의 값은 위 7z1900.exe와 같게 설정해주었다.
- HeaderOffset = 1CCC70
// Frperg Qbphzrag 파일의 Local Header의 시작 offset 주소(위 사진 참고)
해당 파일은 ExtraField가 있다.
위의 규칙대로 hex값을 복구하였다.
그리고 해당 값을 ZIPDIRENTRY dirEntry[2] 아래에 넣어준다.
값을 넣어주니,
다시 압축파일을 열어보면 Frperg 파일이 생긴 것을 볼 수 있다!
\
파일의 확장자는 .7z
간단히 이름 바꾸기를 해서 뒤에 .7z를 붙여주니
알집으로 실행이 된다.
암호에는 9tBcZXF8X7^nMcYd
해당 파일을 다운 받아
CyberChef에서 MD5로 해싱하였다.
그렇게 얻은 최종 답은
a4f2256ffde2c69aa04820c6d80000b4