
análise do estouro de buffer do sudo que afeta versões do sudo <1.8.26 e como usar o GCC para compilar exploits disponíveis publicamente
Análise do CVE-2019-18634 (https://www.exploit-db.com/exploits/47995)
Sudo 1.8.25p - 'pwfeedback' Buffer Overflow (PoC)
A opção pwfeedback do sudo pode ser usada para fornecer feedback visual quando o usuário está digitando sua senha. Para cada tecla pressionada, um asterisco é impresso. Esta opção foi adicionada em resposta à confusão dos usuários sobre como o prompt padrão Password: desativa o eco das teclas pressionadas. Embora o pwfeedback não esteja habilitado por padrão na versão upstream do sudo, alguns sistemas, como Linux Mint e Elementary OS, o habilitam em seus arquivos sudoers padrão.
Análise
Sudo buffer overflow tryhackme writeup
Análise do CVE-2019-18634
Primeiro, fazemos login na instância do tryhackme via SSH
A vulnerabilidade ocorre porque a função pwfeedback é vulnerável a um heap buffer overflow. Para explorar essa vulnerabilidade, primeiro verificamos se a máquina possui a versão vulnerável do sudo (sudo <1.8.26) executando o comando sudo –version
Análise do CVE-2019-18634
Primeiro, fazemos login na instância do tryhackme via SSH
A vulnerabilidade ocorre porque a função pwfeedback é vulnerável a um heap buffer overflow. Para explorar essa vulnerabilidade, primeiro verificamos se a máquina possui a versão vulnerável do sudo (sudo <1.8.26) executando o comando sudo –version

confirmando que a máquina possui uma versão vulnerável do sudo, agora verificamos se a função pwfeedback está presente. Isso pode ser feito de 2 maneiras: invocando o sudo e digitando qualquer coisa no prompt de senha, que deve exibir "*" conforme você digita caracteres para a senha, e a segunda e mais técnica maneira de fazer isso é usando o comando sudo -l, mas isso também exigirá que o usuário tenha permissões adequadas que permitam visualizar informações sobre o sudo ou poder concatenar o arquivo sudoers

Agora confirmaremos que um buffer overflow é possível usando o caso de teste usado no exploit-db https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id ^^A linha de código acima funciona da seguinte forma:
Adicione 100 caracteres A e canalize-os para o comando sudo, que então acabará no heap buffer do pwfeedback.

O sudo então exibirá um segmentation fault, pois não sabe como continuar o processo do sudo
Isso acontece porque, uma vez que um heap buffer estático é inundado, ele começará a inundar os registradores da CPU e o ponteiro de instrução, que mantém o fluxo da próxima instrução.
Podemos executar o exploit, que causará um buffer overflow e nos dará acesso root ao sistema https://www.exploit-db.com/exploits/47995
