본문 바로가기

#CTF 2020

CSICTF2020 #Forensic - Panda

반응형

[그림1. 문제]

  • 주어진 panda.zip파일을 압축해제하려면 암호가 필요하다.
  • 문제에서 AJ1479에게 파일을 보내려고 하는데 그 내용을 누군가 보는 걸 원하지 않아서 pin으로 보호했다고 적혀있다.
  • 암호를 모르니 칼리리눅스에서 John The Ripper 도구를 사용해보았다.

 

#John The Ripper 설치방법

git clone https://github.com/magnumripper/JohnTheRipper.git 

cd /JohnTheRipper/src

sudo apt-get update

sudo apt-get libssl-dev

./configure && make

cd /JohnTheRipper/JohnTheRipper/run

 

 

[그림2. john the ripper_zip pin번호]

 

  • zip 암호를 풀기 위해선 zip2john.exe를 사용한다.
  • zip2john [암호가 걸린 zip파일] > [암호해시.txt]
  • 명령어를 입력하면 암호해시가 적힌 파일이 생성된다.
  • 해시파일에 john the ripper를 실행시키면 약 2초만에 암호를 찾아준다.
  • panda.zip파일의 pin번호는 2611이다.

 

 

[그림3. panda.jpg]
[그림4. panda1.jpg]

 

  • 압축해제하면 panda 사진이 2장 나온다.
  • 하나는 원본인 것 같고, 다른 하나는 깨진 파일 같다.

 

 

[그림5. panda.jpg_hex]
[그림6. panda1.jpg_hex]

 

  • HxD로 두 파일을 열어봤을 때 헤더와 푸터 시그니처는 jpg가 맞다.
  • 조금 내리다 보니 문자열이 나열되어 있길래 봤더니 다른 점이 발견되었다.
  • panda.jpg에서는 3br로 적혀 있고, panda1.jpg에서 csi라고 적혀있다.
  • 대회이름이 csictf이니까 약간 플래그의 느낌이 있다.
  • 여기서 플래그를 찾기 위해 시간을 너무 많이 소비했다. 알고보면 굉장히 단순한 문제인데...

 

 

 

[그림7. steghide]

  • 뭔가 숨겨진 txt파일이 있을 거 같아서 steghide로 찾아봤는데 암호가 있었다.
  • strings명령어로 찾아봐도 암호가 될만한 문자열은 없었다.

        

---> Python 버전은 3이상이여야 한다. python3를 설치 후 sudo apt-get install python3-pip 명령어를 입력하면 된다.

suto apt-get install steghide -y

pip3 intall stegcracker 

 

///////////// steghide 방법은 아니다.  다른 문제에 쓰일 수 있으니 설치해도 좋다.    

 

[그림8. stegcracker]

  • stegcracker를 설치해서 rockyou.txt에 담긴 암호를 갖고 brute force로 찾아보려했지만 시간이 너무 오래 걸려서 다른 방법을 찾아보았다.
  • 다시 HxD로 돌아와서 3br과 csi 말고 다른점이 있는지 살펴보기 위해 python을 사용하였다.

 

 

 

[그림9. python]

 

  • for문을 이용하여 문자열을 비교하였다. panda.jpg와 panda1.jpg 문자열이 다르면 flag에 찍히도록 코드를 짜보았다.
  • 너무나도 간단하게 플래그를 찾을 수 있었다.
  • 아까 HxD에서 봤던 csi가 플래그의 힌트였다.

 

플래그 : cisctf{kung_fu_p4nd4}

 

 

 

 

반응형