Comandos básicos de terminal, manipulação de arquivos, navegação pelo sistema de arquivos e outras operações essenciais em um ambiente GNU/Linux.
Todo hacker que se preze deve conhecer seu ambiente de trabalho como a palma da mão. Neste primeiro capítulo, você aprenderá os comandos fundamentais que revelam informações essenciais sobre o sistema que está operando.
Estes comandos são a base para qualquer operação avançada - seja para reconhecimento, análise forense ou simplesmente administração do sistema.
date não é apenas para saber as horas. Em operações de penetração, timestamps são cruciais para correlacionar eventos em logs.
df -h regularmente durante operações que geram logs extensos para evitar ficar sem espaço em disco no meio de uma análise crítica.
O conhecimento detalhado do hardware é fundamental para um hacker. Seja para otimizar exploits, entender limitações do sistema alvo ou planejar ataques que dependem de recursos específicos.
Neste capítulo, você dominará o uso de comandos no terminal para exibir informações detalhadas sobre o processador, memória, espaço em disco e dispositivos conectados do seu computador.
lscpu organiza informações do processador em um resumo claro, como modelo, arquitetura e número de núcleos, essencial para entender a capacidade de processamento.cat /proc/cpuinfo. Isso traz dados mais detalhados de cada core individual.
free -h mostra, de forma legível, o total, o uso e o disponível, enquanto lsmem revela a organização física da memória.cat /proc/meminfo - expande esses dados com dezenas de métricas essenciais para análise forense.
df -h, que exibe espaço livre e ocupado por partição, e du -sh detalha o consumo de uma pasta ou arquivo específico.lsblk mostra a hierarquia dos discos e partições, revelando a estrutura completa de armazenamento do sistema.lsblk com df -h para ter uma visão completa: estrutura física dos discos e uso real do espaço.
lsusb lista periféricos USB conectados, útil para identificar dispositivos suspeitos ou mapear hardware disponível.lspci identifica placas PCI como GPU e controladoras de rede, áudio e outras expansões internas do sistema.sudo lshw varre todo o hardware, reunindo processador, memória, armazenamento e conexões num único relatório completo.lscpu para processador, free -h para memória legível, df -h para discos, lsusb para USB, lspci para placas internas, e sudo lshw para relatório completo. Cada comando revela uma camada específica do hardware.
sudo lshw -html > hardware_report.html gera um relatório HTML completo do hardware - perfeito para documentação de reconhecimento.
watch: watch -n 2 'free -h && df -h' atualiza informações de memória e disco a cada 2 segundos.
O diretório /var/log é uma mina de ouro para qualquer analista de segurança. Aqui residem os logs que podem revelar tentativas de intrusão, erros de sistema e atividades suspeitas.
auth.log registra todas as tentativas de autenticação. É o primeiro lugar para procurar evidências de ataques de força bruta.
ls -la sempre que explorar novos diretórios. As permissões de arquivo podem revelar muito sobre a configuração de segurança do sistema.
Neste capítulo, você aprenderá a diferença fundamental entre sua **pasta pessoal** (~) e os **diretórios do sistema**. Usaremos os comandos ls, file e less para explorar diferentes áreas do sistema e identificar tipos de arquivo.
O símbolo ~ é um atalho para o diretório home do usuário logado. Em sistemas GNU/Linux, geralmente corresponde a /home/<nome_do_usuário>, enquanto em containers Docker executados como root, aponta para /root.
file para identificar três arquivos diferentes na pasta pessoal:.bash_history é texto ASCII simples com histórico de comandos, documento.txt é texto Unicode (suporta caracteres especiais), e script.sh é um script executável do shell.
less para visualizar um arquivo de log do sistema - área fora da pasta pessoal:sudo apenas quando necessário, evitando operações como root por questões de segurança.
file pode identificar malware disfarçado. Um arquivo .jpg que retorna "ELF executable" é claramente suspeito e merece investigação.
less para logs grandes pois permite navegação (setas, Page Up/Down) e busca (/termo). Para sair, pressione 'q'. Ao usar less em logs, procure padrões suspeitos como múltiplas falhas de login ou comandos sudo incomuns.
A manipulação de arquivos é uma habilidade fundamental. Criar, copiar e remover arquivos de forma eficiente é essencial para qualquer operação no sistema.
shred -vfz -n 3 arquivo ao invés de rm para deletar arquivos sensíveis de forma mais segura.
rm não apaga dados fisicamente. Para operações sensíveis, considere ferramentas como wipe ou dd com /dev/urandom.
Neste capítulo, você aprenderá a explorar sistematicamente comandos usando **todas** as ferramentas de apoio disponíveis. Aplicaremos os comandos type, which, help, man, apropos, info, whatis e alias para investigar completamente os comandos fundamentais ls, cd e rm.
Este é um exercício de **fluência** - repetição e exploração sistemática para ganhar confiança na consulta de comandos e suas opções.
ls:cd - note que é um comando interno do shell:rm - fundamental entender completamente antes de usar:man, apropos e whatis, dependem da existência de páginas de manual instaladas e de um índice atualizado dessas páginas.apropos <palavra> retorna "nothing appropriate"whatis <comando> não encontra nadaman <comando> mostra: "This system has been minimized... run the 'unminimize' command"apropos [palavra-chave] para descobrir comandos relacionados. Ex: apropos network lista todos os comandos relacionados à rede.
type para verificar se um comando é um alias suspeito antes de executar. Um ls que executa código extra pode ser malicioso.
type - Identifica se é built-in, alias ou bináriowhich - Localiza o caminho de binárioshelp - Ajuda para comandos internos do shellman - Manual completo de comandosapropos - Busca comandos por palavra-chaveinfo - Documentação detalhadawhatis - Descrição breve de comandosalias - Cria e lista atalhos de comandosA capacidade de criar e visualizar arquivos de texto rapidamente é fundamental para documentar descobertas, criar scripts e analisar dados.
>> para append e > para sobrescrever. Confundir os dois pode resultar em perda de dados importantes.
less em um arquivo pequeno, como no exemplo de uma lista com cinco frutas, pode acontecer de nada parecer ser exibido. Isso ocorre porque o less é um paginador interativo que pausa a saída apenas quando o conteúdo excede a altura do terminal; em arquivos muito curtos, ele abre e fecha rapidamente, retornando ao prompt. Para confirmar se o arquivo realmente contém dados, pode-se usar cat lista.txt ou wc -l lista.txt.
less ao invés de cat. O less não deixa o conteúdo no histórico do terminal. Lembre-se: less não é um comando de listagem simples como cat, mas uma ferramenta de navegação que permanece aberta até o usuário pressionar 'q' e que, em arquivos curtos, pode não parecer que "funciona" à primeira vista.
A habilidade de encontrar arquivos rapidamente é essencial para análise forense e reconhecimento de sistema. O comando find é uma das ferramentas mais poderosas para isso.
find /var/log -name "*.log" -exec grep -l "Failed password" {} \; para encontrar logs com tentativas de login falhadas.
Em muitas situações de penetração ou análise, você não terá acesso a editores gráficos. Dominar vi ou nano é essencial para sobrevivência no terminal.
history -c && history -w
O verdadeiro poder do terminal está na capacidade de combinar comandos simples para realizar análises complexas. Os pipes são a ferramenta que torna isso possível.
cat /var/log/auth.log | grep "Failed password" | awk '{print $11}' | sort | uniq -c | sort -nr para listar IPs com mais tentativas de login falhadas.
tail -f /var/log/auth.log | grep "Failed password" para monitorar tentativas de invasão em tempo real.