본문 바로가기
Forensic

[Square CTF] Needle in the haystack

by L3m0n S0ju 2021. 9. 3.

Name

needle-in-the-haystack - Somewhere in this blob is the flag.

Points

500 points

Type

Forensics

Description

We infiltrated Evil Robot Corp’s network and were able to get this partial data dump of one of their production hosts before their Android Monitoring Systems kicked us out. Can you do anything with it? We know they aren't good at developer best practices when doing app development.

needle-in-the-haystack

 

 

 

 


주어진 파일을 살펴보면 마지막에 FAT(File Allocation Table)을 볼 수 있는데 이는 파일 시스템의 구조 중 하나입니다. 이를 통해 해당 파일은 파일 시스템을 갖춘 이미지 파일임을 알 수 있습니다.

 

 

 

 

 


파일을 FTK Imager로 열면 삭제된 .git 디렉토리와 blog 디렉토리 그리고 압축 파일이 하나 있습니다.

 

 

 

 


root를 export하면 위 그림과 같이 3개의 파일이 존재하는데 deploy.tar.gz를 압축을 풀면 .git과 blog파일이 하나 더 생성된다. .git 디렉토리는 관례적으로 형상 관리 도구인 git을 사용할때 생성되는 디렉토리로 blog 파일이 있는 것으로 보아 블로그를 개발하면서 git을 통해 형상 관리하던 것으로 추측할 수 있다.

 

 

 

 

 


원래 있던 .git을 git log 명령어를 이용하려고 하면 위와 같이 오류가 발생해서 사용불가능하다.

 

 

 

 

 


압축 해제하나 파일에 .git을 git log로 살펴보면 커밋(소스코드 저장이력)이 출력되는데 100개 가량 출력되므로 하나씩 분석은 불가능하다. 참고로 커밋은 위로 갈수록 최신의 커밋이다. 가장 최신의 커밋을 보면 아래 Add security라는 문구가 있는데 보안이 추가되었다는 것인데 어떤 정보가 변경된건지 확인하겠다.

 

 

 

 

 


그림과 같이 git show (커밋 적당한 앞자리) 명령어를 통해서 살펴보면 패스워드에 flag-12b36... 문자열을 볼 수 있다. flap의 의미는 flag에 근접했다는 의미이므로 조금만 더 하면 된다.

 

 

 

 

 

 


git log --graph --reflog 명령어를 이용하면 저장소 과거 기록을 바탕으로 모든 커밋을 포함하여 그래프 형식으로 분기된 커밋을 위와 같이 출력합니다. git log에는 출력되지 않았던 커밋까지 출력하므로 더 넓은 범위를 볼 수 있다.

 

 

 

 


다음으로 -S 옵션을 추가하여 커밋에서 문자열을 검색할 수 있다. git log --graph --reflog -S flag 명령어를 입력하면 커밋이 하나 출력된다.

 

 

 

 


git show 68490b1을 입력하면 커밋 내에서 flag를 찾을 수 있다.

'Forensic' 카테고리의 다른 글

[HackCTF] Secret Document  (0) 2021.09.12
[HackCTF] So easy?  (0) 2021.09.12
[Square CTF] Reading between the lines  (0) 2021.09.02
[Square CTF] Sniffed Off the Wire  (0) 2021.08.15
[Square CTF] The Robot's Grandmother  (0) 2021.08.12

댓글