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:

  1. Firmadyne
  2. Binwalk
  3. Firmware-Mod-Kit
  4. MITMproxy
  5. Firmwalker

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 Dados
sudo 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-utils
git clone --recursive https://github.com/firmadyne/firmadyne.git
cd ./firmadyne; ./download.sh
firmadyne.configFIRMWARE_DIR


  1. sudo apt-get install postgresql
  2. sudo -u postgres createuser -P firmadyne, com senha firmadyne
  3. sudo -u postgres createdb -O firmadyne firmware
  4. sudo -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.pyreset.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 MITMProxy
pip 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...

Baixar Firmware-Analysis-Toolkit