CVE-2021-3156 (Sudo Baron Samedit)
Ce dépôt contient un exploit pour CVE-2021-3156 ciblant Linux x64. Pour l'analyse complète, veuillez consulter https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31
Crédit à Braon Samedit de Qualys pour l'avis original.
Fichiers
Exploit sur glibc avec tcache
- exploit_nss.py détecte automatiquement toutes les exigences et le nombre d'entrées dans /etc/nsswitch.conf
- exploit_nss_manual.py version simplifiée de exploit_nss.py pour une meilleure compréhension de l'exploit
- exploit_timestamp_race.c écrase def_timestamp et utilise une condition de course pour modifier /etc/passwd
Exploit sur glibc sans tcache
- exploit_defaults_mailer.py l'exploit écrase la structure defaults pour modifier le chemin du binaire mailer. Il nécessite sudo compilé sans disable-root-mailer, comme CentOS 6 et 7.
- exploit_userspec.py l'exploit écrase la structure userspec pour contourner l'authentification et ajouter un nouvel utilisateur dans /etc/passwd. Prend en charge uniquement les versions de sudo 1.8.9-1.8.23.
- exploit_cent7_userspec.py version simplifiée de exploit_userspec.py pour la compréhension, mais cible uniquement CentOS 7 avec la configuration par défaut
- exploit_nss_d9.py écrase la structure service_user sur Debian 9, mais prend en charge uniquement le /etc/nsswitch.conf par défaut
- exploit_nss_u16.py écrase la structure service_user sur Ubuntu 16.04, mais prend en charge uniquement le /etc/nsswitch.conf par défaut
- exploit_nss_u14.py écrase la structure service_user sur Ubuntu 14.04, mais prend en charge uniquement le /etc/nsswitch.conf par défaut
Autres
- asm/ bibliothèque tinyelf et exécutable pour intégration dans l'exploit Python
- gdb/ scripts utilisés pour déboguer le tas de sudo
Choix de l'exploit
Pour les distributions Linux dont la glibc prend en charge tcache et l'a activé (CentOS 8, Ubuntu >= 17.10, Debian 10) :
- essayez exploit_nss.py en premier
- Si une erreur n'est pas liée à tcache de glibc, vous pouvez essayer exploit_timestamp_race.c ensuite
Pour les distributions Linux dont la glibc ne prend pas en charge tcache :
- si la cible est Debian 9, Ubuntu 16.04 ou Ubuntu 14.04, essayez exploit_nss_xxx.py pour la version spécifique en premier
- ensuite, essayez exploit_defaults_mailer.py. Si vous savez que le sudo de la cible est compilé avec --disable-root-mailer, vous pouvez ignorer cet exploit. L'exploit tente de vérifier le drapeau root mailer à partir du binaire sudo. Mais la permission sudo sur certaines distributions Linux est 4711 (-rws--x--x), ce qui est impossible à vérifier sur le système cible. (Systèmes connus fonctionnels : CentOS 6 et 7)
- enfin, essayez exploit_userspec.py