Upload
yure-pereira
View
218
Download
0
Embed Size (px)
Citation preview
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 1/8
Novatec
Christopher Duffy
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 2/8
Copyright © Packt Publishing 2015. First published in the English language under the title “LearningPenetration Testing with Python” (9781785282324)
Copyright © Packt Publishing 2015. Publicação original em inglês intitulada “Learning PenetrationTesting 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 destaobra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
Editor: Rubens Prates PY20160517Tradução: Edson FurmankiewiczRevisão técnica: BrodTecAssistente editorial: Priscila YoshimatsuRevisão gramatical: Smirna CavalheiroEditoraçã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 11002460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529E-mail: [email protected]: novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 3/8
5
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 ............................................................................... 22Entendendo o que um pentest não é .................................................................... 23
Auditorias de vulnerabilidade ...........................................................................24Auditorias de engenharia reversa ......................................................................24Hacking ...........................................................................................................24
Metodologias de auditoria ................................................................................... 25Padrão de execução de pentest ............................................................................. 25
Interações pré-contrato ....................................................................................27Coleta de inteligência .......................................................................................31Modelagem de ameaças ....................................................................................32Análise de vulnerabilidade ...............................................................................34Exploração ......................................................................................................35Pós-exploração.................................................................................................37Relatórios ........................................................................................................37Um exemplo de contrato ..................................................................................38
Ferramentas de pentest.........................................................................................41NMAP.............................................................................................................42Metasploit .......................................................................................................43Veil ................................................................................................................. 44Burp Suite ....................................................................................................... 46Hydra ............................................................................................................. 46
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 4/8
Aprendendo Pentest com Python6
John the Ripper ...............................................................................................47oclHashcat ......................................................................................................50Ophcrack.........................................................................................................51Mimikatz e Incognito .......................................................................................51
SMBexec .........................................................................................................51Cewl ................................................................................................................52Responder .......................................................................................................52theHarvester e Recon-NG ................................................................................53pwdump e fgdump ...........................................................................................53Netcat .............................................................................................................53Ferramentas do Sysinternals .............................................................................54
Resumo ...............................................................................................................54
Capítulo 2 ■ Noções básicas de script em Python ....................................................................55Entendendo a diferença entre linguagens interpretadas e compiladas .....................56
Python – o mocinho e o bandido ......................................................................58Um interpretador interativo de Python versus um script ................................... 60Variáveis de ambiente e PATH ......................................................................... 60Entendendo linguagens com tipagem dinâmica .................................................61
Seu primeiro script Python ...................................................................................62Desenvolvendo scripts e identificando erros ..........................................................63
Palavras reservadas, palavras-chave e funções internas ......................................63
Variáveis globais e locais ................................................................................. 64Entendendo um namespace ..............................................................................65Módulos e importações ....................................................................................65
Formatação com Python ..................................................................................... 66Indentação ...................................................................................................... 66
Variáveis em Python .............................................................................................67Depuração de valores de variáveis .....................................................................67Variáveis string ................................................................................................68Variáveis numéricas .........................................................................................69Convertendo variáveis string e variáveis numéricas ...........................................70Variáveis do tipo lista .......................................................................................72Variáveis do tipo tupla .....................................................................................74Variáveis do tipo dicionário ..............................................................................74Entendendo valores e construtores-padrão ........................................................75Atribuindo uma variável para uma string ..........................................................75
Operadores ......................................................................................................... 77Operadores de comparação ............................................................................. 77
Operadores de atribuição .................................................................................78Operadores aritméticos ....................................................................................79
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 5/8
7Sumário
Operadores lógicos e de afiliação ......................................................................79Instruções compostas .......................................................................................... 80
Instrução if ..................................................................................................... 80Loops do Python .............................................................................................81
Rotinas de tratamento de eventos condicionais .................................................83Funções .............................................................................................................. 84Impacto das linguagens com tipagem dinâmica em funções.............................. 84Colchetes ........................................................................................................ 84Como comentar seu código ............................................................................. 86
Guia de estilo do Python ......................................................................................87Classes ............................................................................................................87Funções ...........................................................................................................87Variáveis e nomes de instância ..........................................................................87
Argumentos e opções .......................................................................................... 88Seu primeiro script auditor ...................................................................................89Resumo ...............................................................................................................93
Capítulo 3 ■ Identificando alvos com Nmap, Scapy e Python .................................................. 94
Entendendo como os sistemas se comunicam ........................................................95Arquitetura de quadros Ethernet ......................................................................97Arquitetura de pacotes IP ................................................................................ 99Arquitetura do cabeçalho TCP .......................................................................100
Entendendo como funciona o TCP .................................................................101Arquitetura do cabeçalho UDP .......................................................................101Entendendo como funciona o UDP ................................................................. 101
Entendendo o Nmap ..........................................................................................102Fornecendo os intervalos-alvo para o Nmap ....................................................103Executando os diferentes tipos de verificação ..................................................104Executando varreduras UDP e TCP combinadas .............................................106Ignorando as varreduras de sistema operacional ..............................................108Diferentes tipos de saída .................................................................................108Mecanismo de script Nmap ............................................................................113Sendo eficiente com varreduras Nmap ............................................................ 114
Bibliotecas Nmap para Python ...........................................................................117Biblioteca Scapy para Python ..............................................................................125Resumo .............................................................................................................130
Capítulo 4 ■ Executando ataques de credenciais com Python ................................................131
Tipos de ataques de credenciais ..........................................................................132
Definindo o ataque online de credenciais ........................................................132Definindo o ataque offline de credenciais ........................................................132
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 6/8
Aprendendo Pentest com Python8
Identificando o alvo ...........................................................................................135Criando nomes de usuário-alvo ..........................................................................135
Gerando e verificando nomes de usuário com a ajuda do censo dos EUA .........136Gerando os nomes de usuário ........................................................................137
Testes para identificação de usuários utilizando SMTP VRFY .............................146Criando o script SMTP VRFY ........................................................................147Resumo .............................................................................................................153
Capítulo 5 ■ Explorando serviços com Python .......................................................................154
Entendendo a nova era da exploração de serviços ................................................155Entendendo o encadeamento de exploits .............................................................157Verificando senhas fracas, senhas-padrão ou senhas conhecidas ..........................157Adquirindo acesso root ao sistema ......................................................................159
Entendendo a quebra de hashes no Linux .......................................................166Testando a sincronização de credenciais de conta ............................................167
Automatizando o encadeamento de exploits com Python ....................................172Resumo .............................................................................................................178
Capítulo 6 ■ Auditando aplicações web com Python .............................................................179
Identificando aplicativos ativos contra portas abertas .......................................... 181Identificando arquivos e diretórios ocultos com Python .......................................183
Ataques de credenciais com o Burp Suite ............................................................187Usando o twill para analisar o código-fonte ........................................................192Entendendo quando usar o Python para auditorias web ......................................193
Entendendo quando usar bibliotecas específicas .............................................193Sendo 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 ........................................................................................197Aplicativos web ..............................................................................................198Serviços de acesso remoto criptografados ........................................................199Redes Privadas Virtuais (VPNs) ......................................................................199Serviços de correio .........................................................................................199Domain Name Service (DNS) .........................................................................200Serviços User Datagram Protocol (UDP) .........................................................200
Entendendo a relação entre contas e serviços.......................................................200Invadindo caixas de entrada com o Burp Suite ....................................................201
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 7/8
9Sumário
Identificando o caminho do ataque .....................................................................202Entendendo as limitações da varredura do perímetro ......................................202Download de arquivos de backup a partir de um servidor TFTP......................204Quebrando hashes Cisco MD5 .......................................................................207
Ganhando acesso por meio de sites .....................................................................208A execução de ataques de inclusão de arquivo .................................................209Resumo .............................................................................................................213
Capítulo 8 ■ Desenvolvimento de exploits com Python, Metasploit e Immunity .....................214
Introdução aos registradores ............................................................................... 214Entendendo os registradores de uso geral ........................................................215Entendendo os registradores de uso específico ................................................216
Entendendo a estrutura de memória do Windows ............................................... 217
Entendendo a pilha e o heap ...........................................................................217Entendendo imagens de programa e bibliotecas de vínculo dinâmico ...............220Entendendo o bloco de ambiente de processo ..................................................222Entendendo o bloco de ambiente de thread .....................................................222Kernel............................................................................................................222
Entendendo endereços de memória e sua ordenação ............................................223Entendendo a manipulação da pilha ...................................................................224Entendendo o Immunity ....................................................................................227Entendendo o básico sobre o buffer overflow.......................................................227
Escrevendo um exploit de buffer overflow básico.................................................231Entendendo os ajustes de pilha ...........................................................................247Entendendo o propósito dos exploits locais .........................................................250Noções básicas sobre outros scripts de exploit ....................................................251
Explorando binários independentes através da execução de scripts ..................252Exploração de sistemas através de serviço TCP ...............................................252Exploração de sistemas através de serviço UDP ...............................................253
Fazendo a engenharia reversa dos módulos do Metasploit ...................................254Entendendo os mecanismos de proteção .............................................................262Resumo .............................................................................................................262
Capítulo 9 ■ Automatizando tarefas e relatórios com Python ................................................263
Entendendo como analisar arquivos XML para a criação de relatórios .................263Entendendo como criar uma classe em Python ....................................................269
Criando um script em Python para analisar um XML do Nmap ......................271Criando um script em Python para gerar planilhas do Excel ............................279
Resumo .............................................................................................................286
7/26/2019 Python Pentest
http://slidepdf.com/reader/full/python-pentest 8/8
Aprendendo Pentest com Python10
Capítulo 10 ■ Adicionando durabilidade a ferramentas Python .............................................287
Entendendo o registro em log do Python .............................................................287Entendendo a diferença entre multithreading e multiprocessamento ....................288
Criando um script multithreaded em Python ..................................................288
Criando um script com multiprocessamento em Python ..................................294Construindo ferramentas com padrão de indústria ..............................................301Resumo .............................................................................................................302