Não existe pentester que não viva no terminal Linux. Praticamente toda ferramenta ofensiva séria nasce e roda em Linux, o Kali (a distribuição que usaremos) é Linux, e a maioria dos servidores que você vai testar também é. Se o terminal te intimida hoje, esta é a aula que resolve isso — e a boa notícia é que fluência em linha de comando é questão de repetição, não de talento. Ao fim deste artigo você navega, inspeciona e manipula um sistema Linux com desenvoltura. Abra seu Kali (ou qualquer Linux) e digite cada comando; ler não substitui teclar.

Se localizar e enxergar o que há

Comece se localizando. O sistema de arquivos do Linux é uma árvore única que parte da raiz /. Você está sempre "em algum lugar" dessa árvore, e três comandos respondem às perguntas básicas de navegação:

pwd          # print working directory — onde estou?
ls           # list — o que tem aqui?
cd /etc      # change directory — me mova para /etc
cd ..        # sobe um nível
cd ~         # vai para o meu diretório home

O ls sozinho mostra pouco. Para trabalho de segurança, você quase sempre quer os detalhes — permissões, dono, tamanho, itens ocultos:

ls -la       # -l = formato longo (permissões, dono, data); -a = mostra ocultos (que começam com .)

Arquivos que começam com ponto são "ocultos" por convenção, e é onde muita coisa interessante se esconde — históricos, configurações, credenciais esquecidas. Um .bash_history ou um .ssh/ no home de um usuário podem valer ouro num pentest. O -a é reflexo de quem sabe onde procurar.

Ler um arquivo conforme o tamanho

Para ler o conteúdo de arquivos, você tem um arsenal conforme o tamanho e a intenção:

cat arquivo.txt        # despeja o arquivo inteiro na tela (bom para arquivos curtos)
less arquivo.txt       # abre paginado, navegável (q para sair) — ideal para arquivos longos
head -n 20 arquivo     # primeiras 20 linhas
tail -n 20 arquivo     # últimas 20 linhas
tail -f /var/log/...   # acompanha um log em tempo real, conforme cresce

Esse tail -f é o companheiro constante de quem monitora logs enquanto um ataque acontece — você verá as linhas surgindo ao vivo.

Achar agulha no palheiro

Agora, a habilidade que realmente separa o iniciante do fluente: encontrar coisas. Um sistema tem milhares de arquivos; você precisa localizar agulhas no palheiro. Duas ferramentas dominam isso — find (procura arquivos por atributos) e grep (procura texto dentro de arquivos):

find / -name "*.conf" 2>/dev/null        # todo .conf a partir da raiz; joga erros fora
find /home -type f -name "*.txt"          # arquivos .txt dentro de /home
grep "senha" arquivo.txt                   # linhas que contêm "senha"
grep -r "password" /etc/ 2>/dev/null       # busca recursiva em todo /etc
grep -ri "api_key" .                        # -i ignora maiúsc/minúsc, -r é recursivo

O 2>/dev/null que aparece ali merece explicação, porque você vai usá-lo o tempo todo. Ele descarta as mensagens de erro (permissões negadas, etc.), deixando só os resultados úteis na tela. Falaremos de redirecionamento em detalhe já já.

A filosofia de combinar programas pequenos

Isso nos leva ao conceito mais poderoso do Linux, o que o torna uma ferramenta ofensiva tão afiada: pipes e redirecionamento. A filosofia Unix é ter muitos programas pequenos que fazem uma coisa bem, e combiná-los. O pipe | pega a saída de um comando e a entrega como entrada do próximo:

cat /etc/passwd | grep "bash"              # mostra só usuários com shell bash
ls -la | grep "rwx"                         # lista só itens com certa permissão
cat acesso.log | grep "404" | wc -l         # conta quantas linhas têm "404"
history | grep ssh                          # procura "ssh" no seu histórico de comandos

Repare no encadeamento: cat despeja, grep filtra, wc -l conta. Três ferramentas simples resolvendo uma pergunta específica. E o redirecionamento manda a saída para arquivos em vez da tela:

comando > saida.txt     # grava a saída num arquivo (sobrescreve)
comando >> saida.txt     # acrescenta ao final do arquivo (não apaga o que havia)
comando 2>/dev/null      # descarta os erros
comando > tudo.txt 2>&1  # grava saída E erros no mesmo arquivo

Salvar resultados é essencial num pentest — você precisa das evidências para o relatório. Redirecionar a saída de um scan para um arquivo é hábito profissional, não luxo.

O resto da caixa de ferramentas

Um punhado de comandos de apoio completa sua caixa de ferramentas inicial. Para manipular arquivos: cp (copiar), mv (mover/renomear), rm (remover — cuidado, não há lixeira), mkdir (criar diretório), touch (criar arquivo vazio). Para entender o ambiente: whoami (qual usuário sou), id (meu usuário e grupos), uname -a (informações do kernel e sistema — crucial na hora de procurar exploits de escalação), ps aux (processos em execução), netstat -tulnp ou ss -tulnp (portas abertas e o que as está escutando). Guarde especialmente o uname -a e o id: são os dois primeiros comandos que você roda ao entrar numa máquina comprometida, para saber onde está e quem você é.

Fluência vem de repetição

Não decore isto — use. Fluência no terminal vem de digitar os mesmos comandos centenas de vezes até que virem extensão dos seus dedos. Nas próximas semanas, force-se a fazer tudo pela linha de comando em vez da interface gráfica: navegar, ler, procurar, editar. O terminal deixa de ser assustador e vira sua bancada de trabalho — o lugar onde tudo acontece.

Fontes e leituras recomendadas

Exercícios

  1. Qual comando mostra em que diretório você está, e qual lista arquivos ocultos com detalhes de permissão?

    ✓ Resposta:

    pwd mostra o diretório atual; ls -la lista todos os arquivos, incluindo ocultos, com permissões e detalhes.

  2. Explique a diferença entre cat, less e tail -f para ler arquivos, e quando usar cada um.

    ✓ Resposta:

    cat despeja o arquivo inteiro de uma vez, bom para arquivos curtos; less abre paginado e navegável, ideal para arquivos longos; tail -f acompanha um arquivo em tempo real conforme ele cresce, ideal para monitorar logs ao vivo.

  3. Escreva um comando que busque recursivamente a palavra "password" (ignorando maiúsc/minúsc) dentro de /etc, descartando erros de permissão.

    ✓ Resposta:

    grep -ri "password" /etc/ 2>/dev/null

  4. O que faz o pipe |? Escreva um comando encadeado que conte quantas linhas do arquivo acesso.log contêm "404".

    ✓ Resposta:

    O pipe entrega a saída de um comando como entrada do próximo. Exemplo: cat acesso.log | grep "404" | wc -l.

  5. Ao entrar numa máquina recém-comprometida, quais dois comandos revelam "quem você é" e "em que sistema você está", e por que o segundo importa para escalação de privilégio?

    ✓ Resposta:

    whoami (ou id) revela quem você é; uname -a revela o sistema e a versão do kernel. O segundo importa porque a versão do kernel indica quais exploits de escalação de privilégio podem funcionar naquele sistema.