Archive

Archive for April, 2012

Security BSides débarque à Québec: Bienvenue à BSidesQuebec!

April 30th, 2012 No comments

Après quelques temps d’absence sur la scène des organisations d’évènements de sécurité dans la région de Québec, je suis de retour et fier de vous annoncer la tenue d’un BSidesQuebec. Les dates, l’endroit exact et tous les détails seront annoncés au fur et à mesure qu’ils seront disponibles.

Security BSides

 

Mais qu’est-ce que BSidesQuebec?

 

BSidesQuebec est un évènement de sécurité créé par et pour les membres de la communauté de la sécurité de l’information. L’objectif est de rassembler les gens et d’élargir le spectre de la conversation au-delà des limites traditionnelles d’espace et de temps. Il crée des opportunités pour les individus voulant à la fois présenter et participer dans une atmosphère relaxe qui encourage la collaboration.

Bienvenue à BSides. Participez. Partagez.

Ai-je mentionné que BSidesQuebec était gratuit pour les participants? ;-)

Suivez-nous sur Twitter @BSidesQuebec et LinkedIn

Pour ceux d’entre vous qui veulent en apprendre plus sur ce qu’est BSides, voici un petit vidéo tourné au BSides San Francisco qui décrit l’évènement:

Stay Tuned! More to come… ;-)

 

Social Engineer Toolkit: quand la machine attaque l’humain

April 9th, 2012 1 comment

C’est un fait bien connu, la sécurité d’un réseau est aussi forte que son maillon le plus faible. Ce que beaucoup de gens ne réalisent pas, c’est que, trop souvent, ce maillon faible, c’est eux. Les cybercriminels l’ont compris depuis bien longtemps et sont passés maîtres dans l’art d’exploiter ce maillon faible qu’est l’être humain.

L’ingénierie sociale (social engineering) est l’art d’exploiter les failles humaines afin d’obtenir l’accès à un système ou à de l’information. Il existe plusieurs volets à cette discipline et tous les coups sont permis pour quelqu’un de vraiment déterminé.

L’ingénieur social peut tenter de se faire passer pour quelqu’un d’autre, feindre une situation d’urgence afin de mettre une pression sur sa « victime », l’intimider verbalement, tenter de la corrompre financièrement, et j’en passe. Toutes ces méthodes impliquent des interactions entre des individus, ce qui peut entraîner des situations stressantes et inconfortables. Dans certains cas, par exemple lors d’un test d’intrusion, il se peut que ce type d’approche ne soit pas envisageable pour diverses raisons. Alors, comme une approche impliquant l’ingénierie sociale traditionnelle n’est pas toujours possible, pourquoi ne pas tenter une nouvelle approche en utilisant un logiciel ou une machine pour exploiter les gens à notre place ?

C’est là qu’entre en scène un outil comme le Social Engineer Toolkit (SET). Rassurez-vous, SET n’est pas un robot ni un super ordinateur doté d’une forme d’intelligence artificielle complotant pour dominer le monde des humains comme dans le scénario du film L’oeil du mal (Eagle Eye1) ou encore comme Skynet dans Terminator2. En fait, SET est un logiciel opéré par un humain. Le modus operandi est relativement simple : il s’agit de manipuler les humains en les hameçonnant à l’aide de diverses supercheries, pour ensuite leur faire faire une action qui permettra à l’attaquan d’exploiter une vulnérabilité présente dans un système donné dans le but d’en obtenir l’accès.

 

READY ? SET, GO !

SET est un outil de type « ligne de commande » qui s’installe sur Linux et qui a été créé par David Kennedy (ReL1k). Il peut être téléchargé gratuitement au www.secmaniac.com/download/. Contrairement à plusieurs outils de type « ligne de commande », il est très simple à utiliser pour un néophyte dans le domaine. Le concept du SET est sensiblement le même que ce lui d’un restaurant chinois. Vous commandez un « numéro quatre pour deux », et c’est réglé ! Vous n’avez pas besoin de savoir cuisiner pour manger. Dans le cas de SET, on retrouve le même concept de menu. Vous n’avez qu’à démarrer SET, à sélectionner le type d’attaque suivi de quelques paramètres, et c’est réglé ! Vous n’avez pas vraiment besoin de savoir pirater pour attaquer. De plus, SET est inclus dans la distribution de base de BackTrack3. Mais quel est le lien entre l’outil SET et l’ingénierie sociale? Voyons tout d’abord à quoi l’outil ressemble et quelles sont ses caractéristiques.

Premièrement, pour démarrer SET, vous devez vous rendre dans le répertoire dans lequel il est installé. La commande pour le démarrer est « ./set » (sans les guillemets). Voici un exemple de démarrage de SET dans BackTrack : « [email protected] :/ pentest/exploits/set# ./set ». Il ne faut pas confondre cette commande avec celle de « set » (sans le « ./ » devant), qui elle sert au paramétrage des variables de l’environnement du shell, qui est l’interpréteur de lignes de commande. Une fois SET démarré, choisissez l’option « 1) Social-Engineering Attacks » du menu principal. Vous obtiendrez quelque chose qui devrait ressembler à ceci :

SET_figure1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 1

Comme vous pouvez le constater dans la Figure 1, le menu est divisé en plusieurs catégories qui sont toutes en lien avec des attaques relatives à l’ingénierie sociale. Une fois à l’intérieur de l’une de ces catégories, différentes options d’attaques sont disponibles. Comme SET est en constante évolution, voici les catégories et quelques sous categories actuellement disponibles :

1) Spear-Phishing Attack Vectors

2) Website Attack Vectors

3) Infectious Media Generator

4) Create a Payload and Listener

5) Mass Mailer Attack

6) Arduino-Based Attack Vector

7) SMS Spoofing Attack Vector

8) Wireless Access Point Attack Vector

9) Third Party Modules

 

Regardons trois options plus en détail avec quelques exemples de scénarios :

1) SPEAR-PHISHING ATTACK VECTORS

1. Perform a Mass Email Attack

2. Create a FileFormat Payload

3. Create a Social-Engineering Template

Le module « Spear-Phishing Attack Vectors » permet de créer et de personnaliser des attaques d’hameçonnage ciblé sur mesure. Par exemple, l’option « 2. Create a FileFormat Payload» permet de cacher du code malicieux, par exemple une porte dérobée (backdoor), qui est sous la forme d’un exécutable (.exe), à l’intérieur d’un autre fichier qui pourrait être un document PDF. SET utilise ensuite le module msfencode qui fait partie de Metasploit (vous trouverez plus de détails sur Metasploit un peu plus loin) afin de modifier l’exécutable malicieux en l’encodant différemment de façon à rendre son « apparence » unique. Il faut comprendre que la plupart des antivirus fonctionnent sur une base de signatures. Donc, si un logiciel malveillant n’a jamais été vu nulle part, il n’existe aucune signature pour ce dernier. Cela a pour effet de le rendre invisible pour les antivirus. Une fois que le logiciel malveillant est invisible pour les antivirus, SET l’imbrique dans un fichier PDF légitime au choix de l’attaquant. Par la suite, il ne reste qu’à l’envoyer à la victime par courriel. Lorsque cette dernière cliquera sur le fichier joint pour ouvrir le document PDF, son ordinateur se fera infecté par la porte dérobée à son insu. Ici, l’as pect d’ingénierie sociale reside dans le fait que l’attaquant devra trouver le bon contexte et le bon prétexte pour faire en sorte que sa victime ouvre le fichier joint plutôt que d’envoyer le courriel à la corbeille.

 «SET sert donc d’outil servant à dissimuler un logiciel malveillant à l’intérieur d’un contenu légitime.»

Poursuivons avec un deuxième exemple de scenario basé sur le module « Website Attack Vectors ».

2) WEBSITE ATTACK VECTORS

1) Java Applet Attack Method

2) Metasploit Browser Exploit Method

3) Credential Harvester Attack Method

4) Tabnabbing Attack Method

5) Man Left in the Middle Attack Method

6) Web Jacking Attack Method

7) Multi-Attack Web Method

8) Victim Web Profiler

9) Create or import a CodeSigning Certificate

1. Web Templates

2. Site Cloner

3. Custom Import

Ce dernier possède deux niveaux d’options. Le premier niveau permet de sélectionner le type de charge active (payload) qui servira lors de l’attaque du système d’exploitation de la victime. Une fois le premier niveau sélectionné, trois autres options, qui constituent l’appât, sont disponibles. Dans ce module, l’attaquant pourrait par exemple décider de sélectionner « 1) Java Applet Attack Method » et ensuite « 2. Site Cloner ». Cela lui permettrait de cloner une page Web d’un site de son choix. Une fois la page Web clonée, SET interagit avec Metasploit et démarre un serveur Web local sur son poste d’attaque afin de publier la page Web clonée.

Encore une fois, l’attaquant trouve une supercherie pour que sa victime visite la page Web clonée. Une fois que la victim se branche à la page Web clonée résidant sur le poste de l’attaquant, une porte dérobée comme Meterpreter (vous trouverez plus de détails sur Meterpreter plus loin) s’installe à son insu sur son poste par un applet Java. Une connexion cryptée s’établit alors à partir du poste infecté vers le poste de l’attaquant, ce qui lui donne ainsi le plein contrôle de ce dernier. Tout cela se passe, bien sûr, à l’insu de la victime. Une vidéo faisant une démonstration de cette attaque peut être visionnée à http://cusin.ca/?p=1346.

Enchaînons avec un troisième scénario.

3) INFECTIOUS MEDIA GENERATOR

1. File-Format Exploits

2. Standard Metasploit Executable

Avec l’option « Infectious Media Generator », l’attaquant peut transformer un média amovible tel qu’un USB, un CD ou un DVD en un outil d’attaque simple, efficace et d’apparence inoffensive. Cette option crée un fichier « autorun.inf » ainsi qu’une charge active de type porte dérobée qui est programmée pour venir se brancher au poste de l’attaquant qui attend les connexions cryptées entrantes par Metasploit qui est en mode écoute (Metasploit Listener). Par la suite, il ne reste tout simplement qu’à laisser traîner une clé USB infectée près des locaux de la victime et attendre que quelqu’un la ramasse et la mette dans son ordinateur pour savoir ce qu’elle contient. Honnêtement, que feriez-vous si vous trouviez une clé USB dans un hall d’entrée ou dans un stationnement ? Tout comme vous, notre victime branchera la clé USB dans son ordinateur « juste pour voir ce qu’elle contient ». Une fois la clé insérée dans l’ordinateur de la victime, une connexion cryptée s’établit à partir du poste infecté vers le poste de l’attaquant, lui donnant, encore une fois, le plein contrôle du poste de sa victime. Rappelez-vous quand vous étiez petit. Votre mère vous disait de ne pas mettre ce que vous trouviez par terre dans votre bouche, n’est-ce pas ? Alors, aujourd’hui, c’est moi qui vous dis de ne pas mettre ce que vous trouvez par terre dans votre ordinateur !

Évidemment, ces trois scénarios ne sont que quelques exemples des multiples possibilités offertes par SET. Plusieurs autres options aussi intéressantes les unes que les autres sont également possibles.

 

SOCIAL ENGINEER TOOLKIT (SET) ET METASPLOIT : UN DUO INFERNAL

Comme mentionné plus tôt, Social Engineer Toolkit et Metasploit fonctionnent de pair. Mais qu’est-ce que Metasploit ? Il s’agit en fait d’une plateforme d’un logiciel intégré (framework) pour le développement et l’exécution d’exploits4 contre des machines distantes. Metasploit comprend différentes interfaces d’utilisation, mais la plus populaire reste la bonne vieille ligne de commande «msfconsole » (Figure 2). Metasploit, qui est en constant évolution, comprend notamment 762 exploits et 228 payloads différents au moment d’écrire ces lignes. Tout cela sans compter les 27 encodeurs différents pouvant être utilisés par le module msfencode comme mentionné dans l’exemple « 1) Spear-Phishing Attack Vectors ». Voici à quoi ressemble l’interface msfconsole (Metasploit Framework Console) :

SET_figure2

 

 

 

 

 

 

 

 

 

Figure 2

Parmi les options offertes par Metasploit, il y a notamment le mode écoute (Metasploit Listener). Ce dernier permet de recevoir des connexions entrants (reverse shell). Lorsque des postes ayant été compromis, comme décrit dans les trois scénarios précédents, se connectent à l’attaquant, il devient alors possible de les contrôler à distance. Metasploit peut également être utilisé pour attaquer un système cible directement. Le fonctionnement de Metasploit est relativement simple. Premièrement, l’attaquant se connecte à Metasploit. Il choisit ensuite un exploit parmi tous ceux disponibles. Cet exploit sert à exploiter une faille pré sente sur le système cible afin de permettre à l’attaquant de pénétrer dans le système. Il choisit ensuite une charge active (payload) comme une porte dérobée (Meterpreter), un reverse shell, un serveur VNC (VNCInject), etc. Metasploit combine alors tous les éléments, lance l’attaque, com promet le système cible et donne accès à l’attaquant (Figure 3).

SET_figure3

 

 

 

 

 

 

 

Figure 3

 

METERPRETER

Merterpreter est un diminutif de « Meta-Interpreter » et fait partie de Metasploit. Il s’agit en fait d’un payload qui utilise l’injection DLL afin de s’injecter dans une application ayant été compromise par un exploit. Le même principe d’injection DLL s’applique pour le payload VNCInject mentionné plus tôt. Une fois injecté, meterpreter agit comme une porte dérobée et permet à l’attaquant de faire à peu près tout ce qu’il veut avec le poste de sa victime. Il peut, par exemple, vider le contenu des logs pour cacher ses traces, récupérer les hashes5 des mots de passe à partir du Security Accounts Manager (SAM) pour ensuite les cracker. L’obtention des hashes rend également possible les attaques « Pass-the-Hash6 ». Cette attaque consiste à injecter les hashes dans le processus Local Security Authority Subsystem Service (LSASS.exe) sur le poste Windows de l’attaquant. Comme le processus LSASS.exe sert notamment lors de l’authentification des utilisateurs Windows, il devient possible pour l’atta quant de se connecter à un autre poste en se faisant passer pour la victime. Meterpreter permet également de visionner et de manipuler le contenu du disque dur et même de se servir du poste compromis comme relais pour attaquer le reste du réseau. Meterpreter n’est résident qu’en mémoire et il ne s’installe pas sur le disque dur par défaut. Cela signifie qu’il disparaît une fois que l’application qui a été injectée est fermée ou que le poste est redémarré. Cela a pour effet de le rendre très difficile et presque impossible à repérer lors d’une investigation. Comme meterpreter utilise l’injection DLL, il ne fonctionne que sur Windows pour le moment. Certaines rumeurs courent voulant que certaines initiatives, comme « Meterpretux » pour Linux et « Macterpreter » pour Mac OS X, soient apparemment en développement, mais rien de concret n’est encore publiquement disponible à ce jour. De plus, la beauté avec Meterpreter est qu’il utilise du Secure Sockets Layer (SSL) pour crypter les communications entre la victim et l’attaquant. Alors, même si le trafic est repéré, il est pratiquement impossible à interpréter. De plus, il se fond très bien dans le trafic HTTPS normal du réseau.

Prenons, par exemple, le scénario « 2) Website Attack Vectors ». Lorsque l’attaquant réussit à compromettre le fureteur Internet de la victime à l’aide de l’applet Java, la magie de l’injection DLL s’opère et Meterpreter est injecté dans le fureteur Internet. Meterpreter reste vivant tant que le fureteur reste ouvert. Si le fureteur est fermé, la session Meterpreter se termine. Alors, afin de ne pas être à la merci du processus lié au fureteur, Meterpreter crée un nouveau processus « notepad.exe » et y migre automatiquement. Aucune fenêtre n’apparaît à l’écran de la victime, mais le processus est bien présent si l’on vérifie à l’aide d’une commande telle que « netstat –nao » par exemple. Il est également possible pour l’attaquant de faire migrer manuellement Meterpreter vers un autre ProcessID (ou une autre application) de son choix. Il pourrait, par exemple, choisir un des multiples « svchost.exe » présents sur les machines Windows. Il lui suffit d’utiliser la commande « migrate [PID] ». Le [PID] est bien évidemment remplacé par le «Process ID» de l’application vers laquelle Meterpreter a migré.

 

ET ALORS ?

Social Engineer Toolkit est un outil technologique qui permet à un attaquant de perpétrer des attaques sur des systèmes en tirant avantage de l’ingénierie sociale. Le success d’un outil comme SET réside dans le fait que l’humain demeure une faille de sécurité importante. Il est donc primordial de sensibiliser nos gens et de garder nos systèmes à jour. Pour de plus amples informations en anglais à propos de SET, je vous invite à visiter le http://www.social-engineer.org/framework/Computer_Based_Social_Engineering_Tools:_Social_Engineer_Toolkit_%28SET%29.

En terminant, j’aimerais vous rappeler que la prudence et les bonnes pratiques sont toujours de mise, alors ouvrez l’oeil et ne cliquez pas sur n’importe quoi !

________________________________________________

1. http://www.eagleeyemovie.com/intl/fr/.

2. http://fr.wikipedia.org/wiki/Personnages_de_Terminator#S.

3. www.backtrack-linux.org/.

4. http://fr.wikipedia.org/wiki/Exploit_%28informatique%29.

5. http://fr.wikipedia.org/wiki/Fonction_de_hachage.

6. http://en.wikipedia.org/wiki/Pass_the_hash.

________________________________________________________

Cet article est également disponible dans le Vol. 4 No. 1 Printemps 2012 la revue Secus et également dans la section “Présentations / Publications” de mon blogue.

________________________________________________________

Powered by Netfirms