Escalar privilégios com SUDO
- Gustavo Viana
- Linux , Segurança da informação
- 17 de fevereiro de 2020
O SUDO permite que um usuário execute um comando como super user (root), sendo ele um dos binários do linux que possibilita escalação de privilégio. Isto é, permite que um usuário não privilegiado torne-se root ou SYSTEM (em caso de máquinas Windows). Essa técnica é constantemente utilizada em CTFs (Capture the flag) ou challenges/defafios de hacking.
Abaixo estão alguns exemplos de escalação de privilégio:
Escalar privilégios com VI e VIM
A escalação de privilégio com VI e VIM, famosos editores de texto, ocorre pois estes binários possuem o parâmetro “-c” que permite a execução de um comando (que neste caso será /bin/bash):
sudo vi -c ':!/bin/bash'
sudo vim -c ':!/bin/bash'
NANO
O NANO, outro editor de texto, também possui uma forma de executar um comando, porém este fluxo requer um pouco mais de ações:
1- Execute o comando:
sudo nano
2- Pressione as teclas:
CTRL+R
3- Pressione as teclas:
CTRL+X
4- Digite o comando a ser executado:
reset; sh 1>&0 2>&0
FIND
O binário FIND, utilizado para busca de arquivos e diretórios possui o parâmetro -exec para realizar uma execução, conforme indicado abaixo, também é possível escalar privilégio com o seguinte comando:
sudo find . -exec /bin/bash \; -quit
Estes foram somente alguns exemplos de como escalar privilégios com SUDO. As referências foram retiradas de https://gtfobins.github.io/ .
Mitigação do ataque
Para evitar este tipo de ataque é recomendado:
- Restringir acesso SUDO aos usuários, aplicando o princípio do mínimo privilégio (PoLP): Mantenha no SUDO somente o que os usuários realmente utilizam para executar seus trabalhos.
- Implementar múltiplo fator de autenticação no SUDO : Através de um recurso de two factor authentication é possível garantir que apenas usuários autorizados executem os comandos.
- Adicionar a flag NOEXEC no sudoers.
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !