MISC 카테고리의 쉬움 난이도 문제
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
이전에 유사한 문제를 풀이해본 적 있다.
(https://hackingstudypad.tistory.com/364)
맨 처음에 37366.zip 파일이 주어진다.
해당 파일은 비밀번호가 걸려있는데,
이 압축파일 안에 들어있는 다른 압축파일의 파일명이 비밀번호다.
예를들면
37366.zip 파일 안에 5900.zip 파일이 들어있는데,
37366.zip 파일 압축을 풀려면 비밀번호로 5900을 입력해야 하는 방식이다.
while true; do
strings $(ls *.zip) > a;
tail -1 a | cut -d'.' -f1 > b;
unzip -P $(cat b) $(ls *.zip) -d $(ls *.zip). && cd $(ls *.zip).;
done
리눅스 환경에서 shell script 를 이용해 문제를 풀었다.
ls *.zip 으로 현재 경로에 있는 zip 파일 이름을 가져온 뒤,
string 명령어를 수행하고, 그 결과를 a 파일로 집어넣는다.
첫번째 명령어를 수행하면 a에는 이런값이 들어간다.
저 마지막 줄에 있는 5900.zipPK 를 가져오기 위해 한 행위이다.
그런다음 tail -1 a 명령어로 a파일에서
맨 뒤에 있는 5900.zipPK 만 잘라서 가져온 뒤
cut -d'.' -f1 을 이용해 5900 만 b 파일에 저장한다.
이런식으로 b에는 5900만 들어간다.
그리고 마지막으로 unzip 을 이용해 풀어준다.
-P는 비밀번호를 입력하는 옵션이다. cat b를 이용해서 비번을 입력하고 압축을 푼다.
37366.zip을 압축을 풀었다면 37366.zip. 폴더에 저장이 되고
cd로 37366.zip. 폴더에 들어가서
다시 재귀적으로 다음 파일 압축을 푼다.
스크립트 돌리다보면 잘 풀다가 갑자기 에러난다.
cd를 계속 써서 버퍼가 다 차서 그런듯 하다.
ctrl+c 로 스크립트 실행을 종료하고
while true; do cd $(ls *.zip).; done 명령을 이용해서 마지막 폴더로 순간이동한다.
ls -al 로 확인한
마지막 폴더에 들어있는 7486.zip을
맨 위에 폴더로 가져와서 다시 스크립트 돌려주면 된다.
그럼 잘 풀리다가 6969.zip 파일에서 스크립트가 멈추게 된다.
6969.zip 파일은 기존 zip 파일과 비밀번호가 다른데
zip2john <파일명> > hash 명령어로
hash 파일을 생성해준 다음
john --wordlist=<rockyou.txt 파일 경로> hash 명령어로 비밀번호를 crack 해주면 된다.
비밀번호는 letmeinplease 이다.
압축 풀린 파일은 sqlite 파일인데
그냥 notepad++ 로 열어서 HTB 를 검색하면 플래그를 찾을 수 있다.
'워게임 > HackTheBox' 카테고리의 다른 글
[HackTheBox] Cat - 포렌식 / Android (70) | 2023.03.19 |
---|---|
[HackTheBox] Digital Cube - 포렌식 / QR 코드 (36) | 2023.03.17 |
[HackTheBox] Blackhole - 포렌식 / Steghide (56) | 2023.03.12 |
[HackTheBox] BabyEncryption - 암호학 / Python (56) | 2023.01.29 |
[HackTheBox] Weather App - 웹해킹 / SSRF / SQL Injection (70) | 2023.01.05 |