Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Firmware_Slap — Aufdecken von Schwachstellen in Firmware durch Concolic Analysis und Funktionsclustering. | Kitploit
Tools/GitHubGitHub/christhecoolhut/firmware_slap
SchwachstellenanalyseExploitationBinäranalyseFirmware-Analyse
GitHubchristhecoolhut/firmware_slap

Firmware_Slap

Aufdecken von Schwachstellen in Firmware durch Concolic Analysis und Funktionsclustering.

Repository anzeigen
4768118vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Firmware Slap

Firmware Slap kombiniert concolische Analyse mit Funktionsclustering zur Schwachstellenerkennung und Funktionsähnlichkeit in Firmware. Firmware Slap ist als eine Reihe von Bibliotheken aufgebaut und exportiert die meisten Informationen entweder als Pickles oder JSON zur Integration mit anderen Tools.

Firmware Slap

Folien des Vortrags finden Sie hier

Einrichtung

Firmware Slap sollte in einer virtuellen Umgebung ausgeführt werden. Es wurde mit Python3.6 getestet.

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

-- or --

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

Sie benötigen rabbitmq, docker und (radare2 oder 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

Ghidra benötigt JDK 11.

sudo apt install default-jdk
java --version

Wenn Sie die Elasticsearch-Funktionen nutzen möchten, führen Sie das Skript Elasticsearch_and_kibana.sh aus

Schnellstart

Stellen Sie sicher, dass der rabbitmq-server läuft.

# In a Separate terminal, run this in the top level "Firmware_Slap" directory
celery -A firmware_slap.celery_tasks worker --loglevel=info
# Basic buffer overflow
Discover_And_Dump.py examples/iwconfig -D iwconfig_results
Load_And_View_Results.py iwconfig_results.all.pickle

# Click management on the left pane
# Click Saved Objects
# Click Import
# Select 'elastic_export.json' under the elastic directory in firmware slap
# Navigate to dashboards on left pane and select 'Overview Dashboard'

Load_And_View_Results.py iwconfig_results.all.pickle -s

# Command injection
tar -xvf examples/Almond_libs.tar.gz
Vuln_Discover_Celery.py examples/upload.cgi -L Almond_Root/lib/

Verwendung

# Get the firmware used for examples
wget https://firmware.securifi.com/AL3_64MB/AL3-R024-64MB
binwalk -Mre AL3-R024-64MB

Starten Sie einen Celery-Worker aus dem Projektwurzelverzeichnis:

# In a separate terminal
celery -A firmware_slap.celery_tasks worker --loglevel=info

Führen Sie in einem anderen Terminalfenster einen Schwachstellenerkennungsauftrag aus.

$ 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]: 

Das zurückgegebene Schwachstellenobjekt

Der obige Befehl gibt ein Objekt in der Variable result zurück. Dies ist ein Wörterbuch mit allerlei großartigen Informationen über die Schwachstelle. Es gibt drei Hauptschlüssel im Objekt: Die Funktionsargumente, den Speicher und den injizierten Ort.

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

args

Der Schlüssel args enthält Details über das wiederhergestellte Argument und welche Argumentwerte erforderlich sind, um die Schwachstelle nachzubilden. Im folgenden Beispiel wird ein Argument wiederhergestellt, und um die Befehlsinjektion auszulösen, muss dieses Argument ein char* sein, das "`reboot`" enthält, um einen Neustart auszulösen.

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'"}]
Tool herunterladen