CVE-2021-3156 (Sudo Baron Samedit)
Ce dépôt contient un exploit pour CVE-2021-3156 ciblant Linux x64. Pour l'article détaillé, veuillez visiter 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 condition de course pour modifier /etc/passwd
Exploit sur glibc sans tcache
- exploit_defaults_mailer.py l'exploit écrase struct 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 struct userspec pour contourner l'authentification et ajouter un nouvel utilisateur dans /etc/passwd. Ne prend en charge que les versions 1.8.9 à 1.8.23 de sudo.
- 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 struct service_user sur Debian 9 mais ne prend en charge que /etc/nsswith.conf par défaut
- exploit_nss_u16.py écrase struct service_user sur Ubuntu 16.04 mais ne prend en charge que /etc/nsswith.conf par défaut
- exploit_nss_u14.py écrase struct service_user sur Ubuntu 14.04 mais ne prend en charge que /etc/nsswith.conf par défaut
Autres
- asm/ bibliothèque et exécutable tinyelf pour intégration dans l'exploit python
- gdb/ scripts utilisés pour déboguer le tas de sudo
Choisir l'exploit
Pour les distributions Linux dont glibc prend en charge tcache et est activé (CentOS 8, Ubuntu >= 17.10, Debian 10) :
- essayez d'abord exploit_nss.py
- Si une erreur n'est pas liée à glibc tcache, vous pouvez ensuite essayer exploit_timestamp_race.c
Pour les distributions Linux dont glibc ne prend pas en charge tcache :
- si la cible est Debian 9, Ubuntu 16.04 ou Ubuntu 14.04, essayez d'abord exploit_nss_xxx.py pour la version spécifique
- ensuite, essayez exploit_defaults_mailer.py. Si vous savez que le sudo cible est compilé avec --disable-root-mailer, vous pouvez ignorer cet exploit. L'exploit tente de vérifier l'indicateur root mailer depuis le binaire sudo. Mais les permissions de sudo sur certaines distributions Linux sont 4711 (-rws--x--x), ce qui est impossible à vérifier sur le système cible. (Systèmes d'exploitation connus : CentOS 6 et 7)
- enfin, essayez exploit_userspec.py