
Plesk usa dentro de la version Linux como home de usuario el nombre del dominio, esto hace que si se logra acceso a la lectura del /etc/passwd conocemos los dominios hosteados dentro del server y este archivo tiene permisos de lectura para cualquier usuario del sistema.
El formato seria:
usuario:x:10021:2524::/var/www/vhosts/dominio.com:/bin/false
El directorio httpdocs dentro de cada vhost no tiene permisos de lectura en “others”, pero desde una webshell podemos con un “find” listar los archivos index en los que se pueda escribir como others y asi sin ser root podemos modificar gran parte de los index dentro del servidor.
#lista de dominios dentro del server
cat /etc/passwd |grep vhosts|cut -d : -f 6 | cut -d / -f 5 >> temporal
#copiar archivo bad_index a todo index escribible dentro del servidor
cat temporal|while read line;do find /var/www/vhosts/$line/httpdocs/ -name “index.*” -perm -o=w -exec cp -f ./bad_index {} \; ;done
No es tan comun que se deje permisos de escritura en un archivo index en el campo others pero hemos encontrado muchos que si lo tienen.
Para listar los archivos index que al menos pueden leer se puede hacer algo asi
cat temporal|while read line;do find /var/www/vhosts/$line/httpdocs/ -name “index.*” -perm -o=r ;done
Nuestro ejemplo es con los index pero con patrones de busqueda diferentes se pueden buscar archivos con el nombre que se elija, en varios servidores hemos encontrado que el directorio httpdocs tiene permisos de lectura y ahi es posible listar su contenido desde la webshell y dentro de la estructura de los sitios puede haber directorios que se pueden listar porque normalmente un webmaster no es muy restrictivo en sus permisos sino que buscar el buen funcionamiento de la web.
Un segundo problema que detectamos es que la clave del admin de horde y que tambien es la clave del usuario horde en mysql se guarda en el archivo
/etc/psa/.webmail.shadow y el grupo dueño de este archivo es apache con permisos de lectura.
Nosotros al estar en la webshell ejecutamos los comandos como el usuario apache entonces si hacemos:
echo “select * from horde_users”| mysql -u horde -p`cat /etc/psa/.webmail.shadow` horde
tendriamos acceso a los datos de usuarios de horde, para accedr a horde es solo ver alguno de los dominios que tenga webmail habilitado dentro del server y acceder por http://webmail.dominio.com
Mauro Rossi (Betatester de Parallels y miembro del staff de HYPERNETHOST & Security-Pentest).