Hacking:GSM hack France
Matériel requis
* RTL-SDR * Samsung Galaxy S
Voici les étapes pour intercepter les trames GSM
Dans le cadre de nos tests nous allons intercepter les data d'un téléphone de test. Nous allons nous baser sur un samsung galaxy S.
Afin de nous caler sur une frequence qui peut etre capté par le rtl-sdr nous allons forcer le GSM à utiliser la bande 900. Le téléphone dispose d'un menu secret permettant de forcer l'utilisation d'une bande:
*#*#197328640#*#*
Puis opn accède au menu
[1] DEBUG SCREEN -> [8] PHONE CONTROL -> [7] NETWORK CONTROL -> [2] BAND SELECTION -> [3] GSM BAND[*] -> Puis on active [3] GSM 900 [*]
Nous pouvons vérifier que nous utilisons bien cette bande avec le menu secret:
*#0011#
Ok, maintenant le téléphone est sur la bande GSM900. Nous devons maintenant sniffer sur un canal particulier, c'est l'arfcn. Pour celà, nous pouvons utiliser un autre menu secret:
[1] DEBUG SCREEN -> [4] NEIGHBOUR CELL
Lors de ce test, le canal ayant le niveau de puissance le plus fort est:
Arfcn_Num ; 37 , rxlev: 38
Nous pouvons donc calculer la fréquence corespondant à ce canal avec l'outil arfcncalc:
arfcncalc -a 37 -b 900 -d
La fréquence est donc de 942.4Mhz
Avec gqrx, nous pouvons visualiser le spectre, et se caler sur le signal le plus fort. La fréquence est donc de 942.36Mhz. Nous pouvons sniffer cette fréquence et générer un fichier cfile avec gnuradio-companion. Voici le schema gsm.grc utilisé.
Nous pouvons ensuite visualiser les trames gsm dans wireshark à l'aide de gsm_receiver_rtl.py de la suite airprobe. Dans un premier temps, lancer la version patché de wireshark qui permet de filtrer les trames gsmtap et écouter sur l'interface lo. Ensuite analyser le dump.cfile avec gsm_receive_rtl.py
/hack/phreaking/Radio/airprobe/gsm-receiver/src/python$ ./gsm_receive_rtl.py -I /tmp/dump.cfile -d 1 B0
Les trames s'affichent alors dans wireshark.
Todo: Dechiffrement avec Kraken
* S'inspirer de www.mail-archive.com/a51@lists.reflextor.com/msg01114.html
* Renommer tous les dlt en xxx.dlt (ex: 100.dlt) * Les placer à la racine d'un disque * Se servir de Behemoth.py
Creer une fichier tables.conf contenant:
Device: /media/84835dba-c5489-4af1-a5421 50 Table: /mnt/part4/mnt/share/a51_table_100.dlt 50