QEMU에 펌웨어를 올릴 수 있다면 좋겠지만, 그럴 수 없다면 UART해킹을 통해 쉘획득을 하는 방법을 사용할 수 있다. 래빗을 사용해서 PC 상에서 UART 기기 쉘획득을 하려면, IPcam -> 래빗(rabbit) -> PC 순서대로 연결을 해주어야 한다. 필요한 장비는 아래와 같다. - UART 기기 (ex. 포스팅에서는 IPCam을 사용) - 래빗 (rabbit) : PC와 UART 기기를 연결하기 위함 - 점퍼케이블 : 래빗과 UART 기기를 연결하기 위함 - 기타... (드라이버..?) UART 기기의 UART 핀 위치 확인 먼저 기기를 뜯어서 UART 핀 위치를 확인해준다. 보통 4핀 배열이면 UART 핀이라고 의심할 수 있는데 4핀 배열이 여러개 있는 장비도 있는 듯 하다. 나는 직접 Io..
binwalk 펌웨어 추출 시 sasquatch 에러 binwalk를 사용해 펌웨어를 추출하다 보면 가끔 " WARNING: Extractor.execute failed to run external extractor 'sasquatch -p 1 -le -d '%%squashfs-root%%' '%e'': [Errno 2] No such file or directory " 와 같은 에러가 발생할 때가 있다. 아마도 squashfs 파일시스템과 관련해서만 발생하는 에러인 것 같다. 해당 에러는 아래 깃허브의 sasquatch를 설치해서 해결할 수 있다. sasquatch 설치 깃허브 devttys0/sasquatch Contribute to devttys0/sasquatch development by cre..
QEMU 에뮬레이터와 QEMU에 가상으로 실행시키고 싶은 공유기 펌웨어를 사용해 가상 공유기 환경을 구축하고 실행시켜보려고 한다. 구축 환경은 우분투 x64이고 펌웨어는 제조사 웹사이트에 공개된 펌웨어를 다운로드, 파일시스템은 MIPS로 사용했다. - 환경 : Ubuntu x64 - 펌웨어 : 제조사 웹사이트에 공개된 구버전 펌웨어 - 파일시스템 : MIPS QEMU 설치 QEMU는 apt-get으로 쉽게 설치할 수 있다. 처음엔 qemu를 설치해야 하는 것인지 아니면 mips이기 때문에 qemu-system-mips64를 설치해야 할지 고민했는데 qemu를 설치하면 mips64도 같이 설치되는 듯 했다. QEMU squeeze/wheezy mips 이미지 다운로드 QEMU를 설치했으면 이제 QEMU s..
저번 포스팅에서 상당한 삽질을 통해 bindiff라는 바이너리 디핑 툴을 설치하고 간단히 사용법을 알아보았는데 삽질만 하고 끝내면 아쉬우므로 이번엔 실제로 사용해보려 한다. 실제 제조사 웹페이지에 공지사항으로 올라온 '한국 인터넷 진흥원(KISA)의 보안 규격 적용'을 기반으로 패치전의 구버전 펌웨어와 패치후의 펌웨어를 다운받아서 디핑을 이용해 어떤 패치가 이루어졌는지 대략적으로 살펴보기로 했다(패치전 펌웨어: V1.2.4 / 패치후 펌웨어: V1.2.9). 관련포스팅 바이너리 디핑을 위한 bindiff 설치 및 사용법 바이너리 디핑을 위한 bindiff 설치 및 사용법 바이너리 디핑 플러그인으로 bindiff, diaphora가 유명하다. 아마 diaphora보다는 bindiff를 많이 들어봤을 것 같..
펌웨어 자동 분석 툴에는 대표적으로 binwalk와 fmk가 있다. 실제 제조사 웹페이지에 공개되어있는 구버전 펌웨어를 사용해서 binwalk와 fmk에서 많이 쓰이는 사용법을 알아보았다(공부하면서 추가되는 내용이 있다면 계속 추가할 예정이다). - 환경: Ubuntu - 펌웨어: 제조사 웹페이지에 공개된 펌웨어 1.2.4 버전 binwalk 사용법 binwalk는 펌웨어 파일의 구성을 분석할수 있는 툴로 파일 시그니처를 사용해서 어떤 데이터가 들어있는지 확인해준다. binwalk 설치는 apt-get으로 간단히 설치가 가능한데 fmk는 binwalk가 설치되어있어야 동작하기 때문에 꼭 설치해주어야 한다. binwalk 옵션은 상당히 많은데 이 중에 자주 쓰이는 옵션만 다뤘다. 파일 시그니쳐 분석 (de..