Locked KitKat 문제
여기서 킷캣은 안드로이드 버전 중 하나이다.
용의자의 안드로이드 장치를 압수해서 디스크를 추출했다고 한다.
추출한 파일들에서 안드로이드 잠금 패턴을 찾아내면 되는 문제이다.
img 파일이 주어진다.
이 파일이 용의자의 안드로이드 장치를 이미징한 파일이다.
binwalk를 이용해서 해당 이미지 파일을 보니
파일시스템은 ext4를 사용하고 있는것을 볼 수 있다.
sudo mount android.4.4.x86.img ctf -t ext4 명령어를 이용해서 ctf 폴더에 마운트 시킨다.
안드로이드 패턴도 분명히 이 파일시스템 안에 저장되어있을 것이다.
구글을 열심히 검색해보니 한가지 힌트를 찾을 수 있었다.
https://resources.infosecinstitute.com/topic/android-forensics-cracking-the-pattern-lock-protection/
해당 블로그의 글을 보면 안드로이드 패턴 정보는 /system/gesture.key에 저장이 된다고 한다.
문제에서 제공한 이미지 파일에도 역시 /system 경로에 gesture.key 라는 파일이 있는것을 볼 수 있었다.
해당 gesture.key을 hxd를 이용해서 열어보면 hex 값을 확인할 수 있는데
이 값이 바로 안드로이드 패턴을 sha1로 암호화한 값이라고 한다.
이걸 어떻게 풀어야하나.. 하고 고민하는 와중에
github에서 아주 유용한 도구를 발견했다.
파이썬으로 제작된 안드로이드 패턴을 크랙해주는 도구이다.
사용법은 간단하다. python aplc.py gesture.key 를 해주면 지정된 key 파일에서
값을 추출하여 패턴을 찾아준다.
이 툴이 패턴을 어떻게 찾아주는지 봤더니
gesture.key 파일에서 추출한 해시값(이 문제의 경우 179e58178a7c5195110e0a26d91c71926af01349)과
패턴(3x3 행렬)의 순서를 hex값으로 표현한 것의 sha1 해시값 레인보우 테이블을 비교하여
패턴을 찾는 방식이다.
예를들어 이번문제처럼 321564 인 경우
\x03\x02\x01\x05\x06\x04 처럼 hex값으로 바꾼 뒤, 이 값을 sha1 해시로 만들어주면
179e58178a7c5195110e0a26d91c71926af01349가 나온다.
반응형
'CTF > 포렌식' 카테고리의 다른 글
[angstromCTF] WS1 - 포렌식 / Wireshark (2) | 2022.03.07 |
---|---|
[SUSEC CTF] little - 포렌식 / Autopsy (4) | 2022.03.06 |
[UTCTF] 1 Frame per Minute - 포렌식 / 스테가노그래피 / SSTV (2) | 2022.03.03 |
[UTCTF] Spectre - 포렌식 / 스테가노그래피 / Audacity (2) | 2022.03.02 |
[UTCTF] 쉬운 문제들 - 포렌식 / 스테가노그래피 / base64 (0) | 2022.03.02 |