Analyser un logiciel malveillant comme un nul(l) 2/2

Dans l’article précédent, nous avons installé et configuré notre super environnement d’analyse de logiciel malveillant : Analyser un logiciel malveillant comme un nul(l) 1/2.

Analysons maintenant les rapports fournis par Cuckoo.

Gaston et son coucou

Analyse des fichiers créés

L’un des rapports que fournit Cuckoo contient la liste des fichiers créés par l’exécutable que nous analysons.

Un petit extrait de la (longue) (très longue) liste de fichiers.

Un petit extrait de la (longue) (très longue) liste de fichiers.

On remarque ici que notre exécutable crée le dossier d’installation du jeu : C:\Program Files (x86)\Mark of the Ninja

Tous les fichiers du jeu y sont placés et apparemment aucun fichier superflu n’est créé dans ce dossier :

  • Le lanceur du jeu (game.exe)
  • Un exécutable servant à désinstaller le jeu (TDU3k.exe)
  • Tout un tas de fichiers de ressources

Le seul comportement étrange réside dans la modification de fichiers uxtheme.* dans le dossier système de Windows.

Nous devons vérifier manuellement le contenu de ces fichiers et les comparer avec des versions dignes de confiance à l’aide de diff ou tout autre logiciel de comparaison de fichiers binaires.

Mais là encore…

Rien d'anormal...

Rien d’anormal…

Les fichiers créés semblent légitimes.

Analyse des modifications de registre

Voyons maintenant les modifications apportées à la base de registre de notre système d’exploitation : n’y a-t-il rien d’anormal ?

Voici les clefs de registre créées par notre application.

Voici les clefs de registre créées par notre application.

En bref :

Ici encore, rien d’alarmant. Rien n’est lancé automatiquement au démarrage du système.

Analyse rapide des échanges réseau

A priori, l’application que nous analysons n’installe aucun fichier ou clef de registre suspect.

Cependant, une application malveillante pourrait tout de même être lancée et exécutée en mémoire !

Pour nous assurer que ce n’est pas le cas, nous analyserons le trafic réseau durant l’exécution de notre programme.

Requêtes DNS

La plupart des logiciels malveillants servant à s’introduire dans un système se connectent à un centre de contrôle. Pour ce faire, ils utilisent souvent une résolution DNS afin d’assurer un changement régulier d’adresse IP du centre de commandes pour tenter d’échapper à la justice.

Voyons les requêtes DNS exécutées durant notre analyse :

Des sites Microsoft.

Des sites Microsoft.

Seuls des noms de domaines appartenant à Microsoft ont été résolus. Il s’agit sans aucun doute d’un trafic « normal » dû à l’exécution « normale » de Windows… « Normal » entre guillemets car Windows qui entretient une connexion régulière sur des sites de Microsoft, je trouve ça louche… bref.

Adresses IP contactées

Au-delà des résolutions de noms de domaines, certaines communications réseau ont directement été effectuées vers des adresses IP. Nous nous assurerons de la légitimité de chacune.

Adresses IPNous avons donc :

  • 192.168.56.101l’adresse de mon Kali Linux.
  • 224.0.0.22, 224.0.0.252 et 224.0.0.253 : des adresses réservées au multicast, nous verrons à quoi elles ont servi plus tard.
  • 8.8.8.8 : un serveur DNS de google.
  • 239.255.255.250 : une adresse réservée au multicast pour la résolution des hôtes.
  • 192.168.56.255 : l’adresse de broadcast du réseau local, certainement utilisé par Windows pour lister les machines connectées.
  • 94.245.121.253 et 94.245.121.254 : des adresses utilisées par Microsoft.

Ici encore, rien d’alarmant.

Analyse poussée des échanges réseau

Cuckoo joint à son rapport HTML un fichier dump.pcap. Ce fichier contient l’intégralité des échanges réseau effectués lors de l’exécution de notre logiciel malveillant.

Un logiciel comme WireShark est nécessaire pour l’ouvrir.

Ce que je vois à l'ouverture de dump.pcap

Ce que je vois à l’ouverture de dump.pcap

Vu la quantité de messages qui ont transité sur le réseau, nous devons concentrer notre analyse sur les adresses IP que nous ne connaissons pas forcément.

Voyons à quoi servent ces fameuses adresses multicast.

Nous voyons assez rapidement qu’il s’agit du protocole IGMPv3. Si l’on analyse les messages, on remarque aussi qu’ils ont une structure on ne peut plus normale.

Notez qu’en réalité, les adresses multicast de 224.0.0.1 à 224.0.0.254 sont réservées à des protocoles nécessaires au bon fonctionnement des réseaux (OSPF, IPX, IGMP, etc.). Ces adresses ne passent pas les routeurs et appartiennent exclusivement à votre réseau local.

Nous pouvons remarquer au passage que l’adresse de broadcast 192.168.56.255 est utilisée par Windows pour s’inscrire dans les groupes réseau de Microsoft :

Le protocole NBNS

Ici encore, il s’agit d’un protocole tout à fait standard : NBNS. C’est le protocole qui permet de publier votre ordinateur sur votre réseau local afin d’être visible par toutes les autres machines connectées.

Conclusion

Cette application ne crée aucun fichier suspect, pas plus que de clefs de registres étranges.

Aucun trafic réseau inhérent à l’application est détecté durant son exécution : nous n’avons vu que des messages échangés lors d’un fonctionnement normal de Windows.

Nous pouvons alors dire que cette application ne présente pas de menace. Nous pourrions pousser notre étude en analysant notre système durant l’exécution des applications game.exe et TDU3k.exe ainsi que de l’intégralité des fichiers DLL créés… Mais le processus d’analyse est sensiblement le même, je ne vais donc pas le faire.

Note : Si vous aviez eu le réflexe, vous auriez pu chercher le nom du logiciel malveillant repéré par certain utilisateurs (SPR/Tool.Keygen.3507). Cela vous aurait évité toute cette analyse car « Tool.Keygen » désigne en réalité les générateurs de clefs utilisés par les crackers, parfois embarqués dans les logiciels téléchargés comme celui que nous venons d’analyser. Certains antivirus comme Avira considèrent que ces applications sont malveillantes afin d’enrayer le piratage sur Internet.

Vous pouvez donc continuer à jouer gratuitement à un jeu génial, qui a nécessité de nombreuses heures de travail à des personnes comme vous et moi. Encore une fois, 15€ pour ce jeu, ce n’est pas excessivement cher : http://store.steampowered.com/app/214560/?l=french.

Parce que je n’ai pas la science infuse : sources

À propos

Un informaticien, qui tente de faire comprendre au public que l'informatique n'est pas si compliquée, malgré des acronymes et autres termes obscurs pour faire croire que c'est difficile (et que c'est de votre faute si "ça ne marche pas")

Tagged with: , , , , , , , , , , , , , , , , , , , , ,
Publié dans Cracking, Informatique, Piratage, Windows
4 comments on “Analyser un logiciel malveillant comme un nul(l) 2/2
  1. speedtouch dit :

    Sacré Avira !

    Merci pour le tuto ❤

  2. koloce dit :

    Arfffff. Tu peux passer la libpcap. Sur windows je ne pourrai pas te donner un exemple. Mais sur linux, tu peux dropper les packets de la table prerouting raw et envoyer directement tes packets par postrouting raw . La libpcap n’y verra rien.

  3. Dedhal dit :

    Salut, J’ai découvert ton site hier, et c’est une vraie mine d’or, surtout pour un débutant en sécurité informatique comme moi, merci à toi !

    J’ai cependant plusieurs questions concernant ce tutoriel, quelles auraient été les étapes si le logiciel était réellement malveillant ? Je veux dire, comment obtenir la signature du dit logiciel ? Comment l’intégrer à l’antivirus si il n’était pas détecté, si c’est possible (je suppose que cela diffère selon l’antivirus utilisé) ? Et comment réparer le logiciel sans détruire son intégrité (que le jeu fonctionne toujours, et que le virus soit inactif/détruis) ?

    Merci d’avance pour ta réponse. Continue, super boulot !

    • mystcaster dit :

      Bonjour,

      Pour que le fichier soit reconnu par un antivirus, le moyen le plus simple serait de l’envoyer à l’éditeur.
      En ce qui concerne la réparation du logiciel, il n’y a pas 36 solutions : l’assembleur.
      Tu devras désassembler ton application et rendre inopérant la portion de code malveillante (en la remplaçant par des « nop » par exemple).
      Détecter quelle portion de code est malveillante est une autre paire de manches… Ça peut s’apparenter aux méthodes utilisées pour contourner les sécurités d’un logiciel : Le reverse engineering comme un nul(l) 1/?.

Laisser un commentaire

MystCaster
mars 2013
L M M J V S D
 123
45678910
11121314151617
18192021222324
25262728293031
Catégories
Archives