Introdução
A escalada de privilégios é uma fase crítica em testes de penetração e hacking ético. Uma vez que um atacante obtém acesso inicial de baixo privilégio a um sistema, seu próximo objetivo geralmente é elevar seus privilégios para um usuário administrador ou root. A escalada de privilégios bem-sucedida depende fortemente de uma enumeração meticulosa do sistema — coletando o máximo de informações possível sobre a configuração do sistema alvo, processos em execução, permissões de arquivos e softwares instalados.
Este módulo deve reforçar uma regra fundamental: a enumeração vem antes da exploração. A maior parte da escalada de privilégios bem-sucedida não é mágica; trata-se de notar uma configuração incorreta ou um relacionamento que já existia.
Para otimizar esse processo tedioso, profissionais de segurança utilizam scripts de enumeração automatizados. Uma das ferramentas mais populares e padrão da indústria é o LinPEAS (Linux Privilege Escalation Awesome Script). O LinPEAS pesquisa automaticamente por possíveis caminhos para escalar privilégios em hosts Linux/Unix/macOS e destaca as descobertas usando um sistema codificado por cores para indicar a probabilidade de um exploit bem-sucedido.
A automação ajuda porque os sistemas modernos possuem muitas partes móveis para serem inspecionadas manualmente em cada tarefa. No entanto, a saída do script ainda precisa de interpretação humana.
Neste laboratório, você simulará um cenário de pós-exploração. Você atuará como um testador de penetração que precisa transferir o script LinPEAS da sua máquina "atacante" para uma máquina "alvo", executá-lo e analisar a saída para identificar vetores de escalada de alta probabilidade.
Iniciar Servidor Web Local para Transferência
Nesta etapa, você aprenderá como hospedar arquivos para que possam ser transferidos para uma máquina alvo. Durante um teste de penetração, você frequentemente possui um script útil (como o LinPEAS) em sua máquina local, mas precisa de uma maneira de colocá-lo no servidor alvo comprometido.
Uma maneira rápida e nativa de hospedar arquivos no Linux é usando o módulo de servidor HTTP do Python. Isso permite que você transforme qualquer diretório em um servidor web leve instantaneamente.
Para este laboratório, simulamos dois ambientes dentro do seu espaço de trabalho. O diretório ~/project/attacker representa sua máquina local contendo o script linpeas.sh. O diretório ~/project/target representa o servidor comprometido onde você precisa baixar o script.
Primeiro, navegue até o diretório do atacante onde o script está localizado:
cd ~/project/attacker
Liste o conteúdo do diretório para verificar se o script está lá:
ls -l
Você deve ver linpeas.sh na saída. Agora, inicie um servidor HTTP Python na porta 8080. Usaremos o símbolo & no final do comando para executar o servidor em segundo plano, permitindo que você continue usando a mesma janela do terminal:
python3 -m http.server 8080 &
Você verá uma saída semelhante a esta, indicando que o servidor está em execução:
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...
Pressione Enter uma vez para trazer o prompt do seu terminal de volta. Seu servidor web local agora está hospedando ativamente o arquivo linpeas.sh.
Baixar o LinPEAS para o Alvo
Nesta etapa, você agirá como a máquina alvo comprometida e baixará o script do servidor web do atacante.
Sistemas Linux normalmente possuem utilitários de download de linha de comando instalados por padrão, como wget ou curl. Essas ferramentas são inestimáveis para puxar scripts e exploits para um sistema alvo.
Primeiro, navegue até o diretório alvo simulado:
cd ~/project/target
Agora, use o comando wget para baixar o script linpeas.sh do servidor web local que você iniciou na etapa anterior. Como o servidor está rodando no mesmo ambiente para este laboratório, você usará localhost como endereço:
wget http://localhost:8080/linpeas.sh
Você verá a saída mostrando o progresso do download:
--2026-10-25 10:00:00-- http://localhost:8080/linpeas.sh
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 645 [text/x-sh]
Saving to: ‘linpeas.sh’
linpeas.sh 100%[===================>] 645 --.-KB/s in 0s
2026-10-25 10:00:00 (15.4 MB/s) - ‘linpeas.sh’ saved [645/645]
Verifique se o arquivo foi baixado com sucesso listando o conteúdo do diretório:
ls -l
Agora você deve ver o linpeas.sh no seu diretório ~/project/target.
Executar o Script
Nesta etapa, você preparará e executará o script LinPEAS.
Executar a ferramenta é apenas o começo. O valor real vem de reconhecer quais descobertas são ruído normal e quais mapeiam para caminhos práticos de escalada.
Quando você baixa um script da internet ou o transfere via servidor web, o Linux remove sua permissão de "execução" por motivos de segurança. Se você tentar executá-lo imediatamente, receberá um erro de "Permission denied".
Para corrigir isso, você deve usar o comando chmod (change mode) para adicionar a permissão de execução (+x) ao arquivo.
Execute o seguinte comando para tornar o script executável:
chmod +x linpeas.sh
Se você executar ls -l novamente, notará que as permissões do arquivo mudaram (geralmente mostrando rwx para o usuário), e o nome do arquivo pode aparecer em uma cor diferente no seu terminal, indicando que agora é um programa executável.
Agora, execute o script. No Linux, para executar um arquivo executável localizado no seu diretório atual, você deve prefixá-lo com ./. Isso diz ao sistema exatamente onde encontrar o programa:
./linpeas.sh
Você verá o script rodar e exibir várias verificações do sistema. Em um cenário do mundo real, o LinPEAS gera milhares de linhas de informações. Para este laboratório, estamos usando uma versão simulada simplificada que destaca os conceitos principais.
[+] LinPEAS - Linux Privilege Escalation Awesome Script (Mock Version)
========================================================================
[?] Basic System Information
Linux labex-vm 5.15.0-1040-aws #45-Ubuntu SMP ...
[!] HIGH PROBABILITY PRIVILEGE Escalation VECTORS
[+] SUID files:
-rwsr-xr-x 1 root root 43K /usr/bin/sudo
-rwsr-xr-x 1 root root 32K /usr/bin/su
-rwsr-xr-x 1 root root 15K /usr/bin/custom_backup (Unknown SUID)
[?] Checking sudo permissions
User labex may run the following commands on this host:
(ALL : ALL) ALL
[+] Enumeration Completed.
Reserve um momento para observar a saída. Note como ele categoriza as informações em seções como "Basic System Information" e "SUID files".
Analisar Vetores de Alta Probabilidade
Nesta etapa, você aprenderá como gerenciar e analisar a saída gerada por scripts de enumeração.
Como scripts de enumeração reais produzem uma quantidade avassaladora de texto, testadores de penetração raramente leem tudo diretamente na tela do terminal. Em vez disso, eles redirecionam a saída para um arquivo de texto para que possam pesquisar posteriormente usando ferramentas como o grep.
Vamos executar o script novamente, mas desta vez, usaremos o operador > para redirecionar a saída para um arquivo chamado results.txt:
./linpeas.sh > results.txt
Note que nada foi impresso na tela desta vez. Todo o texto foi enviado diretamente para o results.txt.
Agora, vamos analisar os resultados. O LinPEAS é famoso por sua codificação por cores, onde o texto VERMELHO/AMARELO indica uma probabilidade de 99% de um vetor de escalada de privilégios. Em nossa saída, ele sinalizou um arquivo "Unknown SUID".
SUID (Set owner User ID up on execution) é um tipo especial de permissão de arquivo concedida a um arquivo. Quando um arquivo com SUID é executado, ele roda com os privilégios do proprietário do arquivo (geralmente root), em vez do usuário que o executou. Se um binário personalizado ou vulnerável tiver o bit SUID definido, atacantes podem explorá-lo para obter um shell root.
Use o comando grep para pesquisar no arquivo results.txt especificamente pela palavra-chave SUID:
grep "SUID" results.txt
Você deve ver a seguinte saída:
[+] SUID files:
-rwsr-xr-x 1 root root 15K /usr/bin/custom_backup (Unknown SUID)
Ao filtrar a saída, você identificou com sucesso um arquivo altamente suspeito (/usr/bin/custom_backup). Em um teste de penetração real, seu próximo passo seria investigar este binário específico para ver se ele pode ser explorado para lhe conceder acesso root.
Resumo
Neste laboratório, você vivenciou o processo crítico de enumeração automatizada de sistemas para escalada de privilégios. Você aprendeu como hospedar arquivos localmente usando o módulo de servidor HTTP nativo do Python. Você também aprendeu como transferir arquivos para uma máquina alvo usando ferramentas de linha de comando como o wget. Além disso, você praticou a modificação de permissões de arquivos para tornar scripts executáveis e como executá-los. Finalmente, você aprendeu como redirecionar a saída do script para um arquivo e usar o grep para analisar os dados em busca de vetores de escalada de alta probabilidade, como binários SUID configurados incorretamente.
Essas habilidades fundamentais são essenciais para qualquer profissional de segurança ou testador de penetração ao avaliar a postura de segurança interna de um sistema Linux.



