Christopher Duffy. Novatec

Documentos relacionados
Allen B. Downey. Novatec

Chris Binnie. Novatec

3ª Edição Nilo Ney Coutinho Menezes

William Pereira Alves

Luiz Eduardo Borges. Novatec

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Adrian Pruteanu. Novatec

Aditya Y. Bhargava. Novatec

Introdução ao GitHub Peter Bell e Brent Beer

Adriano Pataro. Novatec

Allan Liska e Timothy Gallo. Novatec

Ademir C. Gabardo. Novatec

Osvaldo Santana Thiago Galesi

Desenvolvendo Websites com PHP

Benjamin Bengfort Jenny Kim

Criando Relatórios com PHP Pablo Dall Oglio

Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A.

Matheus Marabesi Michael Douglas

Novatec Editora Ltda

Hélio Engholm Jr. Novatec

Aprenda a Programar com Minecraft

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Jessey Bullock Jeff T. Parker

Ryan Mitchell. Novatec

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Miguel Grinberg. Novatec

Indira Knight. Novatec

Primeiros Passos com o Arduino

Rodrigo de Barros Paes

Jonathan Weber e a equipe da LunaMetrics

Web Interativa com Ajax e PHP

Jody Culkin e Eric Hagan

Novatec Editora Ltda

Karl Matthias Sean P. Kane

Raspberry Pi Manual do Usuário

Shelley Powers. Novatec

Brandon Rhodes John Goerzen

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

Shyam Seshadri & Brad Green

Guia Mangá. Microprocessadores. Michio Shibuya, Takashi Tonagi e Office Sawa. Novatec

Primeiros Passos com o Netduino

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

André Gugliotti. Novatec

Adrian Mouat. Novatec

Ademir Ribeiro dos Passos

Kenneth Reitz Tanya Schlusser

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

Edécio Fernando Iepsen

Ben Vinegar Anton Kovalyov

Expressões Regulares Cookbook Jan Goyvaerts Steven Levithan

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

Ademir Cristiano Gabardo. Novatec

Aaron Newcomb. Novatec

Análise de Regressão

Wolfram Donat. Novatec

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Aravind Shenoy Anirudh Prabhu

4ª Edição Pablo Dall Oglio

Allan Liska Geoffrey Stowe

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Arduino Básico Michael McRoberts


Sérgio de Oliveira. Novatec

Blender 3D jogos e animações interativas Allan Brito

Guia Mangá Circuitos Eletrônicos

Roberto Cohen. Novatec

Loiane Groner. Novatec

Robson Santos da Silva

Adrian Mejia. Novatec

Introdução à Programação com Python

Maurício Samy Silva. Novatec

Guia Mangá Motores elétricos

Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

A Arte de Escrever Programas Legíveis

Simon Holmes. Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

Novatec Editora Ltda

Daniel Moreno. Novatec

WordPress 3 Básico Stephanie Leary

Roni Antônio Mendes. Novatec

Ricardo Lino Olonca. Novatec

A Linguagem de Programação Go

Chris Goward. Novatec

Ricardo R. Lecheta. Novatec

Introdução à Programação com Python

Vinícius Manhães Teles prefácio de Kent Beck colaborações especiais de Kent Beck e Robert Mee

Daniel Moreno. Novatec

2ª Edição Cláudio Torres

4ª Edição Revisada e Ampliada Aurelio Marinho Jargas

Uma introdução visual à programação com jogos, arte, ciência e matemática

Ricardo R. Lecheta. Novatec

CONTEÚDO PROGRAMÁTICO

Transcrição:

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