튜기's bloggggg(st1tch)

취약점 찾으면서 팁 같은거 생각날 때 마다 적을예정 ㅇㅅㅇ.


1. 

최근 펌웨어들은 FMK로는 추출이 안되는 펌웨어들이 많기 때문에 적당히 binwalk -Me 옵션을 이용하면 쉽게 파일시스템을 추출할 수 있다. ㅇㅅㅇ


https://github.com/ReFirmLabs/binwalk


요기서 binwalk 를 설치하고


sudo apt-get install zlib1g-dev liblzma-dev python-magic mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full cabextract cramfsprogs cramfsswap squashfs-tools sleuthkit default-jdk lzop srecord

이것들을 설치한 다음

binwalk -Me target.bin

명령어를 이용해서 파일시스템을 추출할 수 있다.


2. 

펌웨어가 여러 아키텍쳐로 제공되는 경우 arm계열을 제공하는지 찾아보면 분석할 시간이 줄어든다.


iptime 같은 경우에는 분석할 때, mips로 되있는 펌웨어들이 많지만 모델이 하도 많아서 arm계열 펌웨어도 존재한다.


하지만 기능적으로는 거의 똑같기 때문에 분석할 때는 arm, mips계열을 같이 받아서 분석하면 편하다( arm은 헥스레이가 가능하기때문이지 ㅇ0ㅇ)


3.

qemu로 가상환경을 구축해서 동적 디버깅을 해도 되지만, qemu-?-static 을 사용하면, 아주 편하게 cgi 에 인자를 줄 수도있고, ida에 attach 시켜서 분석할 수 있다.


모두 다 되지는 않지만 iptime 같은 경우에는 가능했고, wevo 같은 경우에는 잘 되지 않았다. ㅇㅅㅇ...;;; 



+ 생각날 때 마다 추가예정 '-'  ~;m

Comment +0