Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Firmware_Slap — Descobrindo vulnerabilidades em firmware através de análise concólica e agrupamento de funções. | Kitploit
Ferramentas/GitHubGitHub/christhecoolhut/firmware_slap
Análise de VulnerabilidadesExploraçãoAnálise de BináriosAnálise de Firmware
GitHubchristhecoolhut/firmware_slap

Firmware_Slap

Descobrindo vulnerabilidades em firmware através de análise concólica e agrupamento de funções.

Ver Repositório
4768118há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Firmware Slap

Firmware Slap combina análise concolica com agrupamento de funções para descoberta de vulnerabilidades e similaridade de funções em firmware. Firmware Slap é construído como uma série de bibliotecas e exporta a maioria das informações como pickles ou JSON para integração com outras ferramentas.

Firmware Slap

Os slides da apresentação podem ser encontrados aqui

Configuração

O Firmware Slap deve ser executado em um ambiente virtual. Foi testado no Python3.6

sudo apt install python3-virtualenv
virtualenv -p python3 fwslap
source fwslap/bin/activate

-- ou --

cd ~
mkdir .virtualenvs
pip install virtualenv
which virtualenv #note path warnings
pip install virtualenvwrapper
echo "export PATH=$PATH:~/.local/bin" >> ~/.bashrc
echo "export WORKON_HOME=~/.virtualenvs" >> ~/.bashrc
echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc

#usually best here to open new terminal

mkvirtualenv fwslap -p /usr/bin/python3
workon fwslap
python setup.py install

Você precisará de rabbitmq, docker e (radare2 ou Ghidra)

# Ubuntu
sudo apt install rabbitmq-server docker.io
# OSX
brew install rabbitmq

# Radare2
git clone https://github.com/radare/radare2.git
sudo ./radare2/sys/install.sh
# Ghidra
wget https://ghidra-sre.org/ghidra_9.0.4_PUBLIC_20190516.zip
unzip ghidra_9.0.4_PUBLIC_20190516.zip -d ghidra
echo "export PATH=\$PATH:$PWD/ghidra/ghidra_9.0.4/support" >> ~/.bashrc

O Ghidra requer JDK 11.

sudo apt install default-jdk
java --version

Se quiser usar os recursos do Elastic search, execute o script Elasticsearch_and_kibana.sh

Início rápido

Certifique-se de que o rabbitmq-server está em execução.

# Em um terminal separado, execute isto no diretório raiz "Firmware_Slap"
celery -A firmware_slap.celery_tasks worker --loglevel=info
# Buffer overflow básico
Discover_And_Dump.py examples/iwconfig -D iwconfig_results
Load_And_View_Results.py iwconfig_results.all.pickle

# Clique em Gerenciamento no painel esquerdo
# Clique em Saved Objects
# Clique em Import
# Selecione 'elastic_export.json' no diretório elastic dentro do firmware slap
# Navegue para dashboards no painel esquerdo e selecione 'Overview Dashboard'

Load_And_View_Results.py iwconfig_results.all.pickle -s

# Injeção de comando
tar -xvf examples/Almond_libs.tar.gz
Vuln_Discover_Celery.py examples/upload.cgi -L Almond_Root/lib/

Uso

# Obtenha o firmware usado para os exemplos
wget https://firmware.securifi.com/AL3_64MB/AL3-R024-64MB
binwalk -Mre AL3-R024-64MB

Inicie um worker celery a partir do diretório raiz do projeto:

# Em um terminal separado
celery -A firmware_slap.celery_tasks worker --loglevel=info

Em outra janela de terminal, execute um trabalho de descoberta de vulnerabilidades.

$ Vuln_Discover_Celery.py Almond_Root/etc_ro/lighttpd/www/cgi-bin/upload_bootloader.cgi -L Almond_Root/lib/
[+] Getting argument functions
[+] Analyzing 1 functions
  0%|                                                                                                                                                                                                                                   | 0/1 [00:01<?, ?it/s]
{   'Injected_Location': {   'base': '0x7ffefde8',
........................ SNIP ......................
    'type': 'Command Injection'}
Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 

O objeto de vulnerabilidade retornado

O comando acima retornará um objeto na variável result. Este é um dicionário com todo tipo de informação interessante sobre a vulnerabilidade. Há três chaves principais no objeto: os argumentos da função, a memória e a localização injetada.

In [3]: result.keys()                                                                                 
Out[3]: dict_keys(['args', 'file_name', 'type', 'mem', 'Injected_Location'])

args

A chave args detalhará informações sobre o argumento recuperado e quais devem ser os valores dos argumentos para recriar a vulnerabilidade. No exemplo abaixo, um argumento é recuperado, e para acionar a injeção de comando, esse argumento deve ser um char* que contenha "`reboot`" para acionar uma reinicialização.

In [1]: result['args']                                                           
Out[1]: 
[{'base': 'a1',
  'type': 'int',
  'value': "0x0 -> b'`reboot`\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x01\\x00'"}]
Baixar ferramenta