
Ein Node.js-Paket für die Sicherheitsbewertung von BLE (Bluetooth Low Energy) mittels Man-in-the-Middle und anderen Angriffen

Ein Node.js-Paket für BLE (Bluetooth Low Energy) Man-in-the-Middle und mehr.
siehe:
https://github.com/sandeepmistry/noble
https://github.com/sandeepmistry/bleno
npm install gattacker
Beide Komponenten ausführen. Variablen in config.env setzen:
Wenn Sie die „central“- und „peripheral“-Module auf separaten Rechnern mit nur einer BT4-Schnittstelle ausführen, können Sie die Werte auskommentiert lassen.
sudo node ws-slave
Verbindet sich mit dem Ziel-Peripheral und fungiert als WebSocket-Server.
Debug:
DEBUG=ws-slave sudo node ws-slave
node scan
Ohne Parameter sucht es nach ausgestrahlten Werbeanzeigen und speichert sie als JSON-Dateien (.adv.json) im DEVICES_PATH.
node scan <peripheral>
Erkundet Dienste und Merkmale des ausgewählten Peripherals. Speichert die erkundete Dienststruktur in einer JSON-Datei (.srv.json) im DEVICES_PATH.
Für aktive Manipulation von Anfragen/Antworten konfigurieren Sie Hook-Funktionen für Charakteristiken in der JSON-Dienstdatei des Geräts.
Beispiel:
{
"uuid": "06d1e5e779ad4a718faa373789f7d93c",
"name": null,
"properties": [
"write",
"notify"
],
"startHandle": 8,
"valueHandle": 9,
"endHandle": 10,
"descriptors": [
{
"handle": 10,
"uuid": "2902",
"value": ""
}
],
"hooks": {
"dynamicWrite": "dynamicWriteFunction",
"dynamicNotify": "customLog"
}
}
Funktionen:
<dynamic|static><Write|Read|Notify>
dynamisch: Verbindung zum Originalgerät herstellen statisch: Keine Verbindung zum Originalgerät herstellen, die Manipulationsfunktion lokal ausführen
Es wird versucht, die angegebene Funktion aus hookFunctions aufzurufen; fügen Sie Ihre eigenen hinzu. Einige Beispiele befinden sich im Unterverzeichnis hookFunctions.
staticValue – statischer Wert
node advertise -a <advertisement_json_file> [ -s <services_json_file> ]
Es verbindet sich über WebSocket mit ws-slave, um Anfragen an das Originalgerät weiterzuleiten. Der statische Modus (-s) richtet Dienste lokal ein und stellt keine Verbindung zu ws-slave her. Sie müssen die Hooks entsprechend konfigurieren.
Für viele Anwendungen ist es notwendig, die MAC-Adresse des Originalgeräts zu klonen. Ein Hilfswerkzeug namens bdaddr aus Bluez wird in helpers/bdaddr bereitgestellt.
cd helpers/bdaddr
make
Wrapper-Skript:
./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]
Dump-Dateien werden in einem Pfad gespeichert, der durch DUMP_PATH in config.env konfiguriert wird (standardmäßig dump).
Weitere Informationen:
https://github.com/securing/gattacker/wiki/Dump-and-replay
Ausschalten, Daumen drücken, erneut versuchen ;)
hciconfig <hci_interface> reset
Bei dieser Konfiguration können verschiedene Probleme auftreten. Versuchen Sie, NOBLE_HCI_INTERFACE und BLENO_HCI_INTERFACE zu vertauschen.
hcidump -x -t <hci_interface>
FAQ: https://github.com/securing/gattacker/wiki/FAQ
Weitere Informationen: www.gattack.io
Copyright (C) 2016 Slawomir Jasek, SecuRing [email protected]
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Modifikation, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN“ BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ODER STILLSCHWEIGEND, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERBERECHTIGTEN FÜR ANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN VERANTWORTLICH, WEDER AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE SICH AUS DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ERGEBEN.