DVID Writeup 05 - Bluetooth - Caractéristiques

Table des matières :

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 :

Boot screen

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).

bluetoothctl scan

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.

bluetoothctl connect

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 :

bluetoothctl menu gatt

Nous allons maintenant répertorier les attributs proposés par le périphérique Bluetooth à l’aide de la commande list-attributes :

bluetoothctl 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> :

bluetoothctl select-attribute

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.

bluetoothctl read value

Et nous avons le drapeau !

Références