Testes de Invasão
Uma introdução prática ao hacking
Descrição do livro
Os pentesters simulam ciberataques para descobrir vulnerabilidades de segurança em redes, em sistemas operacionais e em aplicações. Os especialistas em segurança da informação no mundo todo utilizam técnicas de testes de invasão para avaliar as defesas de uma empresa.
No livro Testes de invasão, a especialista em segurança, pesquisadora e instrutora Georgia Weidman apresenta as principais habilidades e técnicas necessárias a todo pentester. Ao usar um laboratório baseado em máquinas virtuais que inclui o Kali Linux e sistemas operacionais vulneráveis, você verá uma série de lições práticas usando ferramentas como o Wireshark, o Nmap e o Burp Suite.
À medida que acompanhar as lições usando o laboratório e realizando ataques, você vivenciará as fases fundamentais de uma avaliação de verdade – que incluem a coleta de informações, a descoberta de vulnerabilidades passíveis de exploração, a obtenção de acesso aos sistemas, a pós-exploração de falhas, além de outras atividades.
Aprenda a:
quebrar senhas e chaves de redes wireless usando a força bruta e listas de palavras;
testar aplicações web em busca de vulnerabilidades;
usar o Metasploit Framework para lançar exploits e implementar seus próprios módulos do Metasploit;
automatizar ataques de engenharia social;
evitar softwares antivírus;
transformar o acesso a um computador em um controle total da empresa na fase de pós-exploração de falhas.
Você irá até mesmo explorar a implementação de seus próprios exploits. Então prosseguirá para o hacking de dispositivos móveis – a área particular de pesquisa de Weidman – com sua ferramenta Smartphone Pentest Framework.
Com seu conjunto de lições práticas que englobam ferramentas e estratégias fundamentais, Testes de invasão é a introdução de que todo aspirante a hacker precisa.
Ver menos ▲Sumário
- Sobre a autora
- Apresentação
- Agradecimentos
- Introdução
- Nota de agradecimento
- Sobre este livro
- Parte I: Definições básicas
- Parte II: Avaliações
- Parte III: Ataques
- Parte IV: Desenvolvimento de exploits
- Parte V: Hacking de dispositivos móveis
- Introdução aos testes de invasão
- Fases de um teste de invasão
- Preparação
- Coleta de informações
- Modelagem das ameaças
- Análise de vulnerabilidades
- Exploração de falhas
- Pós-exploração de falhas
- Geração de relatórios
- Resumo
- Definições básicas
- Configurando o seu laboratório virtual
- Definições básicas
- Instalando o VMware
- Instalando o Kali Linux
- Configurando a rede de sua máquina virtual
- Instalando o Nessus
- Instalando softwares adicionais
- Configurando emuladores de Android
- Smartphone Pentest Framework
- Máquinas virtuais-alvo
- Criando o alvo Windows XP
- VMware Player no Microsoft Windows
- VMware Fusion no Mac OS
- Instalando e ativando o Windows
- Instalando o VMware Tools
- Desativando o Windows Firewall
- Configurando as senhas dos usuários
- Configurando um endereço IP estático
- Fazendo o XP atuar como se fosse membro de um domínio Windows
- Instalando softwares vulneráveis
- Instalando o Immunity Debugger e o Mona
- Instalando o alvo Ubuntu 8.10
- Criando o alvo Windows 7
- Criando uma conta de usuário
- Desativando as atualizações automáticas
- Configurando um endereço IP estático
- Adicionando uma segunda interface de rede
- Instalando softwares adicionais
- Resumo
- Usando o Kali Linux
- Linha de comando do Linux
- Sistema de arquivos do Linux
- Mudando de diretório
- Conhecendo os comandos: as man pages
- Privilégios dos usuários
- Adicionando um usuário
- Adicionando um usuário ao arquivo sudoers
- Trocando de usuário e utilizando o sudo
- Criando um novo arquivo ou diretório
- Copiando, movendo e apagando arquivos
- Adicionando texto a um arquivo
- Concatenando texto a um arquivo
- Permissões de arquivo
- Editando arquivos
- Pesquisando textos
- Editando um arquivo com o vi
- Manipulação de dados
- Usando o grep
- Usando o sed
- Correspondência de padrões com o awk
- Administrando pacotes instalados
- Processos e serviços
- Administrando redes
- Configurando um endereço IP estático
- Visualizando as conexões de rede
- Netcat: o canivete suíço das conexões TCP/IP
- Verificando se uma porta está ouvindo
- Abrindo um shell de comandos listener
- Enviando um shell de comandos de volta a um listener
- Automatizando tarefas com o cron
- Resumo
- Programação
- Scripts com o Bash
- Ping
- Script Bash simples
- Executando o nosso script
- Adicionando funcionalidades por meio de instruções if
- Laço for
- Organizando os resultados
- Scripts com Python
- Fazendo a conexão com uma porta
- Instrução if no Python
- Criando e compilando programas em C
- Resumo
- Utilizando o Metasploit
- Iniciando o Metasploit
- Encontrando módulos no Metasploit
- Banco de dados de módulos
- Pesquisa embutida
- Configurando as opções do módulo
- RHOST
- RPORT
- SMBPIPE
- Exploit Target
- Payloads (ou Shellcode)
- Encontrando payloads compatíveis
- Execução de teste
- Tipos de shell
- Bind Shells
- Reverse Shells
- Definindo um payload manualmente
- Msfcli
- Obtendo ajuda
- Mostrando as opções
- Payloads
- Criando payloads standalone com o Msfvenom
- Selecionando um payload
- Configurando as opções
- Selecionando um formato de saída
- Servindo payloads
- Usando o módulo Multi/Handler
- Utilizando um módulo auxiliar
- Resumo
- Avaliações
- Coleta de informações
- Avaliações
- Coleta de informações de fontes abertas
- Netcraft
- Lookups com o Whois
- Reconhecimento com DNS
- Procurando endereços de email
- Maltego
- Scanning de portas
- Scanning manual de portas
- Scanning de portas com o Nmap
- Resumo
- Descobrindo vulnerabilidades
- Do scan de versões do Nmap à vulnerabilidade em potencial
- Nessus
- Políticas do Nessus
- Realizando um scanning com o Nessus
- Observação sobre as classificações do Nessus
- Por que usar scanners de vulnerabilidade?
- Exportando os resultados do Nessus
- Pesquisando vulnerabilidades
- Nmap Scripting Engine
- Executando um único script no NSE
- Módulos de scanner do Metasploit
- Funções para verificação de exploits no Metasploit
- Scanning de aplicações web
- Nikto
- Atacando o XAMPP
- Credenciais default
- Análise manual
- Explorando uma porta estranha
- Encontrando nomes de usuário válidos
- Resumo
- Capturando tráfego
- Configuração da rede para capturar o tráfego
- Usando o Wireshark
- Capturando tráfego
- Filtrando o tráfego
- Seguindo um stream TCP
- Dissecando os pacotes
- ARP Cache Poisoning
- Básico sobre o ARP
- IP Forwarding
- ARP cache poisoning com o Arpspoof
- Usando o ARP cache poisoning para personificar o gateway default
- DNS Cache Poisoning
- Iniciando
- Usando o Dnsspoof
- Ataques SSL
- Básico sobre o SSL
- Usando o Ettercap para ataques SSL do tipo man-in-the-middle
- SSL Stripping
- Usando o SSLstrip
- Resumo
- Ataques
- Exploração de falhas
- Ataques
- Retornando ao MS08-067
- Payloads do Metasploit
- Meterpreter
- Explorando as credenciais default do WebDAV
- Executando um script no servidor web do alvo
- Fazendo o upload de um payload do Msfvenom
- Explorando o phpMyAdmin aberto
- Fazendo download de um arquivo com o TFTP
- Fazendo o download de arquivos críticos
- Fazendo o download de um arquivo de configuração
- Fazendo download do arquivo SAM do Windows
- Explorando um buffer overflow em um software de terceiros
- Explorando aplicações web de terceiros
- Explorando um serviço comprometido
- Explorando os compartilhamentos NFS abertos
- Resumo
- Ataques a senhas
- Gerenciamento de senhas
- Ataques online a senhas
- Listas de palavras
- Descobrindo nomes de usuário e senhas com o Hydra
- Ataques offline a senhas
- Recuperando hashes de senha a partir de um arquivo SAM do Windows
- Fazendo o dump de hashes de senha por meio de acesso físico
- Algoritmos de hashing LM versus NTLM
- Problema com hashes de senha LM
- John the Ripper
- Quebrando senhas do Linux
- Quebrando senhas de arquivos de configuração
- Tabelas rainbow
- Serviços online para quebra de senhas
- Fazendo o dump de senhas em formato texto simples
- Resumo
- Exploração de falhas do lado do cliente
- Evitando filtros com payloads do Metasploit
- Todas as portas
- Payloads HTTP e HTTPS
- Ataques do lado do cliente
- Exploração de falhas de navegadores
- Exploits para PDF
- Exploits de Java
- browser_autopwn
- Winamp
- Resumo
- Engenharia social
- Social-Engineer Toolkit
- Ataques spear-phishing
- Selecionando um payload
- Configurando as opções
- Dando nome ao seu arquivo
- Um ou vários emails
- Criando o template
- Definindo o alvo
- Configurando um listener
- Ataques web
- Ataques de email em massa
- Ataques em várias direções
- Resumo
- Evitando aplicações antivírus
- Cavalos de Troia (trojans)
- Msfvenom
- Como funcionam os aplicativos antivírus
- Microsoft Security Essentials
- VirusTotal
- Passando por um programa antivírus
- Efetuando uma codificação
- Cross-compilação personalizada
- Criptografando executáveis com o Hyperion
- Evitando os antivírus com o Veil-Evasion
- Escondendo-se à vista de todos
- Resumo
- Pós-exploração de falhas
- Meterpreter
- Utilizando o comando upload
- getuid
- Outros comandos do Meterpreter
- Scripts do Meterpreter
- Módulos de pós-exploração de falhas do Metasploit
- Railgun
- Escalação de privilégios locais
- getsystem no Windows
- Módulo de escalação de privilégios locais para o Windows
- Evitando o UAC no Windows
- Escalação de privilégios com o udev no Linux
- Coleta de informações locais
- Procurando arquivos
- Keylogging (registro de teclas)
- Obtendo credenciais
- Comandos net
- Outra maneira de acessar um sistema
- Verificando o histórico do Bash
- Movimento lateral
- PSExec
- Pass the Hash (Passe a hash)
- SSHExec
- Token para personificação
- Incognito
- Captura de SMB
- Pivoteamento
- Adicionando uma rota no Metasploit
- Scanners de porta do Metasploit
- Executando um exploit por meio de um pivô
- Socks4a e ProxyChains
- Persistência
- Adicionando um usuário
- Persistência no Metasploit
- Criando um cron job no Linux
- Resumo
- Testes em aplicações web
- Utilizando o Burp Proxy
- Injeção de SQL
- Testando a existência de vulnerabilidades de injeção de SQL
- Explorando vulnerabilidades de injeção de SQL
- Usando o SQLMap
- Injeção de XPath
- Inclusão de arquivos locais
- Inclusão de arquivos remotos
- Execução de comandos
- Cross-site Scripting
- Verificando a existência de uma vulnerabilidade de XSS refletido
- Tirando proveito do XSS com o Browser Exploitation Framework
- Cross-site Request Forgery
- Scanning de aplicações web com o w3af
- Resumo
- Ataques wireless
- Instalação
- Visualizando as interfaces wireless disponíveis
- Scan para descobrir pontos de acesso
- Modo monitor
- Capturando pacotes
- Wireless aberto
- Wired Equivalent Privacy
- Pontos fracos do WEP
- Efetuando o cracking das chaves WEP com o Aircrack-ng
- Wi-Fi Protected Access
- WPA2
- Processo de conexão corporativa
- O processo de conexão pessoal
- Handshake de quatro vias
- Quebrando chaves WPA/WPA2
- Wi-Fi Protected Setup
- Problemas com o WPS
- Cracking do WPS com o Bully
- Resumo
- Desenvolvimento de exploits
- Buffer overflow com base em pilha no Linux
- Desenvolvimento de exploits
- Teoria de memória
- Buffer overflow no Linux
- Um programa vulnerável
- Provocando uma falha
- Executando o GDB
- Provocando uma falha no programa com o GDB
- Controlando o EIP
- Sequestrando a execução
- Ordem dos bytes (endianness)
- Resumo
- Buffer overflow com base em pilha no Windows
- Procurando uma vulnerabilidade conhecida no War-FTP
- Provocando uma falha
- Localizando o EIP
- Gerando um padrão cíclico para determinar o offset
- Verificando os offsets
- Sequestrando a execução
- Obtendo um shell
- Resumo
- Sobrescritas de SEH
- Exploits de sobrescrita de SEH
- Passando o controle ao SEH
- Encontrando a string de ataque na memória
- POP POP RET
- SafeSEH
- Usando um short jump
- Selecionando um payload
- Resumo
- Fuzzing, porte de exploits e módulos do Metasploit
- Efetuando fuzzing em programas
- Encontrando bugs em revisão de código
- Efetuando fuzzing em um servidor Trivial FTP
- Tentativa de provocar uma falha
- Portando exploits públicos para atender às suas necessidades
- Encontrando um endereço de retorno
- Substituindo o shellcode
- Alterando o exploit
- Criando módulos para o Metasploit
- Um módulo semelhante com string de exploit
- Portando o código de nosso exploit
- Técnicas para atenuação de exploração de falhas
- Cookies de pilha
- Address Space Layout Randomization
- Data Execution Prevention
- Assinatura obrigatória de código
- Resumo
- Hacking de dispositivos móveis
- Utilizando o Smartphone Pentest Framework
- Hacking de dispositivos móveis
- Vetores de ataque móvel
- Mensagens de texto
- Near Field Communication
- Códigos QR
- Smartphone Pentest Framework
- Configurando o SPF
- Emuladores de Android
- Associando um modem móvel
- Criando o aplicativo Android
- Instalando o aplicativo
- Associando o servidor do SPF e o aplicativo
- Ataques remotos
- Login default do SSH no iPhone
- Ataques do lado do cliente
- Shell do lado do cliente
- Controle remoto com o USSD
- Aplicativos maliciosos
- Criando agentes SPF maliciosos
- Pós-exploração de falhas em dispositivos móveis
- Coleta de informações
- Controle remoto
- Efetuando o pivoteamento por meio de dispositivos móveis
- Escalação de privilégios
- Resumo
- Recursos
- Fazendo o download dos softwares para criar o seu laboratório virtual
Sobre o autor
Georgia Weidman é pentester e pesquisadora, bem como a fundadora do Bulb Security, uma empresa de consultoria na área de segurança. Faz apresentações em conferências pelo mundo todo, incluindo o Black Hat, o ShmooCon e o DerbyCon, além de dar aulas sobre assuntos como testes de invasão, hacking de dispositivos móveis e desenvolvimento de exploits.… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
Renato B
Muito BOM!
Marcos L L
Excelente livro para quem quer iniciar tecnicamente na área de pentest. Muita prática logo do início.
Lucio F B
Excelente!
Luciana A F M
Gostei muito do livro. Tem uma linguagem didática e bons exemplos fáceis de entender.






