jeudi 3 octobre 2013

Tempest, fuite d'information, interprétation du rayonnement ambiant

Présentation surprenante de Melissa Elliott à la conférence Defcon 21 concernant l'analyse du bruit ambiant produit par les sources de rayonnement de toute sorte.

Sa présentation se base sur l'utilisation d'une clé USB TV transformable en SDR du pauvre et déjà évoquée en détail dans des billets précédents sur ce blog.

Avec cet outil elle tente de reconstituer l'image d'un PC portable uniquement en interprétant le bruit radio émis par cet ordinateur chinois bas de gamme (bas de gamme = pas de blindage, chinois = absolument aucune conformité aux normes européennes d'émission).

C'est le même principe que le légendaire Tempest qui permet depuis l'arrivée des écrans cathodiques, et encore aujourd'hui avec les LCD, de recomposer précisément une image rien qu'en captant passivement le rayonnement émis par cet écran ou son câble d'alimentation.

Avec sa petite SDR, Melissa Elliott détecte un pic radio correspondant à la fréquence de l'horloge du PC, ainsi qu'un autre qui correspond au taux de rafraîchissement de l'écran (480x800x24x60Hz, résolution x nombre d'images par seconde x taux de rafraîchissement).

A noter que cela fonctionne également écran éteint puisque c'est en partie le câble du signal vidéo qui participe à la fuite d'information.

Dans le même genre d'application, on peut imaginer une base de données d'appareils électriques courants et de leur niveau et type d'émission selon leur activité. Grâce à cette emprunte numérique on pourra ensuite les identifier à distance ainsi qu'en déduire leur activité en temps réel. Les smart grid et autres compteurs électriques intelligents sont en partis basés sur ce principe. Un tel compteur peut très bien identifier les différents appareils connectés sur le réseau électrique de votre foyer, ainsi que l'utilisation que vous en faîtes.

Encore plus surprenant, l'analyse d'un disque dur, de l'activité de la RAM, ou du champ capacitif d'un écran tactile.

A ceci s'ajoutent les possibilités d'écoute plus classiques, mais souvent ignorées, des claviers bluetooth, des micros sans fil, etc.

Installer Kali Linux sur Android

Kali pour faire simple c'est Backtrack 6 et c'est très facile à installer sous android qu'ils vous disent. Et bien moi j'ai eu pas mal de pépins donc voici ma procédure et mes déboires.

J'ai installé Kali sur une carte SD, pour pouvoir avoir plus de place et pour la transférer d'un téléphone à l'autre sans avoir à tout réinstaller. Par précaution j'ai formaté la SD en ext4. Ensuite il faut installer Linux Deploy du Google Play et créer un profil Kali Linux

Sélectionner la distribution Kali Linux, paramétrer 8go de taille de disque pour être tranquille (4Go par défaut) et sélectionner la distribution compilée en armhf. L'armhf est une architecture qui supporte l'ARMv7 et est plus performante que l'armel, notamment grâce à la disponibilité d'instructions hardware sur les nombres à virgule. L'armel lui est plus compatible avec l'ancien matériel mais vous pouvez très probablement vous en passer

C'est le moment de cliquer sur "Install Linux Distribution", et c'est là que je me suis payé l'erreur suivante:
"
Mounting partitions:
/ ... fail
<<< end: install
"
Là j'ai galéré, repartionné ma SD card sous Linux en ext2 avec DiskUtility, tenté la formatter directement en adb shell sous android:
mk2fs /dev/mmncblock1 J'ai tenté de forcer le mount de la SD en read/write (mmcblock1p1 fait référence à la parition 1, mmcblock1p2 à la partition 2 car au final j'ai séparé ma SD en une partition ext2 et une en fat)
umount /efs
mount -o rw -t ext2 /dev/mmcblock1p1 /storage/sdcard1
Puis finalement après quelques reboot et réinstallation de Linux Deploy l'installation s'est lancée correctement donc et je ne suis pas sur du tout persuadé que mes manipulations précédentes en ai été la solution.

Quoiqu'il en soit une foit installée vous pouvez accéder à votre distribution Kali par SSH et par VNC. Soit en local directement sur le téléphone avec un client terminal ou VNC ou par l'intermédiaire d'un PC.

Si vous passez par un PC vous pouver vous connecter à votre téléphone via le cable usb en prenant soin d'exécuter les commandes suivantes sur le PC:
adb forward tcp:2222 tcp:22
adb forward tcp:59000 tcp:5900
Ensuite vous pouvez attaquer le localhost du PC comme si c'était votre téléphone android:
ssh android@localhost -p2222 A noter que le couple login/mot de passe installé par défaut n'est pas l'habituel root/toor propres aux distributions backtrack mais android/changeme