Thursday, May 27, 2010

Tabnabbing, the future of phishing attacks

Aza Raskin has discovered a new kind of phishing attack which permits to deceive the user when he navigates on the attacker's website and he determines to look a website in an other tab. Actually, it works also if the user use multiple browser windows but it's less stealthy. This attack works on all browsers (there is a little bug with the favicon on Safari).

Tabnabbing is very simple to understand and implement. So when the user navigates on the attacker's website, a javascript code is executed and wait that the user go on an other tab (without close the first). If the first tab has lost the focus for more than 5 seconds, in the second tab, the favicon, title and content of the webpage change thanks to the javascript code. There is little chance that the user see the title and favicon changement because he is navigating the second website. When the user come back to his first tab, he will see the "new page" wich can look-like to his webmail. And if he logs on it, the attacker will get his credentials.

If you want to test this you can go here or you can see his Proof of Concept in video :


This new phishing attack can be improved with an other technique (using Javascript and CSS), which permits to know some websites the user has visited before.


Raskin's article :  http://www.azarask.in/blog/post/a-new-type-of-phishing-attack/
His Wikipedia's page : http://en.wikipedia.org/wiki/Aza_Raskin
His Twitter : http://twitter.com/azaaza
POC : http://www.azarask.in/projects/bgattack.js

Tuesday, May 11, 2010

Analyse comportementale d'un malware



1 - Mise en situation

Depuis quelques jours déjà, lorsque je me connecte avec mon logiciel de messagerie instantanée préféré (Adium :)) sur MSN je reçois de la part d'un de mes contacts des messages me proposant d'aller voir des photos. Je pense que vous avez déjà reçu des messages de ce type car malheureusement beaucoup de gens tombent dans le panneau et cliquent sur ces liens. Puisque ce type de messages m'agace, j'ai voulu regarder de plus près comment cela fonctionne et pourquoi tant de gens se font contaminer par ce type de malwares utilisant les logiciels de messagerie instantanée tel que MSN pour se répandre.

Dans le cas de ce malware, j'ai reçu par l'intermédiaire de mon contact plusieurs messages du type "regardez cette photo :D http://tinyurl.com/###" ou ### varie d'un message à l'autre. Ces liens ont rapidement été identifiés comme une utilisation illégale du service TinyURL et ne sont plus actifs. Les 2 liens TinyURL que j'ai testé renvoyais vers des URLs différentes et proposaient donc de télécharger des fichiers différents : un nommé IMAGE.JPG.exe et l'autre pict20100501_jpg.scr (format des écrans de veille Windows). Ces 2 fichiers sont hébergés sur le même serveur hébergé au Royaume Uni.

On peut remarquer que l'auteur du malware essaie de tromper l'utilisateur quand au type réel du fichier. Par exemple, le premier est nommé IMAGE.JPG.exe ce qui lorsque l'on active pas l'affichage des extensions sous Windows donne IMAGE.JPG, donc l'utilisateur croit avoir affaire à une vraie image et l'ouvre inconsciemment. Concernant le second fichier, l'icone utilisée est la même que celle des images de type JPEG et comme pour le premier fichier, l'auteur ruse sur le nom de fichier, ce qui donne un fichier visuellement très proche d'une vraie image. Cependant, je ne comprend pas pourquoi l'auteur n'a pas utilisé l'icône des fichiers JPEG pour le fichier exécutable et pourquoi il a terminé le nom du second fichier par _jpg.scr et pas par .jpg.scr afin de tromper plus facilement la victime... 

Petit conseil : si vous recevez un message écrit en anglais d'une personne française (ou qui ne parle pas anglais) ou si le message vous vouvoie alors que le message provient d'un contact proche qui habituellement vous tutoie (comme c'est le cas ici), il y a de grandes chances pour que ce message provienne d'un malware.


2 - Analyse comportementale du malware

2.1 - Au niveau du système de fichiers

Pour comprendre le fonctionnement de ce malware, j'ai utilisé un Windows XP SP2 Professionnel de base (sans mises à jour) dans une machine virtuelle (VMware Fusion) afin de pouvoir facilement contrôler le risque lié à ce logiciel malveillant. VMware permet aussi de faire des snapshots ce qui est très pratique pour jongler entre plusieurs "états" de la VM.

J'ai commencé par observer ce que faisait ce malware lorsqu'on le lançait. Je me suis donc muni d'outils tels que Regshot et CaptureBAT ce qui m'a permis de voir que le malware modifiait le registre Windows et créait le fichier C:\WINDOWS\secfil.exe. Celui-ci est invisible dans explorer.exe (même avec l'affichage des fichiers cachés activé) et dans l'interpréteur de commande cmd.exe par contre l'autocomplétion dans cmd.exe révèle sa présence. On y a également accès à partir d'un liveCD linux de type Backtrack ou autre.


Ce malware utilise des techniques de dissimulation semblables à celles utilisées par les rootkits afin de se cacher dans le système de fichiers, cependant il est visible dans la liste des processus en cours (ex : Gestionnaire des tâches).
Le fichier secfil.exe est exactement le même que IMAGE.JPG.exe, car ce dernier lors de sa première exécution s'est auto-copié dans C:\WINDOWS afin que le système victime soit toujours infecté après la suppression du fichier original.


2.2 - Dans le registre Windows

Au niveau du registre Windows, le malware s'autorise auprès du pare-feu Windows grâce à l'ajout de ces valeurs :

HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe: "C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe:*:Enabled:Userinit"

HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List\C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe: "C:\Documents and Settings\Administrateur\Bureau\IMAGE.JPG.exe:*:Enabled:Userinit"

Si on déchiffre ceci, on voit que le malware s'autorise à accéder à n'importe quel machine accessible sur le réseau local et sur Internet (*), que la règle est activée au niveau du pare-feu (Enabled) et que son nom est "Userinit".

Il modifie également une valeur du registre pour être exécuté au démarrage de Windows (avant explorer.exe) :

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit: "C:\WINDOWS\system32\userinit.exe,C:\WINDOWS\secfil.exe"


2.3 - Mais comment communique t-il ? 

En analysant les paquets sortants avec Wireshark j'ai pu voir qu'au démarrage de ma VM, le malware se connecte à un serveur IRC qui permet au botmaster de donner des ordres à tous les bots dont ma VM. Le malware ne se connecte pas toujours sur le même serveur IRC, ainsi j'en ai trouvé 3 :

- 2.nomdedomaine.com (situé au Royaume-uni, et enregistré le 22-03-2010)
- irc.nomdedomaine0.com (situé à Chicago, USA)
- irc.nomdedomaine000.com (situé en Serbie Monténégro)

Il en est de même pour le port de destination qui est soit 1234 soit 1241.



Sur certains serveurs IRC auxquels il se connecte, une phase d'authentification a été mise en place grâce à la commande IRC "PASS". Après, le malware choisit un nickname au format suivant [CODE_PAYS|CODE_OS]NOMBRE_ALÉATOIRE.  Pour mon cas un des nicknames fut : [FRA|XP]5531626, puis il se connecte au canal "#dl#". Ensuite, le malware reçoit à plusieurs reprises un message privé (PRIVMSG) envoyé par différents nicknames (botmasters) dont un fi2ani, contenant un lien vers d'autres fichiers exécutables situés sur des serveurs en Allemagne et aux Etats Unis (à Saint Louis et Chicago). 



Un des liens déclenche le téléchargement d'un fichier exécutables situé sur un serveur web qui une fois enregistré dans le répertoire des fichiers temporaires du compte local, s'exécute et commence a exploiter ma VM. Il se connecte notamment à un second serveur IRC de contrôle (irc.nomdedomaine00.com, encore situé à Chicago) et télécharge d'autres fichiers exécutables. Lui aussi modifie le registre afin de s'autoriser auprès du pare-feu et de se lancer au démarrage grâce à l'ajout d'une valeur dans la clé de registre suivante : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.


3 - Remarques

J'ai testé ce malware au service VirusTotal pour avoir un aperçu des différents anti-virus reconnaissant ce fichier comme un malware, et à ma grande surprise seulement 10 des 41 testés identifient le fichier comme une menace potentielle. A ce jour, AntiVir, Avast, BitDefender, ClamAV, DrWeb, GData, Kaspersky, McAfee, Microsoft, Symantec, TrendMicro ne reconnaissent pas ce malware alors qu'ils sont très présent sur le marché des solutions antivirales, ce qui est relativement inquiétant. Si vous souhaitez accéder au rapport généré par VirusTotal, il y a un lien à la fin de l'article.

Il y a une chose que je n'ai pas comprise, c'est pourquoi l'autorisation au niveau du pare-feu est attribuée au fichier IMAGE.JPG.exe (fichier exécuté par l'utilisateur) alors qu'à chaque démarrage c'est le fichier secfil.exe qui est automatiquement exécuté. De plus, quand je rétablie les paramètres par défaut du pare-feu (donc IMAGE.JPG.exe n'a plus d'autorisation), la communication entre secfile.exe et les différents serveurs IRC est toujours possible. Si vous avez des réponses à mes questions, n'hésitez pas à laisser un commentaire, je vous en serais très reconnaissant. 


4 - Conclusion

Ce qu'il faut retenir de cette analyse comportementale c'est que les cybercriminels (je préfère utiliser ce mot plutôt que "pirates" car il est plus clair aux yeux de tous) rusent afin de piéger l'utilisateur qui, s'il n'est pas conscient des risques auxquels il est exposé sur Internet, sera une proie très facile. Ici, l'utilisation de l'ingénierie sociale (social engineering) pour répandre le malware de type "bot" en est un bon exemple. De plus, le nombre de serveurs utilisés et leur dispersion montrent à quel point ces cybercriminels sont organisés. Pendant cette phase d'analyse, je n'ai pas observé d'activité de propagation  de la part du logiciel malveillant présent dans ma machine virtuelle. Les prochaines étapes seront (peut-être) l'analyse du code afin de mieux comprendre son fonctionnement et découvrir les techniques utilisées par les développeurs et l'analyse d'un des fichiers téléchargés par le malware.



Localiser une ip : http://www.ip2location.com/


Vidéo sur le même sujet (en anglais) :