
Un pacchetto Node.js per la valutazione della sicurezza BLE (Bluetooth Low Energy) utilizzando attacchi Man-in-the-Middle e altri attacchi.

Un pacchetto Node.js per Man-in-the-Middle BLE (Bluetooth Low Energy) e altro.
vedi:
https://github.com/sandeepmistry/noble
https://github.com/sandeepmistry/bleno
npm install gattacker
Per eseguire entrambi i componenti, imposta le variabili in config.env:
Se esegui i moduli "centrale" e "periferico" su macchine separate con una sola interfaccia BT4, puoi lasciare i valori commentati.
sudo node ws-slave
Si connette alla periferica target e funge da server websocket.
Debug:
DEBUG=ws-slave sudo node ws-slave
node scan
Senza parametri, esegue la scansione degli advertisement trasmessi e li registra come file json (.adv.json) in DEVICES_PATH.
node scan <peripheral>
Esplora i servizi e le caratteristiche della periferica scelta. Salva la struttura del servizio esplorata in un file json (.srv.json) in DEVICES_PATH.
Per la manipolazione attiva di richieste/risposte, configura le funzioni hook per la caratteristica nel file json dei servizi del dispositivo.
Esempio:
{
"uuid": "06d1e5e779ad4a718faa373789f7d93c",
"name": null,
"properties": [
"write",
"notify"
],
"startHandle": 8,
"valueHandle": 9,
"endHandle": 10,
"descriptors": [
{
"handle": 10,
"uuid": "2902",
"value": ""
}
],
"hooks": {
"dynamicWrite": "dynamicWriteFunction",
"dynamicNotify": "customLog"
}
}
Funzioni:
<dynamic|static><Write|Read|Notify>
dynamic: connetti al dispositivo originale
static: non connetterti al dispositivo originale, esegui la funzione di manipolazione localmente
Proverà a invocare la funzione specificata da hookFunctions, includi le tue. Alcuni esempi forniti nella sottodirectory hookFunctions.
staticValue - valore statico
node advertise -a <advertisement_json_file> [ -s <services_json_file> ]
Si connette tramite websocket a ws-slave per inoltrare le richieste al dispositivo originale. L'esecuzione statica (-s) imposta i servizi localmente, non si connette a ws-slave. Devi configurare correttamente gli hook.
Per molte applicazioni è necessario clonare l'indirizzo MAC del dispositivo originale. Uno strumento helper bdaddr di Bluez è fornito in helpers/bdaddr.
cd helpers/bdaddr
make
script wrapper:
./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]
I file di dump vengono salvati in un percorso configurato da DUMP_PATH in config.env (per impostazione predefinita dump).
Maggiori info:
https://github.com/securing/gattacker/wiki/Dump-and-replay
Spegni, incrocia le dita, riprova ;)
hciconfig <hci_interface> reset
Con questa configurazione potresti riscontrare vari problemi.
Prova a scambiare NOBLE_HCI_INTERFACE e BLENO_HCI_INTERFACE.
hcidump -x -t <hci_interface>
FAQ: https://github.com/securing/gattacker/wiki/FAQ
Maggiori informazioni: www.gattack.io
Copyright (C) 2016 Slawomir Jasek, SecuRing [email protected]
Con la presente viene concessa l'autorizzazione, a titolo gratuito, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di utilizzare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:
Il suddetto avviso di copyright e questa nota di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI MA NON LIMITATI ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT POTRANNO ESSERE RITENUTI RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, DERIVANTE DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.