중국에서 진행한 CTF 대회의 문제
대회에서 가장 쉬운 문제들 중 하나였는데
생각보다 애를 많이 먹었다.
MISC로 분류되어있었는데 포렌식쪽으로 봐도 상관없을듯 하다.
문제 설명에 보면 힌트가 적혀있는데
주어진 pcap 파일을 이용해서 문제를 풀 수 있고,
어떤 파일의 비밀번호는 6자리이며 첫번째 두 자리는 DE 라고 친절히 알려주고 있다.
문제에서 주어지는 파일은 Misc_Chowder.pcap 파일이다.
pcap 파일은 Wireshark 프로그램을 이용해서 열어볼 수 있다.
패킷은 3000개 정도 있는데 이정도면 별로 많은편은 아니다.
천천히 내려보다보면
중간부터 HTTP 프로토콜을 이용해 /test/upload_file.php 경로에 jpg 파일을 업로드 하는것이 보인다.
와이어샤크에서
File - Export Objects - HTTP 기능을 이용하면 JPG 파일을 추출할 수 있다.
upload_file.php 경로를 이용해서 총 7개의 파일을 업로드한 것을 볼 수 있다.
하나씩 선택해서 Save 버튼을 누르면 저장할 수 있다.
추출하고보니 마지막 파일만 PNG 였는데
열어보니 구글 드라이브 주소였다.
해당 주소를 찾아가면
readme.docx 파일을 다운로드 받을 수 있다.
docx 파일 같은 경우
파일 이름 바꾸기를 통해 확장자를 zip 으로 바꾸면 압축을 풀 수 있다.
readme.docx 파일의 압축을 풀어주면
그안에 You_found_me_Orz.zip 이라는 수상한 압축파일이 숨어있다.
압축을 풀려고 시도하면 비밀번호가 걸려있는것을 볼 수 있다.
여기서 아까 문제에서 줬던 힌트가 쓰이는데,
비밀번호는 6자리이며 맨앞 두 자리는 DE로 시작한다는 것이다.
zip 파일 비밀번호를 crack 하는데는 John the Ripper 라는 도구를 이용했다.
여러가지 비밀번호를 crack 해주는 기능을 가지고 있다.
zip2john <파일명> > hash 명령어로
hash 파일을 생성해준 다음
--mask 옵션을 줘서 비밀번호 포멧을 만들어주면 된다.
맨 앞에 DE 가 오고 그다음 오는글자는 한글자씩 ?1 을 이용해서 표시해주고,
뒤에 -1=[a-zA-Z0-9] 를 이용해 알파벳 대소문자, 숫자를 표시한칸에 하나씩 넣을 수 있도록 해줬다.
마지막으로 길이가 6자리이니, min-len과 max-len을 모드 6으로 설정해준 뒤
실행시키면 된다.
잠깐 기다리면 비밀번호가 crack 된다.
추출한 비밀번호는 DE34Q1 이다.
압축을 풀어보면 JPG 파일이 하나 들어있다.
binwalk로 보면 JPG 파일안에 RAR 파일이 숨어있는걸 찾을 수 있다.
-e 옵션을 줘서 파일을 추출할 수 있다.
rar 파일은 그냥 zip 파일 압축풀듯이 풀면 된다.
압축을 풀어주면 123.txt, 666.jpg, flag.txt 세개 파일이 있는게 보인다.
flag.txt 는 낚시였다..
저건 가짜 플래그이다.
123.txt 에도 별 내용은 없다.
666.jpg 파일을 열어보면 자기가 플래그라는걸 어필하고 있다.
그런데 여기에서도 별다른 특이한점은 보이지 않았다.
66DB.rar 파일을 다시 한번 봤더니 데이터가 숨겨져 있었다.
압축을 풀기 전 rar 파일을 HxD로 열어보면
맨 아래쪽에 STM..:fffffffffllllll.txt 라는 문구가 보이는데
STM 을 구글에 검색해봤더니 NTFS 파일시스템에서
ADS 영역에 데이터를 숨겨주는 것이라고 한다.
ADS는 Alternate Data Stream 의 약자로
NTFS 파일시스템에서 MAC OS와 파일시스템 호환성 유지를 위해 사용되는데
여기에 데이터를 은닉할 수 있다.
윈도우 cmd 창에서 dir /r 하면 ADS 영역에 있는 데이터를 볼 수 있다.
다시보니 666.jpg 파일 뒤에 숨겨져있는게 보이고,
notepad 666.jpg:fffffffflllll.txt 명령으로
메모장을 이용해 바로 내용을 볼 수 있다.
'CTF > 포렌식' 카테고리의 다른 글
[SHELLCTF] Hidden File - 포렌식 / 스테가노그래피 / steghide (40) | 2022.09.24 |
---|---|
[SHELLCTF] Heaven - 포렌식 / 스테가노그래피 / Stegsolve (62) | 2022.09.20 |
[SharkyCTF] RATTATATACACS - 포렌식 / Tacacs / Wireshark / Cisco (40) | 2022.08.13 |
[SharkyCTF] Pain in the ass - 포렌식 / Wireshark / Blind SQL injection (47) | 2022.08.10 |
[SharkyCTF] Basic LSB - 포렌식 / 스테가노그래피 / Zsteg (40) | 2022.08.07 |