Come faccio a proteggermi dagli attacchi in questo script php?

5

A causa di una vulnerabilità nel modo in cui è stato installato PHP (VPS condiviso con PHP installato come modulo Apache invece di CGI) e quindi come è stato configurato OSCommerce (con sicurezza di 777 su determinate directory), ho trovato un certo numero di script PHP su un webserver di amici che era stato caricato dagli hacker. Il codice effettivo è stato nascosto utilizzando diversi livelli di crittografia. Avevano un file PHP con una stringa enorme assegnata a una variabile $ str. Quindi hanno usato la seguente riga per decodificare la stringa in codice PHP dannoso e hanno tentato di eseguirlo visitando la pagina. L'istruzione utilizzata per decodificare la stringa codificata era eval(gzinflate(str_rot13(base64_decode($str))));

Non possono eseguire il codice da questa directory ora perché c'è un file .htaccess che impedisce l'esecuzione di script da quella cartella che è stata messa in atto da quando abbiamo scoperto che il sistema era stato compromesso, questa è una soluzione temporanea ma probabilmente non il migliore.

Ho eseguito questo script su un Linux vm in esecuzione sul mio Mac mentre modificavo l'istruzione sopra a echo(gzinflate(str_rot13(base64_decode($str)))); in modo che potessi vedere il codice sorgente. L'ho messo su pastebin per l'interesse delle persone qui.

Pastebin of source per la pagina compromessa

Da quello che posso raccogliere, questo sembra essere uno script piuttosto sofisticato che tenta ogni sorta di trucchi per accedere al server, ma non conosco abbastanza bene con PHP per identificare tutte le vulnerabilità che questo potrebbe tentare di sfruttare. Quali controlli dovrei eseguire sul mio sistema se posso presupporre che sono riusciti a farlo in un dato momento?

    
posta conorgriffin 06.07.2011 - 00:52
fonte

3 risposte

10

Quello che è stato caricato è uno script di shell popolare, un metodo di post-utilizzazione comune. Quello che hai sembra che sia della varietà C99.

In breve, è uno script che assegna al malintenzionato un pannello di controllo sul server, in modo che possa eseguire comandi, scaricare e installare cose maligne, trovare file con password, infettare ulteriormente il sistema, lanciare altri attacchi e altro.

OsCommerce ha avuto di recente una vulnerabilità RFI molto severa che consente di caricare esattamente queste cose, e probabilmente è questo il modo in cui l'hai ottenuto: ci sono strumenti automatici che cercano la vulnerabilità e la sfruttano.

Il tuo sistema non è più sicuro: l'autore dell'attacco potrebbe aver scaricato i rootkit o potrebbe aver creato una seconda backdoor sulla tua macchina, quindi la cancellazione del file non è sufficiente.

La soluzione ideale è eseguire una cancellazione completa e ripristinare tutto ciò che si desidera dai backup, ovvero se si ha fiducia che i backup siano puliti.

Se non puoi farlo, devi fare un'indagine completa sul server, ma non puoi mai esserne sicuro.

Per quanto riguarda la tua domanda: non c'è alcun modo di elencare i diversi attacchi che contiene lo script, poiché fornisce fondamentalmente una riga di comando al tuo server e l'attaccante può eseguire qualsiasi comando che desideri o scaricare gli strumenti di cui ha bisogno. Ha solo alcune funzionalità preconfigurate per la sua convenienza.

    
risposta data 06.07.2011 - 13:34
fonte
5

Vale la pena dare un'occhiata a questa domanda - Cosa fare dopo sospetta intrusione in quanto vi sono una serie di questioni importanti dipende da cosa hai sul tuo server.

A meno che tu non sia un professionista esperto, la cosa più sicura che puoi fare è cancellare il server e reinstallarlo dai dischi / sorgenti di installazione puliti, e quindi ricaricare i dati dai backup dopo aver verificato che sono stati creati prima l'intrusione.

Questo perché l'autore dell'attacco potrebbe aver escalation oltre i soli comandi visualizzati nel codice sorgente per fare praticamente qualsiasi cosa se riuscissero a ottenere l'accesso come root e gli strumenti per individuare l'intrusione potrebbero non raccogliere un kit root abilmente implementato .

Se hai più tempo / esperienza puoi eseguirlo su una Macchina Virtuale in un ambiente ristretto (per evitare che attacchi qualsiasi altra cosa) e guardare per vedere cosa fa. Avrai bisogno di una registrazione estesa sia sulla VM che sulla rete per aiutarti a identificare le attività. Questo è spesso uno sforzo maggiore di quello che vale, a meno che tu non lo faccia per il tuo lavoro di giorno, e molte organizzazioni scelgono semplicemente l'approccio 'nuke from orbit' e assumono che tutto possa essere stato compromesso.

    
risposta data 06.07.2011 - 12:13
fonte
1

In realtà i tipi di codice che vengono eseguiti in questi tipi di codice shell sono più simili ai file manager e non c'è molto che si possa fare per impedire la loro esecuzione piuttosto, si potrebbe provare a impedire che alcuni tipi di file vengano installati nell'immagine directory per esempio.

Il punto è proteggere il tuo sito dal permettere che il codice malevolo sia caricato in primo luogo invece di impedire l'esecuzione di detti file "una volta" che sono stati caricati.

Le versioni obsolete di osCommerce e le sue varianti hanno noti punti deboli nella sequenza di login dell'amministratore che consentono agli aggressori di ignorare l'autenticazione di accesso semplicemente aggiungendo il login.php alla fine di qualsiasi file di amministrazione: www.yoursite.com/admin/administrators.php/login.php , ad esempio, consentirà a un utente malintenzionato di vedere il contenuto della pagina administrators.php.

Ciò consentirà a un utente malintenzionato di accedere completamente al gestore di file osCommerce e agli editor di file limitati nella sezione di amministrazione, e quindi al codice shell che hai trovato sul sito dei tuoi amici.

Ci sono due modifiche al codice che devono essere apportate al codice osCommerce per correggere effettivamente questo problema: 1 / accesso all'amministrazione delle patch

2 / patch il codice $ PHP_SELF

È anche meglio aggiungere l'autenticazione di base htpasswd alla tua directory di amministrazione.

    
risposta data 05.02.2012 - 21:29
fonte

Leggi altre domande sui tag