DVID Writeup 05 - Bluetooth - Caractéristiques
Si vous n’êtes pas encore familiarisé avec le projet Damn Vulnerable Iot Device (DVID), je vous encourage à lire la page de présentation du projet.
Objectif du challenge
Dispositif Bluetooth de mot de passe unique. Ce périphérique IoT doit fonctionner avec une application Android, mais vous ne l’avez pas. L’objectif est de fournir une capture d’écran du mot de passe.
“Something is leaking on 0000ffe1
”
Flash du firmware sur la carte DVID
Tout d’abord, nous allons flasher le firmware sur la carte DVID. Pour ce faire, nous utiliserons avrdude
et un programmeur AVR USB. Si vous ne connaissez pas les options de avrdude
, je vous encourage à lire la section flashing the board section de la première DVID ERITUPEUP de cette série. Nous allons flasher le firmware sur la carte à l’aide de ce beau script flash.sh :
#!/bin/bash
```sh
#!/bin/bash
if [[ ! -d "./DVID/" ]]; then
git clone https://github.com/vulcainreo/DVID
fi
pushd ./DVID/trainings/firmware/defaultPassword/
avrdude -F -v -p atmega328p -P /dev/ttyUSB0 -c usbasp -u -U flash:w:defaultPassword.ino.with_bootloader.arduino_standard.hex
popd
Maintenant, nous allons connecter la carte DVID à notre ordinateur à l’aide du programmeur AVR USB et démarrer le script. Lorsque la programmation AVR est terminée, la carte électronique doit redémarrer et vous devriez voir ceci :
Résolution du challenge
Dans ce challenge, le périphérique IOT envoie des informations utilisant des caractéristiques Bluetooth sur 0000ffe1
. Premièrement, nous devons faire une analyse Bluetooth pour trouver l’appareil. Nous pouvons le faire à l’intérieur de bluetoothctl
à l’aide de la commande scan on
(et scan off
pour arrêter).
Maintenant que nous avons trouvé le périphérique IoT, nous pouvons nous y connecter en saisissant connect
suivi de l’adresse Bluetooth de l’appareil.
Pour utiliser les caractéristiques Bluetooth, nous devons utiliser un menu spécifique, appelé gatt
. Pour y accéder via bluetoothctl
, tapez menu gatt
pour entrer dans le menu gatt
et back
pour en sortir. Dans le menu gatt
, nous avons accès à de nombreuses fonctionnalités avancées, telles que les attributs d’inscription d’un périphérique, de lecture et d’écriture de données aux services Bluetooth :
Nous allons maintenant répertorier les attributs proposés par le périphérique Bluetooth à l’aide de la commande list-attributes
:
En regardant l’écran du périphérique DVID, nous pouvons voir un message “Something is leaking on 0000ffe1
”, nous allons donc essayer d’interagir avec la caractéristique . Pour ce faire, nous devons sélectionner l’attribut à l’aide de la commande select-attribute <uuid>
:
Ensuite, nous devons acquire-notify
pour nous connecter au flux et pouvoir lire les valeurs du service/characteristic. Nous pouvons ensuite taper read
pour lire le flux de valeurs à partir des services/characteristiques.
Et nous avons le drapeau !
Références
- DVID Project on Github : https://github.com/Vulcainreo/DVID
- DVID Project site : http://dvid.eu/