Write-up

[CSAW 2017] Best Router writeup

ch4rli3kop 2017. 10. 11. 18:34
반응형

문제를 보면 링크주소 하나와 tar.gz 파일 하나가 있다.

주어진 링크로 접속하면 username을 입력하는 칸과 password를 입력하는 칸이 있다. 왠지 주어진 파일에서 username과 password를 찾아 제출하는 형태인 것 같다. 

문제의 파일이다. 그런데 용량이 커서 알집으로 압축이 제대로 풀리지가 않는다. (약 16GB정도 된다.) 기존에 존재하는 리눅스 os들의 용량이 그보다 적어서 고생 끝에 우분투에서 파일 압축해제를 했다. (tar -xzvf best_router.gz) 긴 시간이 지난 후 이미징된 파일을 하나 얻을 수 있었다.

이미징 파일을 FTK imager로 분석해보았다.

FAT32형식으로 포맷된 파티션과 ext4로 포맷된 파티션이 보인다. username과 password를 찾을 방법을 생각해보았다. 파일명으로 파일을 찾아볼 생각에 FTK imager의 여러 기능을 살펴보았으나, 찾지 못했다. 그래서 섹터 부분에서 파일을 검색하여 추출할 생각을 했었으나, 더 좋은 방법을 찾아냈다.

FTK imager의 기능 중 디렉토리 리스트를 만들어 주는 기능이 있었다. 이 기능을 사용하여 파일을 찾아보기로 했다. 

다음과 같은 csv 파일을 얻을 수 있다. ( .csv의 확장자를 가진 파일은 excel로 열어볼 수 있다. )

flag, username, password 와 같은 키워드로 검색을 해보니 몇 가지 결과들을 얻을 수 있었다.

Partition 2\NONAME [ext4]\[root]\var\www\ 이 곳이 특히 눈에 띈다. 이 디렉토리를 추출해 보았다.

성공적으로 \www 디렉토리가 추출되었다. \www 디렉토리 안을 살펴보자.

아까 확인했었던 파일들이 있다. flag.txt 파일은 빈파일이지만 수상한 다른 두 파일을 열어 보았다.

얻은 username 과 password를 사이트에 입력해보았다.

플래그를 얻을 수 있었다.


피드백 : tar.gz 로 압축된 파일이 너무 클 경우, 알집으로 압축해제가 되지 않는 경우를 처음봐서 당황했었다. 기존에 존재하던 리눅스 os에 파일을 옮겨 압축을 해제하려 했었지만, 용량 부족으로 압축이 제대로 수행되지 않았다. (리눅스에 여유 용량이 부족하면 peda가 실행되지 않는 것도 처음 알았다.) 볼륨 확장을 통해 용량을 늘리려고 했었지만, 오류가 생겨서 고군분투하다 포기했다; 결국 용량이 넉넉하게 우분투를 설치하여 압축을 해제했지만, 리눅스 시스템에서 하드디스크 관리를 하는 것을 공부해야 할 필요성을 절실히 깨달았다. 그리고, 이미징 관련 파일을 리눅스 시스템 상에서 분석하는 법을 몰라서 윈도우 환경으로 옮겨서 했지만, 리눅스 상에서 하는 법도 배워야겠다.

=> 리눅스 하드관리와 리눅스 디스크 포렌식 공부하기


반응형