Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
btlejuice — BtleJuice Bluetooth Smart (LE) framework man-in-the-middle | Kitploit
Ferramentas/GitHubGitHub/digitalsecurity/btlejuice
Sniffing e Análise de PacotesSegurança BluetoothExploraçãoSegurança Sem FioTestes de PenetraçãoRed TeamingArchived
GitHubdigitalsecurity/btlejuice

btlejuice

BtleJuice Bluetooth Smart (LE) framework man-in-the-middle

Ver Repositório
851153há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Framework BtleJuice

Introdução

BtleJuice é uma framework completa para realizar ataques Man-in-the-Middle em dispositivos Bluetooth Smart (também conhecidos como Bluetooth Low Energy). É composto por:

  • um núcleo de interceção
  • um proxy de interceção
  • uma interface web dedicada
  • bindings para Python e Node.js

Como instalar o BtleJuice ?

Instalar o BtleJuice é muito fácil. Primeiramente, certifique-se de que seu sistema usa uma versão recente do Node.js (>=4.3.2) e do npm. Em seguida, certifique-se de instalar todas as dependências necessárias:

Ubuntu/Debian/Raspbian

root@kitploit:~
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

### Fedora / Outros baseados em RPM

root@kitploit:~
sudo yum install bluez bluez-libs bluez-libs-devel npm

Por último, instale o BtleJuice usando o npm:

root@kitploit:~
sudo npm install -g btlejuice

Se tudo correu bem, o BtleJuice está pronto para uso !

Como usar o BtleJuice ?

O BtleJuice é composto por dois componentes principais: um proxy de interceção e um núcleo. Estes dois componentes precisam ser executados em máquinas independentes para operar simultaneamente dois adaptadores bluetooth 4.0+. O BtleJuice Proxy não funciona em um contêiner Docker.

O uso de uma máquina virtual pode ajudar a fazer esta framework funcionar em um único computador.

A partir da sua máquina virtual, instale o btlejuice e certifique-se de que o adaptador USB BT4 está disponível na máquina virtual:

root@kitploit:~
$ sudo hciconfig
hci0:	Type: BR/EDR  Bus: USB
	BD Address: 10:02:B5:18:07:AD  ACL MTU: 1021:5  SCO MTU: 96:6
	DOWN
	RX bytes:1433 acl:0 sco:0 events:171 errors:0
	TX bytes:30206 acl:0 sco:0 commands:170 errors:0
$ sudo hciconfig hci0 up

Em seguida, certifique-se de que sua máquina virtual tem um endereço IP acessível a partir do host.

Inicie o proxy na sua máquina virtual:

root@kitploit:~
$ sudo btlejuice-proxy

Na sua máquina host, não se esqueça de parar o serviço bluetooth e garantir que o dispositivo HCI permaneça aberto/inicializado:

root@kitploit:~
$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

Finalmente, execute o seguinte comando na sua máquina host:

root@kitploit:~
$ sudo btlejuice -u <Endereço IP do Proxy> -w

A flag -w diz ao BtleJuice para iniciar a interface web, enquanto a opção -u especifica o endereço IP do proxy.

A Interface de Utilizador Web está agora disponível em http://localhost:8080. Note que a porta do servidor web pode ser alterada através da linha de comando.

Usando a interface web

A interface web do BtleJuice fornece no canto superior direito um conjunto de links para controlar o núcleo de interceção, conforme mostrado abaixo.

Interface web principal do BtleJuice

Seleção de alvo

Primeiro, clique no botão Selecionar alvo e uma caixa de diálogo aparecerá exibindo todos os dispositivos Bluetooth Low Energy disponíveis detetados pelo núcleo de interceção:

Popup de seleção de alvo do BtleJuice

Clique duas vezes no alvo desejado e aguarde até que a interface esteja pronta (o aspeto do botão bluetooth mudará). Assim que o dispositivo fictício estiver pronto, use a aplicação móvel associada ou outro dispositivo (dependendo do que é esperado) para se conectar ao dispositivo fictício. Se a conexão for bem-sucedida, um evento Connected será exibido na interface principal.

Popup de seleção de alvo do BtleJuice

Todas as operações GATT intercetadas são então exibidas com os UUIDs dos serviços e características correspondentes e, claro, os dados associados a eles. Os dados são mostrados por padrão no formato HexII (uma variante do formato projetado por Ange Albertini), mas pode alternar de HexII para Hex (e vice-versa) clicando nos próprios dados. Ambos os formatos Hex e HexII são suportados pelo BtleJuice.

Repetir operações GATT

É possível repetir qualquer operação GATT clicando com o botão direito nela e selecionando a opção Repetir, conforme mostrado abaixo:

Popup de repetição

Diálogo de repetição

Clique no botão Write (ou Read) para repetir a operação GATT correspondente. Esta operação será registada na interface principal.

Modificação de dados em tempo real

Por último, mas não menos importante, a interface pode intercetar localmente ou globalmente qualquer operação GATT e permitir a modificação de dados em tempo real. Pode usar a interceção global clicando no botão Intercept no canto superior direito ou usar o menu contextual para ativar ou desativar um hook num determinado serviço e característica. Sempre que uma operação GATT é intercetada, a seguinte caixa de diálogo aparecerá:

Diálogo de interceção

Exportar dados para arquivo

Desde a versão 1.0.6, a interface fornece uma funcionalidade de exportação de dados que permite exportações legíveis e em JSON. Estas exportações são geradas com base nas operações GATT intercetadas, mas também incluem informações sobre o dispositivo alvo. Quando o botão Export é clicado, a seguinte caixa de diálogo aparecerá:

Diálogo de exportação

Clique no botão Export na parte inferior da caixa de diálogo para descarregar uma versão JSON (ou texto) dos dados intercetados.

Configurações

A caixa de diálogo de configurações fornece atualmente uma única opção que permite reconectar automaticamente o proxy quando o dispositivo alvo se desconecta. Isto pode ser útil ao lidar com dispositivos que estão ativos durante um curto período de tempo.

Diálogo de configurações

Desconexão

Clicar no botão Selecionar Alvo no canto superior direito quando o proxy está ativo irá pará-lo e permitir a seleção de alvo novamente.

Instalando os bindings

Os bindings Node.js do BtleJuice também podem ser instalados através do npm:

root@kitploit:~
$ sudo npm install -g btlejuice-bindings

Mais informações sobre como usar os bindings Node.js na documentação do pacote.

Agradecimentos

Um agradecimento especial a Slawomir Jasek, que apontou muitos truques noble/bleno para evitar problemas com aplicações móveis e partilhou estratégias de MITM BLE durante a DEF CON 24 =). Ele é também o autor do Gattacker.

Licença

Copyright (c) 2016 Econocom Digital Security

É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos ficheiros de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e de permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:

O aviso de copyright 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 DE DIREITOS DE AUTOR SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, QUER NUMA AÇÃO DE CONTRATO, DELITO OU OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Baixar ferramenta