O FAT é um kit de ferramentas criado para ajudar os pesquisadores de segurança a analisar e identificar vulnerabilidades na IoT e no firmware do dispositivo incorporado. Isso foi criado para ser usado no treinamento ” Exploração ofensiva da IoT “, realizado pela Attify .
Baixar AttifyOS

Nota:
- A partir de agora, é simplesmente um script para automatizar o Firmadyne, que é uma ferramenta usada para emulação de firmware. Em caso de problemas com a emulação real, publique seus problemas nos problemas firmadyne.
- Caso você esteja no Kali e esteja enfrentando problemas com emulação , é recomendável usar a VM de pré-lançamento do AttifyOS disponível para download a partir daqui ou, como alternativa, você pode fazer o mencionado acima.
O Firmware Analysis Toolkit é construído sobre as seguintes ferramentas e projetos existentes:
Instruções de configuração
Se você é um estudante de treinamento e define isso como um pré-requisito para o treinamento, é recomendável instalar as ferramentas na pasta / root / tools e ferramentas individuais.
Instale o Binwalk
git clone https://github.com/devttys0/binwalk.git
cd binwalk
sudo ./deps.sh
sudo python ./setup.py install
sudo apt-get install python-lzma :: (for Python 2.x)
sudo -H pip install git+https://github.com/ahupp/python-magic
Nota: Como alternativa, você também pode fazer um sudo apt-get install binwalk
Firmadyne Edit e configurar o ponto para o local atual da pasta Firmadyne. Configurando o Banco de Dadossudo apt-get install busybox-static fakeroot git kpartx netcat-openbsd nmap python-psycopg2 python3-psycopg2 snmp uml-utilities util-linux vlan qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utilsgit clone --recursive https://github.com/firmadyne/firmadyne.gitcd ./firmadyne; ./download.shfirmadyne.configFIRMWARE_DIR
sudo apt-get install postgresqlsudo -u postgres createuser -P firmadyne, com senhafirmadynesudo -u postgres createdb -O firmadyne firmwaresudo -u postgres psql -d firmware < ./firmadyne/database/schema
Configurando o Firmware Analysis Toolkit (FAT)
Primeira instalação pexpect.
pip install pexpect
Agora clone o repositório para o seu sistema.
git clone https://github.com/attify/firmware-analysis-toolkit
mv firmware-analysis-toolkit/fat.py .
mv firmware-analysis-toolkit/reset.py .
chmod +x fat.py
chmod +x reset.py
Ajuste os caminhos para firmadyne e binwalk em fat.pye reset.py. Além disso, forneça a senha root. O Firmadyne requer privilégios de root para algumas de suas operações. A senha raiz é fornecida no próprio script para automatizar o processo.
# Configurations - change this according to your system
firmadyne_path = "/home/ec/firmadyne"
binwalk_path = "/usr/local/bin/binwalk"
root_pass = "root"
firmadyne_pass = "firmadyne"
Configurando o Firmware-mod-Kit
sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic
git clone https://github.com/brianpow/firmware-mod-kit.git
Encontre a localização do binwalk usando which binwalk. Modifique o arquivo shared-ng.incpara alterar o valor da variável BINWALKpara o valor de /usr/local/bin/binwalk(se é aí que o seu binwalk está instalado). .
Configurando o MITMProxypip install mitmproxy ou apt-get install mitmproxy
Configurando o Firmwalker Essa é toda a configuração necessária para executar o FAT. Executando o FAT Depois de concluir as etapas acima, você pode executar o Fat Fat. A sintaxe para executar gordura égit clone https://github.com/craigz28/firmwalker.git
$ python fat.py <firmware file>
- Forneça o nome do arquivo do firmware como um argumento para o script. Se não fornecido, o script solicitará em tempo de execução.
- O script solicitará que você insira o nome da marca. Digite a marca à qual o firmware pertence. Isso é para armazenamento puro do banco de dados e para fins de categorização.
- O script exibirá os endereços IP atribuídos às interfaces de rede criadas. Anote isso.
- Finalmente, dirá que executando o firmware. Pressione ENTER e aguarde até o firmware inicializar. Faça ping no IP que foi mostrado na etapa anterior ou abra no navegador.
Parabéns! O firmware é finalmente emulado. O próximo passo será configurar o proxy no Firefox e executar o mitmproxy.
Para remover todas as imagens de firmware analisadas, execute
$ python reset.py
Exemplo de execução
$ python fat.py DIR850LB1_FW210WWb03.bin
__ _
/ _| | |
| |_ __ _ | |_
| _| / _` | | __|
| | | (_| | | |_
|_| \__,_| \__|
Welcome to the Firmware Analysis Toolkit - v0.2
Offensive IoT Exploitation Training - http://offensiveiotexploitation.com
By Attify - https://attify.com | @attifyme
[?] Enter the name or absolute path of the firmware you want to analyse : DIR850LB1_FW210WWb03.bin
[?] Enter the brand of the firmware : dlink
[+] Now going to extract the firmware. Hold on..
[+] Firmware : DIR850LB1_FW210WWb03.bin
[+] Brand : dlink
[+] Database image ID : 1
[+] Identifying architecture
[+] Architecture : mipseb
[+] Storing filesystem in database
[!] Filesystem already exists
[+] Building QEMU disk image
[+] Setting up the network connection, please standby
[+] Network interfaces : [('br0', '192.168.0.1'), ('br1', '192.168.7.1')]
[+] Running the firmware finally
[+] command line : sudo /home/ec/firmadyne/scratch/1/run.sh
[*] Press ENTER to run the firmware...

