CTF/포렌식

[DCTF] Hidden Fox - 포렌식 / FireFox / Firepwd

SecurityMan 2022. 4. 18. 21:00

 

이번 대회 두번째 포렌식 문제이다.

 

문제 설명을 읽어보면 파이어폭스 브라우저를 사용하면서 어딘가에 무언가를 써놓았다고 한다.

 

아마 그 무언가는 플래그일 것이다.

 

플래그는 두 부분으로 나누어져 있다고 한다.

 

반응형

 

이렇게 FireFox 같은 브라우저 사용기록에서 흔적을 찾는것을

 

웹 브라우저 포렌식이라고 부른다.

 

사용자가 방문한 사이트, 웹 캐시, 쿠키, 다운로드 파일 등등 으로

 

인터넷으로 어떤 일을 했는지 알아내는 것이다.

 

문제파일로 Firefox.zip 파일이 주어진다.

 

 

해당 파일의 압축을 풀어보면 이렇게 파일과 폴더가 저장되어 있다.

 

파이어폭스 브라우저를 사용할때 중요한 정보들은

 

보통 세번째에 있는 Profiles 폴더 안에 저장된다.

 

 

Profiles 폴더로 들어가면 안에 수많은 파일들이 존재하는걸 볼 수 있다.

 

이 중에서 이번 문제에서 확인해볼 파일은 logins.json과 places.sqlite 파일이다.

 

문제풀이라서 바로 이 두가지 파일만 확인하지만,

 

실제 문제를 풀 때는 저기있는 모든 폴더와 파일을 하나씩 다 들어가서 내용을 확인해야한다.

 

먼저 logins.json 파일을 살펴본다.

 

 

logins.json 파일은 파이어폭스를 사용하면서 웹사이트에 로그인한 아이디와 비밀번호를 저장하고 있다.

 

물론 평문으로 저장하진 않고, 위 사진처럼 암호화해서 저장하고 있다.

 

이걸 어떻게 풀어야하나 고민하다가 구글에 검색해보니 적당한 도구를 찾을 수 있었다.

(https://github.com/lclevy/firepwd)

 

git clone https://github.com/lclevy/firepwd
cd firepwd
pip install -r requirements.txt

 

칼리 리눅스에서 위처럼 명령어를 치면 쉽게 다운로드가 가능하다.

 

 

python3 firepwd.py 명령어로 실행시키고,

 

-d 옵션을 줘서 분석할 디렉토리를 지정해준다.

 

 

그럼 알아서 logins.json 파일에 접근해 ID와 비밀번호를 찾아준다.

 

ID는 dragonflag 이고 비밀번호는 dctf{1_b00km4rk3d_ 이다.

 

플래그가 두 부분으로 나눠져있다고 했으니 나머지 반쪽도 찾아야한다.

 

지금 찾은 플래그의 앞부분이 힌트였다.

 

1_b00km4rk3d_ 라고 써있는 부분을 해석하면 I bookmarked 이다.

 

파이어폭스에서 북마크 흔적을 찾으려면 아까 언급했던 places.sqlite 파일을 열어보면 된다.

 

확장자가 sqlite인 파일을 열어보려면 적당한 도구가 있어야 한다.

 

DB browser fo sqlite를 사용하면 좋다.

(https://sqlitebrowser.org/)

 

 

DB Browser for sqlite를 실행시킨 후에 places.sqlite 파일을 드래그 앤 드랍하면 이렇게 열린다.

 

 

데이터 보기 메뉴로 이동해서

 

moz_places 테이블을 선택해준다.

 

그럼 맨 아래쪽에 수상한 URL을 발견할 수 있다.

 

http://_th15_p455w0rd}/ 라고 되어있다.

 

앞서 찾은 플래그와 합쳐주면

 

dctf{1_b00km4rk3d__th15_p455w0rd} 가 이번 문제의 플래그이다.

반응형