
써니나타스 28번 문제입니다.
먼저 문제의 설명을 보면 암호가 걸려있는 파일로 패스워드를 알아낼수 있냐고 묻고 매우 쉽다고 합니다.
추가로 Brute-force 공격은 하지 않아도 된다고 알려줍니다.
문제파일을 다운받아보면

so simpe이라는 압축파일 하나를 받을 수 있습니다.
그런데 해당 파일의 압축을 풀려고 시도해보면

해당 파일의 압축을 풀기 위해서는 암호가 필요하다고 합니다.
문제에서 해볼만한 키워드 easy, password, heizelnet 등 눈에 보이는 값을 모두 넣어봤지만
해결할 수 없어서 써니나타스 free게시판에 같은 고민을 하는 사람이 있을까 싶어 찾아보니

Encrypted File Flag Bit 값 무시라는 힌트가 있습니다.
이게 무슨뜻인지 몰라 해당 키워드를 가지고 검색해보니
https://blog.forensicresearch.kr/3
ZIP File Structure Analysis
이번에 분석해볼 파일구조는 ZIP 파일입니다. ZIP 파일이란? Archive File Format 중 하나로 무손실 데이터 압축 방식을 지원합니다. 여러 알고리즘을 사용하고 있었지만 현재에는 Deflate 알고리즘을 대
blog.forensicresearch.kr

zip 파일의 경우 시그니처 다음으로 Flag값이 들어가는데 해당 FLAG의 따라 옵션이 달리는 구조였습니다.
문제의 파일을 HxD로 확인해보면

0x08 0x09? 혹은 0x0809? 인듯한데
0x08 0x09라면 unused 사용하지 않는다로 지정되어있고 0x809라면 FLAG에 없는 값입니다.
추가로 힌트를 확인한 게시판에서 Encrypted File Flag Bit 값을 무시하라고 했는데
어떤값으로 바꿔야하는지 헤매는 중
패스워드를 걸지 않고 압축한 압축파일 하나와 비교를 해보니

해당 값 부분이 0으로 되어있는 것을 확인 할 수 있었습니다.
해서 zip파일 시그니처 PK를 기준으로 offset 0x06~07에 해당하는 flag 값을 0으로 바꿔주었습니다.
단, 현재 압축파일은 한개가 아닌 3개의 파일을 압축한 상황이기에
zip파일 시그니처 PK가 3개가 검색되는데

해당 부분들 모두 flag의 위치에 09 08 값이 입력되어 있으니 해당부분들을 모두 00 00으로 바꿔주어야 합니다.
해당 부분들을 모두 변경하고 다시 압축해제를 시도해보면

압축파일이 해제되었습니다.
해제된 압축파일 txt를 두개다 열어보면


키값이 아닌 더미값을 가지고 있습니다.
마지막으로 Am_I_key.zip 파일도 압축을 해제해보면


매우 쉽지 않았냐는 말과 함께 암호화된 문자열을 하나 있습니다.
해당 문자열이 영문자와 숫자로 이루어져있으니 가장 만만한 base64부터 복호화를 시도해보면

FLAG로 예상되는 읽을 수 있는 문자열로 복호화가 되었습니다.
ta5ty_H4z3lnut_coffee
해당 문자열을 인증해보면 문제가 해결되었습니다.

'Wargame(DigitalForensic) > Suninatas Writeup' 카테고리의 다른 글
[Suninatas] Game 26 Writeup (0) | 2023.08.24 |
---|---|
[Suninatas] Game 21 Writeup (0) | 2023.08.24 |
[Suninatas] Game 19 Writeup (0) | 2023.08.24 |
[Suninatas] Game 18 Writeup (0) | 2023.08.24 |
[Suninatas] Game 15 Writeup (0) | 2023.08.24 |