Tools:HackRF One

De HackBBS
Aller à la navigation Aller à la recherche

HackRF One

Le HackRF One (Great Scott Gadgets) est une radio définie par logiciel (SDR) capable d'émettre ou de recevoir des signaux radio de 1 MHz à 6 GHz.

Il a été conçu pour permettre le test et le développement de technologies radio modernes et de nouvelle génération. Le HackRF One est un matériel open source qui peut être utilisée en tant que périphérique USB ou programmée pour un fonctionnement autonome.

  • Fréquence de fonctionnement de 1 MHz à 6 GHz
  • Émetteur-récepteur semi-duplex
  • Jusqu'à 20 millions d'échantillons par seconde
  • Échantillons en quadrature de 8 bits (8 bits I et 8 bits Q)
  • Compatible avec GNU Radio, SDR#, etc.
  • Gain RX et TX et filtre en bande de base configurables par logiciel
  • Alimentation du port d'antenne contrôlée par logiciel (50 mA à 3,3 V)
  • Connecteur d'antenne SMA femelle
  • Entrée et sortie d'horloge SMA femelle pour la synchronisation
  • Boutons pratiques pour la programmation
  • En-têtes de broches internes pour l'expansion
  • USB 2.0 haut débit
  • alimenté par USB

Commandes

Hackrf_info : informations de version

Hackrf_transfer : capturer, transmettre

hackrf_debug : commande de debug du hackRF One

hackrf_sweep : balayer un champ de fréquences et l'analyser

hackrf_spiflash : mettre à jour le firmware

hackrf_cpldjtag : mettre à jour le cpld

Installation

$ apt install hackrf

Mise à jour du micrologiciel

Les appareils HackRF sont livrés avec un micrologiciel sur la mémoire flash SPI. Le micrologiciel peut être mis à jour à l'aide d'un câble USB et d'un ordinateur hôte.

Mise à jour du SPI Flash Firmware

$ hackrf_spiflash -w hackrf_one_usb.bin

Vous pouvez trouver le binaire du firmware (hackrf_one_usb.bin) dans le répertoire firmware-bin de la dernière version ou vous pouvez compiler le vôtre à partir des sources. Pour Jawbreaker, utilisez hackrf_jawbreaker_usb.bin. Si vous compilez à partir des sources, le fichier s'appellera hackrf_usb.bin.

Lorsque vous écrivez une image de micrologiciel sur la mémoire flash SPI, veillez à sélectionner un micrologiciel dont le nom de fichier se termine par .bin.

Après avoir écrit le micrologiciel sur la mémoire flash SPI, vous devrez peut-être réinitialiser le dispositif HackRF en appuyant sur le bouton RESET ou en le débranchant et en le rebranchant.

Si vous obtenez une erreur mentionnant HACKRF_ERROR_NOT_FOUND, il s'agit souvent d'un problème de permissions dans votre système d'exploitation.

Pour vérifier si la mise à jour a été correctement installée:

$ hackrf_info
hackrf_info version: unknown
libhackrf version: unknown (0.5)
Found HackRF
Index: 0
Serial number: 000000000000000057b068dc22451163
Board ID Number: 2 (HackRF One)
Firmware Version: 2018.01.1 (API:1.02)
Part ID Number: 0xa000cb3c 0x00724357

Si nécessaire seulement: Récupération du SPI Flash Firmware

Si le firmware installé dans la mémoire flash SPI a été endommagé ou si vous programmez un HackRF fait maison pour la première fois, vous ne pourrez pas utiliser immédiatement le programme hackrf_spiflash comme indiqué dans la procédure ci-dessus.

Suivez plutôt les étapes suivantes :

  • Suivez les instructions de démarrage DFU pour démarrer le HackRF en mode de démarrage DFU (DFU Boot).
  • Tapez dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu pour charger le micrologiciel d'une version dans la RAM. Si vous avez un Jawbreaker, utilisez hackrf_jawbreaker_usb.dfu à la place. Alternativement, utilisez make -e BOARD=HACKRF_ONE RUN_FROM=RAM pour charger le firmware en RAM et le démarrer.
  • Suivez la procédure de mise à jour du micrologiciel SPI flash ci-dessus pour écrire l'image du micrologiciel .bin dans la mémoire flash SPI.

Si nécessaire seulement: DFU Boot

Le mode de démarrage DFU (DFU Boot) n'est normalement nécessaire que si le micrologiciel ne fonctionne pas correctement ou n'a jamais été installé.

Le microcontrôleur LPC4330 du HackRF est capable de démarrer à partir de plusieurs sources de code différentes. Par défaut, le HackRF One démarre à partir de la mémoire flash SPI (SPIFI). Il est également possible de démarrer le HackRF en mode DFU Boot (USB). En mode de démarrage DFU, le HackRF procède à une énumération via USB, attend que le code soit fourni à l'aide de la norme DFU (Device Firmware Update) via USB, puis exécute ce code à partir de la RAM. Le SPIFI est normalement inutilisé et non modifié en mode DFU.

Pour démarrer le HackRF One en mode DFU, maintenez le bouton DFU enfoncé tout en l'allumant ou en appuyant sur le bouton RESET et en le relâchant. Relâchez le bouton DFU lorsque le voyant 3V3 s'allume. Le voyant 1V8 doit rester éteint. À ce stade, le HackRF One est prêt à recevoir le micrologiciel par USB.

Pour démarrer le Jawbreaker en mode DFU, court-circuitez deux broches sur l'une des en-têtes "BOOT" lorsque l'alimentation est fournie pour la première fois. Les broches qui doivent être court-circuitées sont les broches 1 et 2 de l'en-tête P32 du Jawbreaker. L'en-tête P32 est étiqueté P2_8 sur la plupart des Jawbreaker mais peut être étiqueté 2 sur les prototypes. La broche 1 est étiquetée VCC. La broche 2 est la broche centrale. Après le démarrage DFU, vous devriez voir la LED VCC s'allumer et noter que la LED 1V8 ne s'allume pas. À ce stade, le Jawbreaker est prêt à recevoir un micrologiciel par USB.

Vous ne devez utiliser qu'une image de micrologiciel dont le nom de fichier se termine par .dfu, et non un micrologiciel se terminant par .bin.

Installer DFU-Util

$ apt install dfu-util

Depuis les sources:

$ cd ~
$ sudo apt-get build-dep dfu-util
$ sudo apt-get install libusb-1.0-0-dev
$ git clone git://git.code.sf.net/p/dfu-util/dfu-util
$ cd dfu-util
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Mise à jour du CPLD

Les anciennes versions du firmware du HackRF (prior to release 2021.03.1) nécessitent une étape supplémentaire pour programmer un flux binaire dans le CPLD.

Pour mettre à jour l'image du CPLD, mettez d'abord à jour le microprogramme flash SPI, libhackrf et hackrf-tools.

Ensuite :

$ hackrf_cpldjtag -x firmware/cpld/sgpio_if/default.xsvf

Trois LEDs devraient commencer à clignoter. Cela indique que le CPLD a été programmé avec succès. Réinitialisez le dispositif en appuyant sur le bouton RESET ou en le débranchant et en le rebranchant.

Replay Attaque

Portail

Nous devons déterminer sur quelle fréquence la télécommande va communiquer (autours des 433Mhz).

Sur GQRX, nous allons pouvoir vérifier et ajuster notre fréquence d'écoute. Lorsque nous activons la télécommande, nous devons observer une variation du signal sur la fréquence écoutée.

Enregistrement

$ hackrf_transfer -s 2 -f 433000000 -r file

Émission

$ hackrf_transfer -s 2 -f 433000000 -t file -a 1 -x 24

Options

  • -s : Taux d'echantillons en MHz
  • -f : Fréquence exacte enregistrée ou diffusée en Hz
  • -r : Nom du fichier à l'enregistrement
  • -t : Nom du fichier à la lecture
  • -a : Amplification
  • -x : Gain entre 0 et 47 dB (en Décibel)
  • -h : Pour le menu complet des options.

Talkie-walkie

Il s'agit exactement du même procédé vu ci-dessus pour les portail.

Car Key Replay Attack

Pour ne pas que les voitures soit vulnérables à une attaque simple de Replay Attack, les constructeur ont équipé les nouvelles voitures d'un système de code roulant (rolling code system) chaque fois que vous appuyez sur le bouton de déverrouillage, la télécommande utilise un algorithme pour générer un nouveau code ce qui rend donc les ancien siganux inutilisables, un simple Replay Attack comme celui présenté ci-dessus n'est donc pas impossible.

Étude du signal avec URH

URH

Radio Jamming

Le jamming est une technique de brouillage visant à perturber les fréquences comportant des informations, en les submergeant avec du bruit. C'est le rapport signal sur bruit.

Jamming Car Key

En émettant du bruit sur la fréquence utilisé par une clé de voiture, le signal se retrouvera ainsi perdu et ne pourra ainsi pas être reconnu.

RollJam Attack

Méthodologie de l’attaque :

  • Un brouillage radio est lancé sur la fréquence 433.92 qui est la fréquence de déverrouillage de notre voiture.
  • La victime tente de déverrouiller une première fois la voiture en appuyant sur la clef, et donc en émettant un signal.
  • Le signal est capturé et enregistré.
  • La victime tente donc une deuxième fois de déverrouiller la voiture, toujours sans réussite.
  • Le brouillage s’arrête et le premier signal est lancé ce qui déverrouille la voiture.

Le 2eme signal (Rolling Code) émis par la victime est enregistré. Comme la voiture a reçu uniquement le premier signal, le rolling code du second signal est donc valide, l'attaquant pourra donc déverrouiller la voiture par la suite.

Jamming Wifi

Portapack

SSTV

Tempest SDR

Normes VGA/HDMI

Analyse d'une trame HDMI

Reconstitution d'une image

GPS Spoofing

Références