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
- The Linux Command Line — William Shotts (livro gratuito e excelente, linuxcommand.org)
- OverTheWire: Bandit — jogo de linha de comando que ensina exatamente esses fundamentos na prática
- Linux Basics for Hackers — OccupyTheWeb (voltado justamente para este público)
man— o manual embutido:man grep,man find; sua primeira fonte para qualquer comando
Exercícios
-
Qual comando mostra em que diretório você está, e qual lista arquivos ocultos com detalhes de permissão?
✓ Resposta:pwdmostra o diretório atual;ls -lalista todos os arquivos, incluindo ocultos, com permissões e detalhes. -
Explique a diferença entre
cat,lessetail -fpara ler arquivos, e quando usar cada um.✓ Resposta:catdespeja o arquivo inteiro de uma vez, bom para arquivos curtos;lessabre paginado e navegável, ideal para arquivos longos;tail -facompanha um arquivo em tempo real conforme ele cresce, ideal para monitorar logs ao vivo. -
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 -
O que faz o pipe
|? Escreva um comando encadeado que conte quantas linhas do arquivoacesso.logcontê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. -
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(ouid) revela quem você é;uname -arevela 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.