
analyse du débordement de tampon sudo affectant la version <1.8.26 et comment utiliser GCC pour compiler des exploits disponibles publiquement
Sudo 1.8.25p - Débordement de tampon 'pwfeedback' (PoC)
L'option pwfeedback de sudo peut être utilisée pour fournir un retour visuel lorsque l'utilisateur saisit son mot de passe. Pour chaque pression de touche, un astérisque est affiché. Cette option a été ajoutée en réponse à la confusion des utilisateurs concernant le fait que l'invite standard Password: désactive l'écho des frappes clavier. Bien que pwfeedback ne soit pas activé par défaut dans la version amont de sudo, certains systèmes, tels que Linux Mint et Elementary OS, l'activent dans leurs fichiers sudoers par défaut.
Analyse
Write-up du débordement de tampon de sudo (tryhackme)
Analyse de la CVE-2019-18634
Tout d'abord, nous nous connectons à l'instance tryhackme via SSH
La vulnérabilité est due au fait que la fonction pwfeedback est vulnérable à un débordement de tampon de tas. Pour exploiter cette vulnérabilité, nous vérifions d'abord que la machine dispose de la version vulnérable de sudo (sudo <1.8.26) en exécutant la commande sudo –version
Analyse de la CVE-2019-18634
Tout d'abord, nous nous connectons à l'instance tryhackme via SSH
La vulnérabilité est due au fait que la fonction pwfeedback est vulnérable à un débordement de tampon de tas. Pour exploiter cette vulnérabilité, nous vérifions d'abord que la machine dispose de la version vulnérable de sudo (sudo <1.8.26) en exécutant la commande sudo –version

Après avoir confirmé que la machine dispose d'une version vulnérable de sudo, nous vérifions maintenant que la fonction owfeedback est présente. Cela peut être fait de deux manières : en invoquant sudo et en tapant n'importe quoi dans l'invite de mot de passe, ce qui devrait afficher "*" à mesure que vous saisissez des caractères pour le mot de passe. La deuxième façon, plus technique, consiste à utiliser la commande sudo -l, mais cela nécessitera également que l'utilisateur dispose des autorisations appropriées pour consulter les informations relatives à sudo ou pour concaténer le fichier sudoers.

Nous allons maintenant confirmer qu'un débordement de tampon est possible en utilisant le cas de test utilisé sur exploit-db https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
^^La ligne de code ci-dessus fonctionne comme suit :
Ajoute 100 caractères A et les transmet via un pipe à la commande sudo, ce qui les fera aboutir dans le tampon de tas de pwfeedback.

Sudo produira alors une erreur de segmentation (segmentation fault), car il ne sait pas comment poursuivre le processus sudo.
Cela se produit car, une fois qu'un tampon de tas statique est inondé, il commence à inonder les registres du processeur et le pointeur d'instruction, qui maintient le flux de la prochaine instruction.
Nous pouvons exécuter l'exploit, ce qui provoquera un débordement de tampon et nous donnera un accès root au système https://www.exploit-db.com/exploits/47995
