워게임/HackTheBox

[HackTheBox] Eternal Loop - MISC / Shell script / John the Ripper

SecurityMan 2023. 3. 15. 11:00

 

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 를 검색하면 플래그를 찾을 수 있다.

반응형