Decodifica codice dannoso iniettato in PHP nel mio server

3

Ho trovato su internet problemi simili e ho confrontato il codice. Questo è diverso.

Recentemente ho scoperto che il CentOS LAMP webserver che utilizziamo per lo sviluppo nel nostro ufficio è stato infettato da un pezzo di PHP codice iniettato all'inizio di tutti i nostri file .php .

Sto mettendo il codice su Gist/Github , perché è lungo, ma lo sto descrivendo e cosa ho fatto qui sotto.

link

Sto cercando di offuscare il codice sorgente per capire il danno e vedere cosa fa effettivamente lo script dannoso. Sono stato in grado di decodificare un testo con escape HEX, ma c'è una parte che è più complicata.

Ho rinominato tutte le variabili e c'è una stringa codificata in una variabile chiamata $foo , che è decodificata da una funzione chiamata mistery_f , con una matrice ausiliaria che contiene una lunga lista di numeri (variabile $bar_arr ) .

Poi c'è anche una porzione di testo in una stringa, contenente due commenti "strani" offuscati, un eval() , un str_replace e una chiamata alla funzione mistery_f() .

Ma non ottengo l'ultima parte, mi sembra che questa stringa non venga mai valutata per eseguire il codice, e nell'ultima parte ci sono forse alcune variabili spazzatura che eseguono alcuni aritmetici e vengono quindi ignorate.

Forse manca del codice e non è stato iniettato.

Molti dei nostri siti web utilizzano WordPress , che potrebbe essere parte del problema. Forse qualcosa relativo ad un testo pubblicato e salvato nel database MySQL , in un campo che non era abbastanza grande e una parte troncata del codice dannoso?

Proverò a vedere e ottenere alcuni registri, se ce ne sono ancora, per vedere come il server è stato sfruttato / penetrato.

Non sto chiedendo perché è un test di produzione. Fortunatamente ciò influenzerebbe solo (probabilmente) i browser, ma non possiamo rendere i siti di anteprima del client su questo server.

Temo che potrebbe essere una parte che non ho notato, e forse un overflow del buffer, o qualcosa che potrebbe danneggiare il resto del server.

Inoltre sto cercando di capire perché sono stato infettato e come proteggere i dati del nostro sito Web in fase di sviluppo.

Qualsiasi aiuto è benvenuto. Grazie

    
posta Zorgatone 04.12.2015 - 13:05
fonte

2 risposte

3

Questo codice carica il contenuto da un server remoto e lo inietta nel tuo sito web, ma non quando l'useragent è un bot di searchengine o specifiche variabili $ _SERVER non sono impostate.

Domande correlate su SO:
link

E qualche altro dettaglio: link

Questo sembra essere il payload finale che può caricare ulteriori payload dal server C & C: link
link

Anche correlati: link

Generalmente possono fare qualsiasi cosa con questo webshell e iniettare contenuti dai server remoti nel tuo sito web.

Questo codice webshell non aiuta molto. Il tuo sito web è compromesso. Consiglio vivamente di cancellare il sito web (file + database) e installare un backup pulito, controllare gli accesslogs come sono entrati e correggere il buco di sicurezza.

Dopo essere entrati, avrebbero potuto fare molto di più, eliminando anche payload e webshells dopo l'esecuzione del codice.

Spesso il problema riguarda plug-in e temi non sicuri. Ci sono molte vulnerabilità. link

Si consiglia vivamente di installare tutti gli aggiornamenti (anche per i temi a pagamento) e installare alcune soluzioni come NinjaFirewall link

    
risposta data 04.12.2015 - 13:36
fonte
1

Se dai un'occhiata a $baz; // Added by me vedrai che contiene '/(.*)/e' - questo, quando passato a una funzione preg_ fa in modo che il soggetto venga valutato come codice PHP. Ma se questo è il codice originale, anche io non vedo il punto di ingresso al codice offuscato.

Sei sicuro che questo sia il codice dell'infezione? Così com'è, il codice che hai postato fallirà il primo ciclo di analisi a causa dell'unica citazione ineguagliata in

$codestr = " /* weirdcomment_1 */ eval(str_replace('%', '\', mistery_f($bar_arr, $foo))); /* weirdcomment_2 */ ";

Sospetto che tu abbia sostituito il contenuto di ciò che ritieni siano commenti errati.

    
risposta data 04.12.2015 - 13:31
fonte

Leggi altre domande sui tag