Tutorial

Come trovare una backdoor in PHP

Una piccola “pillola” su alcuni tipi di backdoor (non solo di WordPress) diffuse comunemente in rete, che spesso minano la sicurezza dei siti.

Cosa sono le backdoor?

Le backdoor sono in generale paragonabili a porte di servizio / sul retro che consentono di aggirare le procedure di sicurezza attivate in un sistema informatico nello specifico su internet. Queste “porte” sono spesso intenzionalmente create dai gestori del sistema informatico (amministratori di rete e sistemisti) per permettere una più agevole opera di manutenzione dell’infrastruttura da remoto, mentre più spesso sono “iniettate” da cracker intenzionati a manomettere il sistema. Possono anche essere installate autonomamente da alcuni malware (come virus, worm o trojan), in modo da consentire ad un utente esterno di prendere il controllo remoto della macchina senza l’autorizzazione del proprietario.

Esse si diffondono in molti casi con nomi noti quali ad esempio c99, c99madshell, r57 e così via: si tratta sostanzialmente di script malevoli in PHP che riescono, sotto opportune condizioni, a bypassare le misure di sicurezza ed autenticazione del server e forniscono una vera e propria “porta di accesso nascosta” per l’attaccante. Il webmaster spesso non riesce ad accorgersi di nulla, e mette così nel lungo periodo a repentaglio la sicurezza della macchina e del sito. Una backdoor scritta in PHP (ed in alcuni casi in CGI) include la possibilità che venga inserito del codice arbitrario nel nostro sito che potrà essere eseguito, quindi, per compromettere i dati del database, manipolarli, visualizzarli illecitamente o cancellarli del tutto: in molti casi essi sfruttano le vulnerabilità che abbiamo visto, settimana scorsa, come sia possibile proteggere.

Tra le svariate possibilità che si pongono davanti ad un attaccante malevolo mediante backdoor vi sono:

  1. possibilità di scaricare file di zone protette/a pagamento;
  2. capacità di uploadare file a piacere;
  3. capacità di installare rootkit;
  4. sfruttare il server per inviare spam via posta elettronica;
  5. nascondere la provenienza dell’attacco mediante proxy o rete anonimizzante come Tor;
  6. prendere controllo del sistema da remoto;
  7. prendere controllo del server PHP;
  8. prendere controllo del server MySQL;
  9. effettuare un furto di informazioni riservate;
  10. cancellare o manipolare le informazioni sul database;
  11. aprire porte arbitrarie TCP/UDP.

Come si fa a trovare le backdoor?

Per cercare se abbiamo problemi del genere sulla nostra VPS è possibile fare uso del comando grep per andare alla ricerca di backdoor c99 o r57, tra le più diffuse: aprimo una finestra del terminale remoto ed andiamo ad eseguire i seguenti comandi, uno alla volta.

grep -iR 'c99' /var/www/html/
grep -iR 'r57' /var/www/html/
find /var/www/html/ -name \*.php -type f -print0 | xargs -0 grep c99
grep -RPn "(passthru|shell_exec|system|base64_decode|fopen|fclose|eval)" /var/www/html/

Essi restituiranno qualcosa del genere, ovvero l’elenco delle eventuali corrispondenze in caso di problemi (i file rilevati in tal modo possono essere rimossi o rinominati):

Binary file /directory123/A1/images/hack1.php matches
Binary file /directory123/C6/css/hack54.php matches
Binary file /directory123/A1//images/hacked.php matches
...

Ricordiamo infine che grep è utilizzato per ricercare le occorrenze di una o più parole in una serie di file, spesso in congiunzione con i comandi find e xargs tramite una pipeline software. grep inoltre può essere usato anche sui file binari (nel nostro caso ci interessa soltanto per i file all’interno della cartella HTML, che si suppone essere la root), ad es. per trovare la presenza di etichette Exif specifiche all’interno di file contenenti immagini o fotografie digitali.

Lascia un commento

Back to top button