Você está na página 1de 8

Christopher Duffy

Novatec
Copyright © Packt Publishing 2015. First published in the English language under the title “Learning
Penetration Testing with Python” (9781785282324)

Copyright © Packt Publishing 2015. Publicação original em inglês intitulada “Learning Penetration
Testing with Python” (9781785282324)
Esta tradução é publicada e vendida com a permissão da Packt Publishing.

© Novatec Editora Ltda. 2016.

Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta
obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.

Editor: Rubens Prates PY20160517


Tradução: Edson Furmankiewicz
Revisão técnica: BrodTec
Assistente editorial: Priscila Yoshimatsu
Revisão gramatical: Smirna Cavalheiro
Editoração eletrônica: Carolina Kuwabata

ISBN: 978-85-7522-505-9

Histórico de impressões:
Maio/2016 Primeira edição

Novatec Editora Ltda.


Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
E-mail: novatec@novatec.com.br
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Sumário

Aviso legal ............................................................................................................................11

Sobre o autor ........................................................................................................................12

Agradecimentos ....................................................................................................................14

Sobre os revisores .................................................................................................................15

Prefácio ................................................................................................................................17

Capítulo 1 Entendendo a metodologia dos pentests .............................................................21


Uma visão geral dos pentests ............................................................................... 22


Entendendo o que um pentest não é .................................................................... 23
Auditorias de vulnerabilidade ...........................................................................24
Auditorias de engenharia reversa ......................................................................24
Hacking ...........................................................................................................24
Metodologias de auditoria ................................................................................... 25
Padrão de execução de pentest ............................................................................. 25
Interações pré-contrato ....................................................................................27
Coleta de inteligência .......................................................................................31
Modelagem de ameaças ....................................................................................32
Análise de vulnerabilidade ...............................................................................34
Exploração ......................................................................................................35
Pós-exploração.................................................................................................37
Relatórios ........................................................................................................37
Um exemplo de contrato ..................................................................................38
Ferramentas de pentest.........................................................................................41
NMAP.............................................................................................................42
Metasploit .......................................................................................................43
Veil ................................................................................................................. 44
Burp Suite....................................................................................................... 46
Hydra ............................................................................................................. 46

5
6 Aprendendo Pentest com Python

 John the Ripper ...............................................................................................47


oclHashcat ......................................................................................................50
Ophcrack.........................................................................................................51
Mimikatz e Incognito .......................................................................................51
SMBexec .........................................................................................................51
Cewl ................................................................................................................52
Responder .......................................................................................................52
theHarvester e Recon-NG ................................................................................53
pwdump e fgdump ...........................................................................................53
Netcat .............................................................................................................53
Ferramentas do Sysinternals .............................................................................54
Resumo ...............................................................................................................54

Capítulo 2 Noções básicas de script em Python ....................................................................55


Entendendo a diferença entre linguagens interpretadas e compiladas .....................56


Python – o mocinho e o bandido ......................................................................58
Um interpretador interativo de Python versus um script ................................... 60
Variáveis de ambiente e PATH ......................................................................... 60
Entendendo linguagens com tipagem dinâmica .................................................61
Seu primeiro script Python ...................................................................................62
Desenvolvendo scripts e identificando erros ..........................................................63
Palavras reservadas, palavras-chave e funções internas ......................................63
Variáveis globais e locais ................................................................................. 64
Entendendo um namespace ..............................................................................65
Módulos e importações ....................................................................................65
Formatação com Python ..................................................................................... 66
Indentação...................................................................................................... 66
Variáveis em Python .............................................................................................67
Depuração de valores de variáveis .....................................................................67
Variáveis string ................................................................................................68
Variáveis numéricas .........................................................................................69
Convertendo variáveis string e variáveis numéricas ...........................................70
Variáveis do tipo lista .......................................................................................72
Variáveis do tipo tupla .....................................................................................74
Variáveis do tipo dicionário ..............................................................................74
Entendendo valores e construtores-padrão ........................................................75
Atribuindo uma variável para uma string ..........................................................75
Operadores ......................................................................................................... 77
Operadores de comparação ............................................................................. 77
Operadores de atribuição .................................................................................78
Operadores aritméticos ....................................................................................79
Sumário 7

Operadores lógicos e de afiliação ......................................................................79


Instruções compostas .......................................................................................... 80
Instrução if ..................................................................................................... 80
Loops do Python .............................................................................................81
Rotinas de tratamento de eventos condicionais .................................................83
Funções .............................................................................................................. 84
Impacto das linguagens com tipagem dinâmica em funções.............................. 84
Colchetes ........................................................................................................ 84
Como comentar seu código ............................................................................. 86
Guia de estilo do Python ......................................................................................87
Classes ............................................................................................................87
Funções ...........................................................................................................87
Variáveis e nomes de instância ..........................................................................87
Argumentos e opções .......................................................................................... 88
Seu primeiro script auditor ...................................................................................89
Resumo ...............................................................................................................93

Capítulo 3 Identificando alvos com Nmap, Scapy e Python .................................................. 94


Entendendo como os sistemas se comunicam........................................................95


Arquitetura de quadros Ethernet ......................................................................97
Arquitetura de pacotes IP ................................................................................ 99
Arquitetura do cabeçalho TCP .......................................................................100
Entendendo como funciona o TCP ................................................................. 101
Arquitetura do cabeçalho UDP .......................................................................101
Entendendo como funciona o UDP ................................................................. 101
Entendendo o Nmap .......................................................................................... 102
Fornecendo os intervalos-alvo para o Nmap....................................................103
Executando os diferentes tipos de verificação ..................................................104
Executando varreduras UDP e TCP combinadas .............................................106
Ignorando as varreduras de sistema operacional ..............................................108
Diferentes tipos de saída .................................................................................108
Mecanismo de script Nmap ............................................................................113
Sendo eficiente com varreduras Nmap ............................................................ 114
Bibliotecas Nmap para Python ...........................................................................117
Biblioteca Scapy para Python ..............................................................................125
Resumo .............................................................................................................130

Capítulo 4 Executando ataques de credenciais com Python ................................................131


Tipos de ataques de credenciais ..........................................................................132


Definindo o ataque online de credenciais ........................................................132
Definindo o ataque offline de credenciais ........................................................132
8 Aprendendo Pentest com Python

Identificando o alvo ...........................................................................................135


Criando nomes de usuário-alvo ..........................................................................135
Gerando e verificando nomes de usuário com a ajuda do censo dos EUA .........136
Gerando os nomes de usuário ........................................................................137
Testes para identificação de usuários utilizando SMTP VRFY .............................146
Criando o script SMTP VRFY ........................................................................147
Resumo .............................................................................................................153

Capítulo 5 Explorando serviços com Python .......................................................................154


Entendendo a nova era da exploração de serviços ................................................155


Entendendo o encadeamento de exploits .............................................................157
Verificando senhas fracas, senhas-padrão ou senhas conhecidas ..........................157
Adquirindo acesso root ao sistema......................................................................159
Entendendo a quebra de hashes no Linux .......................................................166
Testando a sincronização de credenciais de conta ............................................167
Automatizando o encadeamento de exploits com Python ....................................172
Resumo .............................................................................................................178

Capítulo 6 Auditando aplicações web com Python .............................................................179


Identificando aplicativos ativos contra portas abertas .......................................... 181


Identificando arquivos e diretórios ocultos com Python.......................................183
Ataques de credenciais com o Burp Suite ............................................................187
Usando o twill para analisar o código-fonte ........................................................192
Entendendo quando usar o Python para auditorias web ......................................193
Entendendo quando usar bibliotecas específicas .............................................193
Sendo eficiente durante as auditorias web .......................................................195
Resumo .............................................................................................................196

Capítulo 7 Rompendo o perímetro com Python ..................................................................197


Entendendo o perímetro de hoje .........................................................................197


Protocolos de texto ........................................................................................197
Aplicativos web..............................................................................................198
Serviços de acesso remoto criptografados........................................................199
Redes Privadas Virtuais (VPNs) ......................................................................199
Serviços de correio .........................................................................................199
Domain Name Service (DNS) .........................................................................200
Serviços User Datagram Protocol (UDP) .........................................................200
Entendendo a relação entre contas e serviços.......................................................200
Invadindo caixas de entrada com o Burp Suite ....................................................201
Sumário 9

Identificando o caminho do ataque.....................................................................202


Entendendo as limitações da varredura do perímetro ......................................202
Download de arquivos de backup a partir de um servidor TFTP......................204
Quebrando hashes Cisco MD5 .......................................................................207
Ganhando acesso por meio de sites.....................................................................208
A execução de ataques de inclusão de arquivo .................................................209
Resumo .............................................................................................................213

Capítulo 8 Desenvolvimento de exploits com Python, Metasploit e Immunity.....................214


Introdução aos registradores ............................................................................... 214


Entendendo os registradores de uso geral ........................................................215
Entendendo os registradores de uso específico ................................................216
Entendendo a estrutura de memória do Windows ............................................... 217
Entendendo a pilha e o heap ........................................................................... 217
Entendendo imagens de programa e bibliotecas de vínculo dinâmico ...............220
Entendendo o bloco de ambiente de processo..................................................222
Entendendo o bloco de ambiente de thread .....................................................222
Kernel............................................................................................................222
Entendendo endereços de memória e sua ordenação ............................................223
Entendendo a manipulação da pilha ...................................................................224
Entendendo o Immunity ....................................................................................227
Entendendo o básico sobre o buffer overflow.......................................................227
Escrevendo um exploit de buffer overflow básico.................................................231
Entendendo os ajustes de pilha ...........................................................................247
Entendendo o propósito dos exploits locais .........................................................250
Noções básicas sobre outros scripts de exploit ....................................................251
Explorando binários independentes através da execução de scripts ..................252
Exploração de sistemas através de serviço TCP ...............................................252
Exploração de sistemas através de serviço UDP ...............................................253
Fazendo a engenharia reversa dos módulos do Metasploit ...................................254
Entendendo os mecanismos de proteção .............................................................262
Resumo .............................................................................................................262

Capítulo 9 Automatizando tarefas e relatórios com Python ................................................263


Entendendo como analisar arquivos XML para a criação de relatórios .................263


Entendendo como criar uma classe em Python....................................................269
Criando um script em Python para analisar um XML do Nmap ......................271
Criando um script em Python para gerar planilhas do Excel ............................279
Resumo .............................................................................................................286
10 Aprendendo Pentest com Python

Capítulo 10 Adicionando durabilidade a ferramentas Python .............................................287


Entendendo o registro em log do Python.............................................................287


Entendendo a diferença entre multithreading e multiprocessamento ....................288
Criando um script multithreaded em Python ..................................................288
Criando um script com multiprocessamento em Python..................................294
Construindo ferramentas com padrão de indústria ..............................................301
Resumo .............................................................................................................302

Você também pode gostar