
Un paquete de Node.js para la evaluación de seguridad de BLE (Bluetooth Low Energy) utilizando ataques de Hombre en el Medio y otros.

Un paquete Node.js para Man-in-the-Middle en BLE (Bluetooth Low Energy) y más.
ver:
https://github.com/sandeepmistry/noble
https://github.com/sandeepmistry/bleno
npm install gattacker
Al ejecutar ambos componentes, configure las variables en config.env:
Si ejecuta los módulos "central" y "periférico" en máquinas separadas con solo una interfaz BT4, puede dejar los valores comentados.
sudo node ws-slave
Se conecta al periférico objetivo y actúa como servidor websocket.
Depuración:
DEBUG=ws-slave sudo node ws-slave
node scan
Sin parámetros, escanea los anuncios difundidos y los registra como archivos json (.adv.json) en DEVICES_PATH
node scan <peripheral>
Explora los servicios y características del periférico elegido. Guarda la estructura de servicios explorada en un archivo json (.srv.json) en DEVICES_PATH.
Para la manipulación activa de solicitudes/respuestas, configure las funciones hook para la característica en el archivo json de servicios del dispositivo.
Ejemplo:
{
"uuid": "06d1e5e779ad4a718faa373789f7d93c",
"name": null,
"properties": [
"write",
"notify"
],
"startHandle": 8,
"valueHandle": 9,
"endHandle": 10,
"descriptors": [
{
"handle": 10,
"uuid": "2902",
"value": ""
}
],
"hooks": {
"dynamicWrite": "dynamicWriteFunction",
"dynamicNotify": "customLog"
}
}
Funciones:
<dynamic|static><Write|Read|Notify>
dynamic: se conecta al dispositivo original
static: no se conecta al dispositivo original, ejecuta la función de manipulación localmente
Intentará invocar la función especificada desde hookFunctions; incluya las suyas propias. Se proporcionan algunos ejemplos en el subdirectorio hookFunctions.
staticValue - valor estático
node advertise -a <advertisement_json_file> [ -s <services_json_file> ]
Se conecta vía websocket a ws-slave para reenviar solicitudes al dispositivo original. La ejecución estática (-s) configura los servicios localmente, no se conecta a ws-slave. Debe configurar los hooks adecuadamente.
Para muchas aplicaciones es necesario clonar la dirección MAC del dispositivo original. Se proporciona una herramienta auxiliar bdaddr de Bluez en helpers/bdaddr.
cd helpers/bdaddr
make
script envoltorio:
./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]
Los archivos de volcado se guardan en una ruta configurada por DUMP_PATH en config.env (por defecto dump).
Más información:
https://github.com/securing/gattacker/wiki/Dump-and-replay
Apague, cruce los dedos, intente de nuevo ;)
hciconfig <hci_interface> reset
Con esta configuración puede experimentar varios problemas.
Intente cambiar NOBLE_HCI_INTERFACE y BLENO_HCI_INTERFACE
hcidump -x -t <hci_interface>
FAQ: https://github.com/securing/gattacker/wiki/FAQ
Más información: www.gattack.io
Copyright (C) 2016 Slawomir Jasek, SecuRing [email protected]
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para utilizar el Software sin restricción, incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR CUALQUIER RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRA ÍNDOLE, QUE SURJA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.