Bonsoir à tous,
En scannant ce soir un site bidon, j'ai découvert un fichier .php qui contient un virus totalement crypté et dont l'exécution se fait, je le présume, grâce un autre fichier qui l'inclut. Mon petit virus n'est en effet pas exécutable.
Exemple (simpliste) :
* "bonjour.php" contient du code vérolé encodé en base64 et
* "exec.php" qui fait un if (file_exists('bonjour.php')) exec(require_once('bonjour.php');
(on pourrait imaginer bonjour_1.php avec une partie du virus, bonjour_2.php avec une autre partie, etc.)
Ma question : comment tracer que "bonjour.php" est appelé; inclus, au travers de "exec.php" ? J'aimerai pouvoir retracer le code dans sa globalité et pas seulement détruire le fichier contenant le code.
Bien évidemment, une recherche sur le mot "bonjour" pourrait le retrouver mais le pirate en herbe serait alors très idiot. Il aura crypté le mot bonjour; il aurait pu écrire "Bo"."J".chr(xxxx).str_rev('uo').strrot13('xxx '); (utiliser n'importe quel mécanisme d'obfuscation); masquant le mot "bonjour" et rendant sa recherche impossible.
Donc, voilà, je pense que ma question est insoluble mais si quelqu'un aurait une idée, une piste, je suis preneur.
Merci à tous.
(j'aurai été le programmeur, je programmerai un file_exists('') pour ne pas que mon "exec.php" plante et affiche un warning et donc supprimer le fichier et voir les erreurs ne donnerait aucun résultat non plus.)
[Edit]Une piste pourrait être de remplacer le code de bonjour.php par un echo debug_trace() mais cela revient donc à exécuter la page et donc, potentiellement, contaminer mon ordinateurs'il y avait d'autres virus dans la page; hummm; non, pas une bonne idée [/Edit]
En scannant ce soir un site bidon, j'ai découvert un fichier .php qui contient un virus totalement crypté et dont l'exécution se fait, je le présume, grâce un autre fichier qui l'inclut. Mon petit virus n'est en effet pas exécutable.
Exemple (simpliste) :
* "bonjour.php" contient du code vérolé encodé en base64 et
* "exec.php" qui fait un if (file_exists('bonjour.php')) exec(require_once('bonjour.php');
(on pourrait imaginer bonjour_1.php avec une partie du virus, bonjour_2.php avec une autre partie, etc.)
Ma question : comment tracer que "bonjour.php" est appelé; inclus, au travers de "exec.php" ? J'aimerai pouvoir retracer le code dans sa globalité et pas seulement détruire le fichier contenant le code.
Bien évidemment, une recherche sur le mot "bonjour" pourrait le retrouver mais le pirate en herbe serait alors très idiot. Il aura crypté le mot bonjour; il aurait pu écrire "Bo"."J".chr(xxxx).str_rev('uo').strrot13('xxx '); (utiliser n'importe quel mécanisme d'obfuscation); masquant le mot "bonjour" et rendant sa recherche impossible.
Donc, voilà, je pense que ma question est insoluble mais si quelqu'un aurait une idée, une piste, je suis preneur.
Merci à tous.
(j'aurai été le programmeur, je programmerai un file_exists('') pour ne pas que mon "exec.php" plante et affiche un warning et donc supprimer le fichier et voir les erreurs ne donnerait aucun résultat non plus.)
[Edit]Une piste pourrait être de remplacer le code de bonjour.php par un echo debug_trace() mais cela revient donc à exécuter la page et donc, potentiellement, contaminer mon ordinateurs'il y avait d'autres virus dans la page; hummm; non, pas une bonne idée [/Edit]
Commentaire