Skyduino:~#
Articles
arduino, Corrigé, programmation, projet, tutoriel

SMS classe 0, un bon moyen de faire peur à vos amis

Bonjour tout le monde !

Aujourd’hui je vais vous parler d’une technique bien vicieuse pour faire peur à vos amis ;)
(Ou à n’importe quelle personne possédant un portable GSM, mais ça c’est pas bien)

Disclaimer :
Dans cet article j’ai pris comme excuse "faire une blague à vos amis" mais soyons réaliste avec cette méthode vous pouvez faire bien pire que cela …
Une personne un tant soit peu intelligente pourrait faire un joli coup de social engineering avec cette méthode.
C’est pourquoi je rejette toute responsabilité quand à une quelconque utilisation malveillante du contenu de cet article.
Vous êtes pleinement responsable de ce que vous faites et de ce que cela peut entraîner.
Si les choses tournent mal vous n’aurez qu’a vous en prendre à vous même !

Introduction :

Dans tous les protocoles de communication se trouve une fonctionnalité oubliée de tous mais belle et bien présente.
Et souvent cette fonctionnalité est à l’origine de problèmes plus ou moins grave quand un curieux finit par la (re)découvrir.

Aujourd’hui je vais vous faire découvrir une fonctionnalité du réseau GSM, oubliée par beaucoup de personnes, mais toujours d’actualité et d’une facilité / dangerosité déconcertante.

Tout le monde utilise le réseau GSM, qui de nos jours n’a pas un téléphone portable ?
Je ne parle même pas d’avoir un android-phone, un iphone ou tout autre smartphone ultra-performant, non juste un téléphone quel qu’il soit.

Tout ces téléphones possèdent dans leurs entrailles un chipset GSM, chipset ayant pour but de communiquer avec le réseau GSM.
Ces chipsets respectent des standards internationaux, documentés et largement disponibles sur le web.

Rappelez vous, il y a de cela quelques temps (presque deux mois) on entendez parler d’un "mystérieux virus" sévissant principalement sur les iphones.
Le journal du geek (certaines mauvaise langues dirons que ce n’est pas une référence, osef) avait même fait un article sur le sujet :
http://www.journaldugeek.com/2012/06/22/un-mysterieux-virus-sevit-sur-iphone/

En réalité il n’y avait aucun virus, juste un personne ayant pour seul but dans la vie de nuire !

Cette personne avait (tout simplement) utilisé une fonctionnalité disponible à tout utilisateur du réseau GSM de manière détournée pour arriver à ses fins.
Le nom de cette fameuse fonctionnalité ? Les SMS "classe 0", aussi appelés "messages flash".

Si on se réfère à ce que dit wikipedia sur le sujet voici ce qu’est un "SMS classe 0" :
classe 0 : (flash SMS) le message est directement affiché à l’utilisateur sur l’écran du mobile à la réception. Un rapport est envoyé ensuite au centre de service. Le message n’est enregistré ni dans la mémoire du téléphone ni dans la carte SIM. Il est effacé dès que l’utilisateur a validé la visualisation.
cf : http://fr.wikipedia.org/wiki/Short_Message_Service#Classes_de_SMS

Alors pourquoi les iphones spécifiquement (pour revenir sur l’article cité plus haut) ?
En réalité les SMS classe 0 sont gérés de manière différente suivant les téléphones.
Certain téléphones tel que les windows phones ou les android phones vont afficher une fenêtre popup, mais permettent à l’utilisateur d’enregistrer le message dans son téléphone comme un SMS classique.
Ces téléphones sont donc immunisés (d’une certain façon) contre le "danger" des SMS classe 0 puisse qu’il est possible d’enregistrer le message et donc par la suite d’en connaitre l’expéditeur.

Le problème ce sont les autres téléphones, iphone, etc … qui ne permettent pas d’enregistrer le message.
De fait celui ci s’affichant sans aucune information sur l’expéditeur (juste le texte), si celui ci ne peut pas être stocké pour ensuite être relu il est impossible de savoir qui l’a envoyé.
Pire la fenêtre popup étant la même que celle utilisé par les applications classique il est impossible de savoir qu’il s’agit d’un SMS !
(Ps: Les android phone et les windows phone affichent clairement qu’il s’agit d’un SMS, même si la popup est de la même forme qu’une popup classique)

Pourquoi les iphones étaient-ils donc tout particulièrement ciblés ?
Tout simplement parce qu’il est plus facile "d’attraper" un utilisateur d’iphone qu’un utilisateur d’android ou windows phone.
(Je ne ferai aucun commentaire quand à une quelconque différence d’intelligence entre les apple-fanboy et les autres *sifflote*)

Les SMS classe 0 :

Ok, on a compris que les SMS classe 0 :
- s’affichaient dans une popup,
- ne s’enregistraient pas (par défaut) dans la mémoire du téléphone
- pouvaient faire un bazars inimaginable en cas d’utilisation malveillante

Mais comment envoyer un SMS classe 0 ?
- Sur les android phone : avant la version 2.2.x il était possible d’envoyer un SMS classe 0 via l’API du gestionnaire de messages, depuis ce n’est plus possible
(cf http://stackoverflow.com/questions/9123125/class-0-sms-flash-sms-on-android)
- Sur les windows phone : cela doit être possible, mais ne m’intéressant pas à ce type de smartphone je ne pourrai en être sûr
- Sur les iphones : il y a des dizaines applications sur l’apple-store …
(cf http://www.forummobiles.com/topic/229003-all-petite-astuce-pour-envoyer-des-sms-classe-0/)
- Depuis un service web : OVH par exemple
(cf http://guides.ovh.com/Http2Sms)

Mais ce genre de méthodes "user friendly" n’est pas assez DIY pour moi ! :)
Tout le monde sait installer une application ou utiliser un service web, mais est ce que tout le monde sait utiliser les commandes AT+T ?
Je ne pense pas ;)

Les commandes AT+T :

Parmi les grands standards de la téléphonie mobile se trouvent les commandes AT+T.
Ce sont des commandes bas niveau qui permettent de communiquer avec un chipset GSM et de lui faire exécuter les commandes de son choix.

Bien sûr pour pouvoir utiliser des commandes AT+T il faut un chipset GSM compatible (… logique).
C’est pourquoi j’ai décidé d’utiliser ma shield GSM pour arduino (fabriqué par seeedstudio).

En parcourant le wiki de seeedstudio on trouve plein de choses intéressantes.
Dont un lien vers un PDF qui va nous être très utile, à savoir la liste des commandes AT+T du chipset GSM SIM900 :
http://www.seeedstudio.com/wiki/index.php?title=GPRS_Shield_v0.9b#Resources

Ce chipset SIM900 est un peu le "saint Graal" du bricoleur GSM, il supporte les SMS, les appels, l’internet mobile (socket, HTTP, FTP), … et il est disponible en format breakout.
De plus il respecte à la lettre les standards AT+T (avec quelques extensions) et il est extrêmement bien documenté.

Le montage "gateway" :

Afin de pouvoir utiliser le chipset SIM900 comme on le souhaite il va falloir faire un montage qui servira de pont entre l’ordinateur et le chipset GSM.

S’agissant d’une shield arduino, il est normal que j’utilise une carte arduino pour ce montage ;)

Remarque: pensez à mettre les jumpers en position "SW SERIAL" (software serial) ;)

Voici le code faisant le lien entre l’usb de l’arduino et la shield gsm (pour arduino 1.x) :

#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(7, 8);
 
void setup()
{
  mySerial.begin(19200);
  Serial.begin(19200);   
}
 
void loop()
{
  if(Serial.available()) {
    mySerial.write((char)Serial.read());
  } else if(mySerial.available()) {
    Serial.write((char)mySerial.read());
  }   
}

Les commandes "magique" :

Passons aux choses sérieuses ;)
Pour embêter chez vos amis il faut exécuter un nombre hallucinant de commandes AT+T !
Oui … il faut exécuter 3 commandes AT+T (Ho my god, 1 + 1 + 1 = 3, MER IL SONT FOU !)

Attention, préparez vous psychologiquement à ce déferlement de lignes de commande :
AT+CMGF=1
AT+CSMP=17,167,0,240
AT+CMGS="06xxxxxxxx"
... le message SMS
ctrl+Z

Bon restons sérieux :)
Le détail des différentes commandes :

AT+CMGF=1

–> Permet d’envoyer un message en mode texte

AT+CSMP=17,167,0,240

–> Permet de sélectionner le type de message SMS à envoyer, ici :
17 = SMS-DELIVER = valeur par défaut (envoi du SMS via la plateforme par défaut)
167 = SMS-SUBMIT = valeur par défaut (pas de contrainte de temps pour l’envoi du SMS)
0 = protocole à utiliser = valeur par défaut (on n’envoie pas un message de configuration ou autre, juste un SMS classique)
240 = type de structure du SMS = ici SMS classe 0

AT+CMGS="06xxxxxxxx"

–> Envoi d’un message SMS (ici textuel)
La saisie du texte se termine par un CTRL+Z

Pour envoyer ces commandes il faut tout d’abord ouvrir un terminal série, pour ma part j’utilise l’excellent logiciel terminalBPP.
Il faut configurer le port série en 19200 bauds, 8 bits de données, pas de parité, 1 bit de stop, pas de contrôle de flux.
Une fois le terminal ouvert il faut appuyer sur le bouton d’alimentation de la shield jusqu’à ce que la led POWER devienne rouge.

Astuce : Pour envoyer un CTRL+Z avec terminalBPP :

-> Il faut faire une macro avec comme valeur $1A ($ = envoi d’une valeur hexa, 1A = code ascii du ctrl+Z) ;)
Et quand on veut envoyer un CTRL+Z il suffit ensuite d’exécuter la macro.

Voici les commandes que j’ai utilisé, de l’allumage à l’extinction du module SIM900 :

La version texte commentée (les commandes que j’ai tapé commencent par AT+) :

// Appui sur le bp d'alimentation, la led POWER devient rouge
RDY // Le module SIM900 est prêt à recevoir des commandes

+CREG: 2 // Phase d'auto configuration du module (au démarage)

+CREG: 0

+CFUN: 1

+CPIN: SIM PIN // Le module SIM900 demande le code pin pour déverrouiller la carte sim
AT+CPIN=xxxx   // On entre donc le code pin via la commande AT+CPIN=1234

OK // Le module nous répond que tout va bien

+CREG: 2 // Le module SIM900 reprend ensuite sa phase d'auto configuration

+CREG: 1,"xxxx","xxxx" // C'est bon nous somme associé au réseau GSM
// Les deux chiffres hexa que j'ai flouté corresponde à l'ID de l'antenne GSM, vous pouvez géolocaliser quelqu'un à +/-30Km avec ce seul couple de numéro et google map

Call Ready // Les appels & SMS sont désormais disponible, LET'S go !
AT+CMGF=1  // On passe en mode SMS textuel

OK
AT+CSMP=17,167,0,240 // On passe en mode SMS classe 0

OK
AT+CMGS="06xxxxxxxx" // On veut envoyer notre SMS (mettre ici le numéro de téléphone du destinataire)

> Hello world // Le message du SMS

> // CTRL+Z
+CMGS: 67 // Le SIM900 nous affiche le numéro du SMS retourné par le réseau GSM

OK
// Appui sur le bp d'alimentation, la led POWER redevient verte
NORMAL POWER DOWN // Le chipset SIM900 est désormais en mode veille

+CREG: 3 // L'antenne et le réseau sont coupés

Le résultat :

Voici ce que cela donne sur un windows phone (j’avais que ça sous la main, je précise qu’il s’agit du smartphone de mon père, android phone > * ;))

Vous pouvez faire croire ce que vous voulez à n’importe qui avec un message "en provenance du réseau" ;)

Maintenant que vous savez le pourquoi du comment, vous pouvez (au choix) :
- vous méfier des popup générées par un SMS flash
- envoyer des SMS flash à vos amis (bande de petit voyous ;))

Pour ceux qui voudrait plus d’informations sur les différents champ d’un paquet SMS :
http://www.dreamfabric.com/sms/

Et plus particulièrement sur les SMS flash :
http://www.dreamfabric.com/sms/alert.html

Vous pouvez aussi envoyer des SMS en mode PDU, c’est la version bas niveau pour envoyer des SMS (via une chaine en hexa contenant les différents champs du paquet SMS).

About these ads

Discussion

7 réflexions sur “SMS classe 0, un bon moyen de faire peur à vos amis

  1. Très intéressant !

    J’ai obtenu le même résultat avec mon serveur debian et une clef 3G huawei, et un petit gammu -flash. :)

    Je connaissais pas, ça fait effectivement un effet sympa ^^

    Publié par Nicolas | 17 août 2012, 0 h 20 min
    • Tu peut envoyer des paquets GSM ou à défaut lire ceux que tu reçoient avec wireshark et ta clef 3g ?

      Si oui donne moi la référence de ta clef 3G et je fait un massacre :)
      (faire du spoofing du "caller id", ce serait epic)

      Publié par skywodd | 17 août 2012, 0 h 23 min
      • Oui je peux ! J’ai monté un serveur web perso qui lit et envoie des textos.

        Tu peux me contacter sur skype Boa67 :)

        Ou via mon mail. J’essai justement en ce moment de spoofer le caller id, de l’aide ne serait pas de refus :p

        Publié par Nicolas | 20 août 2012, 19 h 40 min
  2. Salut SkyWood

    comme d’hab tes tutus sont passionnants, mais le dernier encore plus.
    N’ayant pas de machin GSM pour ma Uno, j’ai essayé avec une clé 3 G (Bouygues, débit de merde et il veut toujours se mettre en Wifi..)
    J’ai essayé de la piloter (la clé) sous Windows 7 (sous Bootcamp), mais pas terrible.
    En partition "Mac" j’ai réussi avec les détails suivants.
    Ouvrir le Terminal (du Mac).
    faire cd /dev
    puis ls-al tty.*
    il liste tous les trucs branchés en tty. et pour moi j’ai choisi tty.HUAWEIMobile-Modem
    c’est à dire : screen tty.HUAWEIMobile-Modem

    on bascule sur screen branché sur tty.HUAWEIMobile-Modem

    Oh joie…
    AT
    OK
    ATI
    etc.

    je commence par :
    AT+CPIN="1234"
    (OK)
    AT+CSMP=17,167,0,240 // là je ne sais pas ce que c’est !!!
    (OK)
    AT+CMGS="0612345678" (c’est pas le vrai numéro !)
    (OK)
    AT+CMGS="Bonjour, vous avez été flashé à 245 km/h, veuillez vous présenter au poste de police" {RETURN pas besoin de ^Z}
    (OK)
    Testé sur mes portables (iPhone et un vieux truc d’orange).
    Ça a marché…

    Si mes souvenir des commandes Hayes sont bons on pourrait mettre un ‘;’ pour avoir une tempo de 2 secondes entre chaque ligne.
    Je n’ai pas tenté. Mais on devrait pouvoir (peut être) faire un pipe du genre "screen < monfichier.txt" qui contiendrait tout ce que j'ai écris…

    Félicitations, tu vas recevoir des tas de mails de gens enthousiastes !
    Et bonne continuation !
    S. SCAPA

    Publié par sscapa | 17 août 2012, 15 h 07 min
    • Oups… j’ai oublié deux instructsions (normal, j’avais testé la clé et pas débranchée puis rebranchée avant de rédiger le texte du haut).
      Ajouter : avant et après l’instruction AT+CPIN=1234
      l’instruction : AT+CMGF=1
      Et c’est tout !
      S.

      Publié par sscapa | 18 août 2012, 11 h 50 min
    • >> Félicitations, tu vas recevoir des tas de mails de gens enthousiastes !

      J’ai mis un disclaimer en prévision des idiots qui confondraient "faire une blague à ses amis" et "faire un truc débile pour finir chez les flics" ;)

      Publié par skywodd | 18 août 2012, 14 h 28 min

Rétroliens/Pings

  1. Ping : Outils, services, sites à (re)découvrir 2012 S33 | La Mare du Gof - 19 août 2012

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Archives

Wow. Dogecoin. Amaze.

Laissez un tip en Dogecoin

DMMNFk6WBVTpx2Wu1Z35GL61QXSd6r6WQx

Suivre

Recevez les nouvelles publications par mail.

Joignez-vous à 678 followers