
Um pacote Node.js para avaliação de segurança BLE (Bluetooth Low Energy) usando ataques Man-in-the-Middle e outros.

Um pacote Node.js para Man-in-the-Middle em BLE (Bluetooth Low Energy) e mais.
veja:
https://github.com/sandeepmistry/noble
https://github.com/sandeepmistry/bleno
npm install gattacker
Configurar as variáveis no config.env para executar ambos os componentes:
Mas se você executar os módulos "central" e "peripheral" em máquinas separadas com apenas uma interface BT4, pode deixar os valores comentados.
sudo node ws-slave
Conecta ao periférico alvo e atua como servidor websocket.
Depuração:
DEBUG=ws-slave sudo node ws-slave
node scan
Sem parâmetros, escaneia anúncios transmitidos e os registra como arquivos json (.adv.json) em DEVICES_PATH
node scan <peripheral>
Explora serviços e características do periférico escolhido. Salva a estrutura de serviço explorada em arquivo json (.srv.json) em DEVICES_PATH.
Para adulteração ativa de requisição/resposta, configure funções de hook para a característica no arquivo de serviços json do dispositivo.
Exemplo:
{
"uuid": "06d1e5e779ad4a718faa373789f7d93c",
"name": null,
"properties": [
"write",
"notify"
],
"startHandle": 8,
"valueHandle": 9,
"endHandle": 10,
"descriptors": [
{
"handle": 10,
"uuid": "2902",
"value": ""
}
],
"hooks": {
"dynamicWrite": "dynamicWriteFunction",
"dynamicNotify": "customLog"
}
}
Funções:
<dynamic|static><Write|Read|Notify>
Tentará invocar a função especificada de hookFunctions, inclua as suas próprias. Alguns exemplos fornecidos no subdiretório hookFunctions.
staticValue - valor estático
node advertise -a <advertisement_json_file> [ -s <services_json_file> ]
Conecta-se via websocket ao ws-slave para encaminhar requisições ao dispositivo original. Execução estática (-s) define os serviços localmente, não conecta ao ws-slave. Você deve configurar os hooks adequadamente.
Para muitas aplicações, é necessário clonar o endereço MAC do dispositivo original. Uma ferramenta auxiliar bdaddr do Bluez é fornecida em helpers/bdaddr.
cd helpers/bdaddr
make
script wrapper:
./mac_adv -a <advertisement_json_file> [ -s <services_json_file> ]
Arquivos de dump são salvos em um caminho configurado por DUMP_PATH no config.env (por padrão dump). Mais informações: https://github.com/securing/gattacker/wiki/Dump-and-replay
Desligue, cruze os dedos, tente novamente ;)
hciconfig <hci_interface> reset
Com esta configuração, você pode enfrentar vários problemas. Tente trocar NOBLE_HCI_INTERFACE e BLENO_HCI_INTERFACE
hcidump -x -t <hci_interface>
FAQ: https://github.com/securing/gattacker/wiki/FAQ
Mais informações: www.gattack.io
Copyright (C) 2016 Slawomir Jasek, SecuRing [email protected]
A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.