Introduction à l’exploitation Hardware (1/3) matériel et étude d’un PCB

Kevin Boulom Etude - Recherche, Sécurité IoT

Introduction

Le hacking hardware peut faire peur au premier abord, l’image générale qui s’en dégage étant la nécessité d’avoir une bonne connaissance en électronique. Après la lecture de cette série d’articles, vous vous rendrez compte qu’une connaissance partielle suffit pour avoir un accès root sur certains matériels bon marché.

Nous avons décidé de nous attaquer à un router wifi. Assez bon marché et d’une grande marque connue, celui-ci est utilisé dans bon nombre de foyers. Pour des raisons de droit, nous ne donnerons pas la marque ni le modèle de celui-ci. L’objectif était pour nous d’avoir un terminal root sur le routeur, mais également de dumper le firmware de celui-ci pour chercher d’éventuelles vulnérabilités, backdoors, …

Le matériel nécessaire

Le matériel nécessaire dans la réalisation de cette tâche est assez sommaire.

Dans un premier temps, il vous faudra un multimètre. Outil indispensable pour le reverse engineering hardware, ainsi qu’un fer à souder.

 

Passons maintenant à des outils un peu plus spécifiques. Un outil de type BusPirate sera indispensable :

Cet outil permet de faire interface entre un ordinateur et la carte à travers différents protocoles spécifiques au hardware. En option, nous aurons également une pince spéciale SOC8, permettant de juste clipser la pince sur une puce 8 patte au lieu de souder des fils sur chaque patte de la puce. Dans ce papier, il nous sera utile pour communiquer avec le bus UART qui est un port de débogage hardware, mais nous y reviendrons plus tard.

En option, nous pourrons utiliser un analyseur logique, qui permet d’identifier des niveaux logiques. Il ne faudra pas le confondre avec un oscilloscope. La grande différence est que l’analyseur logique travail en numérique et donc, il permet uniquement d’identifier des états 0 ou 1. Alors que l’oscilloscope, permet de visualiser des tensions. Nous aurons donc la possibilité de voir des signaux sinusoïdaux, ce qui n’est pas possible avec un analyseur logique.

En option également, nous pourrons utiliser un microscope afin de voir le circuit de plus près, que ce soit pour lire les inscriptions sur les puces, soit pour repérer d’éventuelles coupures de circuit.

Présentation de la carte électronique étudiée

Attardons-nous maintenant à l’étude de la carte électronique :

Petite astuce pour ouvrir la coque, qui est généralement clipsée, de ce genre d’appareil sans dommage, l’utilisation d’un médiator de guitare est très pratique.

On peut donc compter 4 puces sur cette carte. La première chose à faire sera donc de connaître leurs fonctions. Pour ce faire, il suffira de lire les gravures sur les puces. Dans une partie des cas ce seront des puces bien documentées qui sont fabriquées par des fondeurs de grandes marques. Mais dans certains cas, ce seront des puces conçues spécifiquement par le constructeur et très peu documenté. Sur ce routeur, ce n’est pas le cas.

Les références des puces sont donc :

  • BCD AP3502E (340kHz, 2A Synchronous DC-DC Buck Converter)
  • GigaDevice GD25G32C (4Mo Serial Flash)
  • Zentel A3S56D40GTP (32Mo Double Data Rate Synchronous DRAM)
  • Qualcomm QCA9533 (WISoC MIPS 24Kc)

Nous ne nous intéresserons pas au BCD AP3502E qui n’est présent que pour faire une régulation de tension continue. En revanche, le reste des puces, de la mémoire flash, de la DRAM et un System On Chip, sont beaucoup plus intéressants, car combiné, nous avons un ordinateur sommaire.

Dans l’article suivant, nous nous intéresserons au port série présent sur la carte.