
IoT 디바이스 임플란트 공격을 위한 툴킷
IoT-Implant-Toolkit는 IoT 장치의 악성코드 이식 연구에 유용한 도구들의 프레임워크입니다. 펌웨어 수정, 시리얼 포트 디버깅, 소프트웨어 분석 및 안정적인 스파이 클라이언트에 관한 필수 소프트웨어 도구들로 구성된 툴킷입니다. 사용하기 쉽고 확장 가능한 셸과 유사한 환경을 제공하는 IoT-Implant-Toolkit는 IoT 악성코드 이식의 복잡한 절차를 간소화하는 원스톱 툴킷입니다.
연구에서 우리는 IoT-Implant-Toolkit를 사용하여 스마트 스피커, 카메라, 운행 기록계, 모바일 번역기를 포함한 8개의 장치에 성공적으로 트로이목마를 이식했습니다.
아래 데모 비디오:

git, python3 및 setuptools가 설치되어 있는지 확인하십시오. 오디오 처리 및 재생을 위해 alsa(리눅스에 내장), sox 및 ffplay를 설치해야 합니다. Ubuntu 18.04에서:
$ sudo apt install sox ffmpeg
Github에서 소스 코드 다운로드:
$ git clone https://github.com/arthastang/IoT-Implant-Toolkit.git
환경 설정 및 의존성 설치:
$ cd IoT-Implant-Toolkit/
$ python3 setup.py install
툴킷 실행:
$ python3 -B IoT-Implant-Toolkit.py
_____ _______ _____ _ _ _______ _ _ _ _
|_ _| |__ __| |_ _| | | | | |__ __| | | | (_) |
| | ___ | |______| | _ __ ___ _ __ | | __ _ _ __ | |_ ______| | ___ ___ | | | ___| |_
| | / _ \| |______| | | '_ ` _ \| '_ \| |/ _` | '_ \| __|______| |/ _ \ / _ \| | |/ / | __|
_| || (_) | | _| |_| | | | | | |_) | | (_| | | | | |_ | | (_) | (_) | | <| | |_
|_____\___/|_| |_____|_| |_| |_| .__/|_|\__,_|_| |_|\__| |_|\___/ \___/|_|_|\_\_|\__|
| |
|_|
IoT-Implant-Toolkit
-------------------------------------------------------------
A Framework for IoT implantation research.
by Marvel Team
Command:
list - List all tools
run - Run a specific tool
exit - Exit
[Implant-Toolkit]>
세 가지 명령어 지원: list: 모든 플러그인 목록 표시 run: "run [플러그인] [매개변수]" 형식으로 특정 플러그인 실행 exit: 종료
각 소프트웨어 도구는 프레임워크에 쉽게 추가할 수 있는 플러그인으로 작동합니다.
시리얼 포트 디버깅, 펌웨어 팩&언팩, 소프트웨어 분석, 이식된 스파이 프로그램에 대한 주제를 포함하여 네 가지 카테고리에 10개 이상의 플러그인이 있습니다.
프레임워크에 있는 기존 플러그인:
코드 구조:
--IoT-Implant_toolkit.py #시작 스크립트
--outputs/ #출력 기본 폴더
--toolkit/
|---core/
|---basic/ #기본 플러그인 클래스 정의
|---cli/ #셸과 유사한 CLI 정의
|---toollist/ #플러그인의 자동 업데이트 도구 목록
|---plugins/
|---firmware/ #펌웨어 수정용 플러그인
|---implant/ #스파이 프로그램 생성용 플러그인
|---serialport/ #시리얼 포트 디버깅용 플러그인
|---software/ #소프트웨어 분석용 플러그인 (특히 Android)
|---tools/ #기타 도구
해당 폴더(카테고리)에 [newplugin].py를 생성하고 init 속성을 정의하여 IoT-Implant-Toolkit에 새 플러그인을 추가합니다. 프레임워크는 시작 시 새 플러그인을 자동으로 감지합니다.
악성코드 이식 연구에 필수적인 하드웨어 도구. HardwareTools/에서 그림을 참조하십시오.
시간 제한으로 인해 더 많은 플러그인을 추가하지 못했습니다.
아래 표는 우리 프레임워크에 적합하지 않지만 유용할 수 있는 도구들입니다.
IoT-Implant-Toolkit이 악성코드 이식에 필수적인 툴킷이 되기를 바랍니다.
| 카테고리 | 도구 | 설명 | 참고 |
|---|
| 시리얼 포트 디버깅 | pyserial | 모뎀 제어 및 터미널 에뮬레이션 프로그램 | https://github.com/pyserial/pyserial |
| 시리얼 포트 디버깅 | baudrate.py | 올바른 보레이트 찾기 | https://github.com/devttys0/baudrate |
| 펌웨어 팩&언팩 | mksquashfs | Squashfs 파일 시스템 생성 및 추출 | https://github.com/plougher/squashfs-tools |
| 펌웨어 팩&언팩 | mkbootimg_tools | Android용 boot.img 언팩 및 리팩 | https://github.com/xiaolu/mkbootimg_tools |
| 펌웨어 팩&언팩 | cramfs | cramfs 파일 시스템 만들기 | https://sourceforge.net/projects/cramfs/files/cramfs/1.1/ |
| 펌웨어 팩&언팩 | mountimg | Android system.img 및 data.img용 ext4 파일 시스템 마운트 및 언마운트 | 우리 Github에서 |
| 소프트웨어 분석 | setools-android | sepolicy-inject가 포함된 Android용 setools | https://github.com/xmikos/setools-android |
| 소프트웨어 분석 | crosscomplie | arm용 크로스 컴파일 툴체인 | 나중에 우리 Github에서 |
| 소프트웨어 분석 | odex unpack | Android용 Odex를 smali로 변환 | 우리 Github에서 |
| 바이너리 이식 | spy client&server | 안정적인 스파이 클라이언트 및 서버, 소스 및 사전 빌드 바이너리 | 우리 Github에서 |
| 바이너리 이식 | denoise tool | 오디오 처리를 위한 노이즈 제거 도구 | 우리 Github에서 |
| 이름 | 설명 |
|---|
| 납땜 인두 | 납땜 도구 |
| 납땜 와이어 | 납땜 도구 |
| 납땜 페이스트 | 납땜 도구 |
| 납땜 심지 | 납땜 도구 |
| 열풍기 | 납땜 도구 |
| 리볼링 도구 | 리볼링 도구 |
| USB to TTL | 디버그/콘솔 케이블 |
| 듀폰 와이어 | 전선 |
| EPROM 버너 프로그래머 | 버너 프로그래머 |
| 카테고리 | 도구 | 설명 | 참고 |
|---|
| 펌웨어 분석 | binwalk | 펌웨어 이미지 분석, 리버스 엔지니어링 및 추출을 위한 빠르고 사용하기 쉬운 도구 | https://github.com/ReFirmLabs/binwalk |
| 펌웨어 수정 | firmware mod kit | 리눅스 기반 펌웨어 이미지 추출 및 재구축을 위한 스크립트 및 유틸리티 모음 | https://github.com/rampageX/firmware-mod-kit |
| 크로스 컴파일러 | buildroot | arm, mips, powerpc용 크로스 컴파일러 | https://buildroot.org/ |