Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
firmware-analysis-toolkit — 펌웨어를 에뮬레이션하고 보안 취약점을 분석하기 위한 툴킷 | Kitploit
도구/GitHubGitHub/attify/firmware-analysis-toolkit
Embedded Systems SecurityIoT SecurityVulnerability AnalysisReverse EngineeringBinary AnalysisLearning & EducationFirmware Analysis
GitHubattify/firmware-analysis-toolkit

firmware-analysis-toolkit

펌웨어를 에뮬레이션하고 보안 취약점을 분석하기 위한 툴킷

저장소 보기
1.6k2831년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

펌웨어 분석 툴킷

FAT는 보안 연구원들이 IoT 및 임베디드 장치 펌웨어의 취약점을 분석하고 식별하는 데 도움을 주기 위해 구축된 툴킷입니다. 이는 또한 Attify에서 진행하는 'Offensive IoT Exploitation' 교육에도 사용됩니다.

참고:

  • 현재로서는 펌웨어 에뮬레이션에 사용되는 도구인 **Firmadyne**을 자동화하는 스크립트일 뿐입니다. 실제 에뮬레이션에 문제가 있을 경우 firmadyne 이슈에 게시해 주세요.

  • 문제가 발생하는 경우, 펌웨어 분석 툴킷 및 기타 도구가 사전 설치되어 바로 사용할 수 있는 AttifyOS를 시도해 볼 수 있습니다.


펌웨어 분석 툴킷(이하 FAT)은 약간의 변경 사항을 적용한 Firmadyne을 기반으로 합니다. Firmadyne은 에뮬레이션된 이미지에 대한 정보를 저장하기 위해 PostgreSQL 데이터베이스를 사용합니다. 그러나 핵심 기능, 즉 펌웨어 에뮬레이션만을 위해서는 PostgreSQL이 실제로 필요하지 않습니다. 따라서 FAT는 이를 사용하지 않습니다.

설치 방법

FAT는 Python 3로 개발되었습니다. 그러나 Firmadyne 및 해당 종속성의 일부가 Python 2를 사용하므로 Python 3와 Python 2를 모두 설치해야 합니다. FAT를 가상 머신 내에 설치하는 것을 강력히 권장합니다.

root@kitploit:~
git clone https://github.com/attify/firmware-analysis-toolkit
cd firmware-analysis-toolkit
./setup.sh

설치가 완료되면 fat.config 파일을 편집하고 아래와 같이 sudo 비밀번호를 제공하십시오. Firmadyne은 일부 작업에 대해 sudo 권한이 필요합니다. sudo 비밀번호는 프로세스를 자동화하기 위해 제공됩니다.

root@kitploit:~
[DEFAULT]
sudo_password=attify123
firmadyne_path=/home/attify/firmadyne

FAT 실행

root@kitploit:~
$ ./fat.py <firmware file>
  • 스크립트 인수로 펌웨어 파일 이름을 제공하십시오.

  • 스크립트는 생성된 네트워크 인터페이스에 할당된 IP 주소를 표시합니다. 이를 기록해 두십시오.

  • 마지막으로, 펌웨어를 실행 중이라고 표시됩니다. ENTER를 누르고 펌웨어가 부팅될 때까지 기다리십시오. 이전 단계에서 표시된 IP로 핑을 보내거나 브라우저에서 열어보십시오.

축하합니다! 펌웨어가 마침내 에뮬레이션되었습니다.

분석된 모든 펌웨어 이미지를 제거하려면 다음을 실행하십시오.

root@kitploit:~
$ ./reset.py

예제 1

root@kitploit:~
$ ./fat.py DIR-601_REVB_FIRMWARE_2.01.BIN 

                               __           _   
                              / _|         | |  
                             | |_    __ _  | |_ 
                             |  _|  / _` | | __|
                             | |   | (_| | | |_ 
                             |_|    \__,_|  \__|                    
                    
                Welcome to the Firmware Analysis Toolkit - v0.3
    Offensive IoT Exploitation Training http://bit.do/offensiveiotexploitation
                  By Attify - https://attify.com  | @attifyme
    
[+] Firmware: DIR-601_REVB_FIRMWARE_2.01.BIN
[+] Extracting the firmware...
[+] Image ID: 1
[+] Identifying architecture...
[+] Architecture: mipseb
[+] Building QEMU disk image...
[+] Setting up the network connection, please standby...
[+] Network interfaces: [('br0', '192.168.0.1')]
[+] All set! Press ENTER to run the firmware...
[+] When running, press Ctrl + A X to terminate qemu

Asciicast

asciicast

예제 2

root@kitploit:~
$ ./fat.py DIR890A1_FW103b07.bin --qemu 2.5.0

                               __           _
                              / _|         | |
                             | |_    __ _  | |_
                             |  _|  / _` | | __|
                             | |   | (_| | | |_
                             |_|    \__,_|  \__|

                Welcome to the Firmware Analysis Toolkit - v0.3
    Offensive IoT Exploitation Training http://bit.do/offensiveiotexploitation
                  By Attify - https://attify.com  | @attifyme

[+] Firmware: DIR890A1_FW103b07.bin
[+] Extracting the firmware...
[+] Image ID: 2
[+] Identifying architecture...
[+] Architecture: armel
[+] Building QEMU disk image...
[+] Setting up the network connection, please standby...
[+] Network interfaces: [('br0', '192.168.0.1'), ('br1', '192.168.7.1')]
[+] Using qemu-system-arm from /home/attify/firmware-analysis-toolkit/qemu-builds/2.5.0
[+] All set! Press ENTER to run the firmware...
[+] When running, press Ctrl + A X to terminate qemu

추가 참고 사항

  • 현재로서는 ARM firmadyne 커널이 Ubuntu 18.04 공식 저장소에서 제공되는 최신 버전의 Qemu (2.11.1)와 호환되지 않습니다. 그러나 Ubuntu 16.04의 Qemu (2.5.0)는 작동합니다. 또는 예제 2에 표시된 대로 firmadyne에 포함된 Qemu (2.5.0)를 사용할 수도 있습니다.

  • 네트워크 인터페이스가 감지되지 않으면 아래와 같이 scripts/inferNetwork.sh에서 타임아웃 값을 60에서 늘려 보십시오.

    root@kitploit:~
    echo "Running firmware ${IID}: terminating after 60 secs..."
    timeout --preserve-status --signal SIGINT 60 "${SCRIPT_DIR}/run.${ARCH}.sh" "${IID}"
    

알려진 문제

  • FAT는 Ubuntu 20.04에서 작동하지 않습니다. 주된 이유는 Firmadyne의 일부 종속성(특히 binwalk)이 Python 2를 필요로 하기 때문입니다. 상위에서 수정되지 않는 한 Ubuntu 18.04 이하를 사용하십시오. Ubuntu 20.04 는 이제 지원됩니다. 현재 버전의 FAT는 binwalk 설치 스크립트를 패치하여 이 문제를 해결합니다.

정적 Qemu 빌드

저장소에는 이미 qemu 2.0.0, 2.5.0 및 3.0.0의 정적 빌드가 (릴리스에) 포함되어 있지만, 직접 빌드하려면 아래 단계를 따르십시오.

깨끗한 Ubuntu 16.04 VM에서 실행하십시오. (16.04를 사용하는 것이 중요하며, 이후 버전은 정적 컴파일에 문제가 있습니다.)

Qemu 2.0.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-2.0.0.tar.bz2
tar xf qemu-2.0.0.tar.bz2
mkdir qemu-2.0.0-build
cd qemu-2.0.0
./configure --prefix=$(realpath ../qemu-2.0.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard-nss --disable-spice --disable-libusb --disable-usb-redir
make
make install

컴파일된 바이너리는 qemu-2.0.0-build 디렉토리에서 찾을 수 있습니다.

Qemu 2.5.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-2.5.0.tar.bz2
tar xf qemu-2.5.0.tar.bz2
mkdir qemu-2.5.0-build
cd qemu-2.5.0
./configure --prefix=$(realpath ../qemu-2.5.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard --disable-libusb --disable-usb-redir
make 
make install

컴파일된 바이너리는 qemu-2.5.0-build 디렉토리에서 찾을 수 있습니다.

Qemu 3.0.0

root@kitploit:~
sudo apt update && sudo apt build-dep qemu -y
wget https://download.qemu.org/qemu-3.0.0.tar.bz2
tar xf qemu-3.0.0.tar.bz2
mkdir qemu-3.0.0-build
cd qemu-3.0.0
./configure --prefix=$(realpath ../qemu-3.0.0-build) --static --target-list=arm-softmmu,mips-softmmu,mipsel-softmmu --disable-smartcard --disable-libusb --disable-usb-redir
make 
make install

컴파일된 바이너리는 qemu-3.0.0-build 디렉토리에서 찾을 수 있습니다.

참고: alpine 시스템에서 qemu를 정적으로 컴파일하는 것도 가능해야 하지만 테스트되지 않았습니다. 일반적으로 Ubuntu보다 alpine에서 컴파일하는 것이 선호되는데, 전자는 musl libc를 제공하여 Ubuntu의 glibc보다 정적 링크에 더 적합하기 때문입니다.

도구 다운로드