📈UART

Universal Asynchronous Receiver-Transmitter

Description

En langage courant, l'UART est le composant utilisé pour faire la liaison entre l'ordinateur et le port série. Son exploitation fournis l'un des moyens les plus simples pour prendre le contrôle d'un système IoT. Etant surtout utilisé pour du débogage, il est possible d'obtenir un shell root sur le système via l'exploitation de ce protocole.

Identifier les ports UART

Les ports UART se présentes soit par des pins, soit par des pads. Il existe 4 ports pour le protocole qui sont les ports TX (Transmit), RX (Receive), Vcc (Voltage) et GND (Ground).

Etapes

  • Identifier la "Terre":

Les broches de terre sont généralement marquées comme GND ou parfois sans marquage. Dans ce cas, mettez un multimètre en mode continuité et essayez de vérifier la connectivité entre les broches et les parties métalliques du PCB. La plupart des pièces métalliques utilisées pour les protections mécaniques sont mises à la terre, c'est donc une bonne pratique d'utiliser ce cas de test.

  • Identifier le port Voltage:

Mettez le multimètre en mode tension continue (moins de 20 V) et lisez la tension entre la broche VCC suspectée et la broche de terre. Si la tension est constante et reste égale à la tension du système (la plupart du temps 3,3 v/5 v CC), il s'agit d'une broche VCC.

  • Identifier le port de transmission

Mettez le multimètre en mode tension continue (moins de 20v DC) et connectez la broche suspecte à la sonde de tension (ROUGE) du multimètre et la sonde commune (NOIRE) à la broche de terre que nous avons identifiée dans l'étape précédente.

Vérifiez la tension sur l'écran du multimètre. Les cas de test suivants peuvent être référencés pour définir si la broche est une broche TX:

  1. Il peut être tiré HIGH vers VCC une fois l'appareil démarré.

  2. La tension peut fluctuer de quelques millivolts à VCC au moment du démarrage du dispositif indicateur envoyant des messages sur son moniteur série.

  • Identifier le port de réception

Mettez le multimètre en mode tension continue (moins de 20v DC) et connectez la broche suspecte à la sonde de tension (ROUGE) du multimètre et la sonde commune (NOIRE) à la broche de terre que nous avons identifiée dans l'étape précédente.

Vérifiez la tension sur l'écran du multimètre. Les cas de test suivants peuvent être référencés pour définir si la broche est une broche RX:

  1. Il peut partir haut vers VCC.

  2. Partir haut avec quelques millivolts de moins que VCC

  3. Tension fluctuant de quelques millivolts.

Utiliser un analyseur logique

ressource: https://www.saleae.com/

L'étape suivante est de trouver le baud rate du système afin de pouvoir recevoir des résultats lisibles.

Connexion et mise en place

Mise en place physique

  • Brancher le pin TX à un channel de l'analyseur logique

Mise en place logiciel

  • Ouvrir le logiciel "saleae"

  • Créez une nouvelle entrée d'analyseur en appuyant sur l'icône plus (+) et sélectionnez Async Serial (c'est pour UART).

  • Sélectionnez un canal série (8 canaux sur l'analyseur logique) et conservez les paramètres par défaut.

  • Commencer avec un baud rate bas puis augmenter jusqu'à obtenir un résultat lisible.

  • Essayer les baud rate fréquents (9600, 38400, 19200, 57600, et 115200)

  • Enregistrer les configurations

  • Modifier les paramètres de simulation selon vos goûts

Outil

baudrate

baudrate est un outil python permettant d'automatiser la recherche de baud rate.

ressource: https://github.com/devttys0/baudrate/blob/master/baudrate.py

Obtenir un shell

Utiliser un Bus Pirate, Adafruit FT232H, shikra ou autre pour l'exploitation du protocole UART.

Etablir la connexion puis vérifier si l'appareil est connecté avec la commande:

$ ls dev/tty*

Utiliser ensuite la commande suivante pour interagir avec le système:

$ python baudrate.py -p /dev/ttyUSB1

Il est maintenant possible de basculer entre les débits en bauds pour sélectionner le débit en bauds correct qui donne le texte lisible du processus de démarrage. Une fois le processus de démarrage terminé, appuyez sur CTR + C et enregistrez la configuration minicom avec l'extension (.pcap).

On peut ensuite interagir avec l'appareil au travers de minicom.

L'appareil vous demandera alors probablement des identifiants qui pourront être retrouvés dans la documentation de l'appareil ou en essayant des identifiants par défaut comme admin:admin, admin:1234, admin:password...

Minicom est un programme de contrôle de modem et d'émulation de terminal pour les systèmes d'exploitation de type Unix.

Dernière mise à jour