PYTHON PENTESTING
Análise de Redes Usando Python
Marcelo Rodrigues – marcelorodriguesss@gmail.com
Faculdade Evolução – Maio 2016
IX Semana de Gestão e Tecnologia
About.me
 Marcelo Rodrigues
 Graduado em Redes de Computadores
 Mestrado em Ciências
 Analista de Sistemas
 Prof. Faculdade Evolução
 Certificação Linux – LPIC 2
 Entusiata Software Livre
O QUE É PENTESTING?
 Pentesting é um teste que mede a
segurança da informação de um empresa.
Verifica-se a segurança da informação na
rede da empresa, nos bancos de dados,
nos servidores de rede e tudo que seja
especificado pela empresa.
 No final do Pentesting deve-se apresentar
um relatório detalhado das fraquezas
encontradas, vulnerabilidades e os riscos
associados, assim como as soluções para
os problemas.
PENTESTER X HACKER
 Pentester e Hacker são termos similares;
 Pentesters trabalham em empresas ou organizações e usam seus
conhecimentos para evitar tentativas de invasão ou ataques hackers;
 Hackers usam seus conhecimentos para
outros propósitos como fama, venda de
vulnerabilidades por dinheiro ou por simples
inimizade;
O QUE É PYTHON?
 Python é uma linguagem de programação de alto nível,
interpretada, usa scripts e é orientada a objetos;
 Foi lançada por Guido van Rossum em 1991;
 Prioriza a legibilidade do código sobre a velocidade ou
expressividade.
 Combina uma sintaxe concisa e clara com os recursos
poderosos de sua biblioteca padrão e por módulos e
frameworks desenvolvidos por terceiros.
POR QUE PYTHON?
 Simplicidade;
 Vasta documentação (pt-br);
 Várias bibliotecas;
 Comunidade ativa;
PYTHON – SIMPLICIDADE
SOFTWARES
 Python2.7
 scapy (pip install scapy)
 tcpdump (aptitude install tcpdump)
 Linux Debian 8 – 64 bits
AMBIENTE DE TESTES
IP SCANNER E PORT SCANNER
 IP Scanner: Usado para identificar se um host está ativo
atráves de seu endereço IP usando o ECHO REQUEST e o
ECHO REPLY (PING).
 Script: ping_sweep.py
 Port Scanner: Usado quando o firewall bloqueia o protocolo
icmp. Além de verificar se o host está ativo na rede, identifica
também as portas abertas no host.
 Script: portsc.py
HALF-OPEN SCANNER
 Half-Open Scanner é um tipo especial de scanner. Esta
técnica é usada para bular as regras do firewall e sistemas de
detecção de por logs.
 Está técnica utiliza crafting, que consiste na criação de
pacotes personalizados.
 Usamos um pacote Python chamada Scapy. O Scapy permite
a customização de pacotes de rede.
HALF-OPEN SCANNER
 O cliente envia um pacote SYN para o servidor em uma porta
específica;
 Se a porta está aberta, o servidor responde com um pacote
SYN/ACK;
 Se um servidor responde com um pacote RST, a porta está
fechada;
 Script: halfopen.py
FIN SCANNER
 Algumas vezes Firewalls ou Sistemas de Detecção de Intrusão
(IDS) são configurados para detectar SYN scans. Neste caso,
usamos um FIN Scanner.
 O FIN Scanner envia um pacote TCP com somente a flag FIN
configurada.
 Se não houver resposta, isso significa que a porta está aberta;
 Se houver resposta, isso significa que a porta está fechada;
 Script: fin.py
ACK FLAG SCANNER
 O método ACK Scanner é usado para determinar se um host
está ou não protegido por um firewall ou algum tipo de
filtragem de pacotes.
 Neste método o cliente envia um pacote ACK ao servidor;
 Se não houver respostas, a porta está sendo filtrada;
 Se houver reposta, com a Flag 04, a porta não está sendo
filtrada;
 Scripts: sniffer1.py e ack.py
PING OF DEATH
 O ping da morte (ping of death) é um tipo de negação de serviço
onde o atacante deliberadamente envia pacotes do typo ping
request com tamanho maior que 65.536 bytes;
 Nesse caso, o TCP fragmenta os pacotes ao enviar pela rede;
 Normalmente o IP do atacante é trocado por um IP falso para não
ser rastreado;
 Em Python é possível criar um script para enviar vários ping
requests silmutâneamentes;
 Scripts: pingofd.py
COLETA DE INFORMAÇÕES -
WEB
 Do ponto de vista para os pentesters, a técnica de coleta de
informações é importante para a manipulação de erros;
 Esses erros podem ser incluídos em relatórios para eventuais
correções;
 Informações coletados:
 Sistema operacional;
 Software Web;
 Aplicações Web;
 Script: info.py
VERIFICAÇÃO CABEÇALHO HTTP
 Uma outra maneira de se obter informações é verificando o
cabeçalho de páginas web;
 O cabeçalho http provê muitas informações sobre o servidor;
 O script é bem menor que o anterior;
 Script: header.py
OBRIGADO
LIVRO
MUITO BOM!

IX Semana Gest Tec Evolucao

  • 1.
    PYTHON PENTESTING Análise deRedes Usando Python Marcelo Rodrigues – marcelorodriguesss@gmail.com Faculdade Evolução – Maio 2016 IX Semana de Gestão e Tecnologia
  • 2.
    About.me  Marcelo Rodrigues Graduado em Redes de Computadores  Mestrado em Ciências  Analista de Sistemas  Prof. Faculdade Evolução  Certificação Linux – LPIC 2  Entusiata Software Livre
  • 3.
    O QUE ÉPENTESTING?  Pentesting é um teste que mede a segurança da informação de um empresa. Verifica-se a segurança da informação na rede da empresa, nos bancos de dados, nos servidores de rede e tudo que seja especificado pela empresa.  No final do Pentesting deve-se apresentar um relatório detalhado das fraquezas encontradas, vulnerabilidades e os riscos associados, assim como as soluções para os problemas.
  • 4.
    PENTESTER X HACKER Pentester e Hacker são termos similares;  Pentesters trabalham em empresas ou organizações e usam seus conhecimentos para evitar tentativas de invasão ou ataques hackers;  Hackers usam seus conhecimentos para outros propósitos como fama, venda de vulnerabilidades por dinheiro ou por simples inimizade;
  • 5.
    O QUE ÉPYTHON?  Python é uma linguagem de programação de alto nível, interpretada, usa scripts e é orientada a objetos;  Foi lançada por Guido van Rossum em 1991;  Prioriza a legibilidade do código sobre a velocidade ou expressividade.  Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros.
  • 6.
    POR QUE PYTHON? Simplicidade;  Vasta documentação (pt-br);  Várias bibliotecas;  Comunidade ativa;
  • 7.
  • 8.
    SOFTWARES  Python2.7  scapy(pip install scapy)  tcpdump (aptitude install tcpdump)  Linux Debian 8 – 64 bits
  • 9.
  • 10.
    IP SCANNER EPORT SCANNER  IP Scanner: Usado para identificar se um host está ativo atráves de seu endereço IP usando o ECHO REQUEST e o ECHO REPLY (PING).  Script: ping_sweep.py  Port Scanner: Usado quando o firewall bloqueia o protocolo icmp. Além de verificar se o host está ativo na rede, identifica também as portas abertas no host.  Script: portsc.py
  • 11.
    HALF-OPEN SCANNER  Half-OpenScanner é um tipo especial de scanner. Esta técnica é usada para bular as regras do firewall e sistemas de detecção de por logs.  Está técnica utiliza crafting, que consiste na criação de pacotes personalizados.  Usamos um pacote Python chamada Scapy. O Scapy permite a customização de pacotes de rede.
  • 12.
    HALF-OPEN SCANNER  Ocliente envia um pacote SYN para o servidor em uma porta específica;  Se a porta está aberta, o servidor responde com um pacote SYN/ACK;  Se um servidor responde com um pacote RST, a porta está fechada;  Script: halfopen.py
  • 13.
    FIN SCANNER  Algumasvezes Firewalls ou Sistemas de Detecção de Intrusão (IDS) são configurados para detectar SYN scans. Neste caso, usamos um FIN Scanner.  O FIN Scanner envia um pacote TCP com somente a flag FIN configurada.  Se não houver resposta, isso significa que a porta está aberta;  Se houver resposta, isso significa que a porta está fechada;  Script: fin.py
  • 14.
    ACK FLAG SCANNER O método ACK Scanner é usado para determinar se um host está ou não protegido por um firewall ou algum tipo de filtragem de pacotes.  Neste método o cliente envia um pacote ACK ao servidor;  Se não houver respostas, a porta está sendo filtrada;  Se houver reposta, com a Flag 04, a porta não está sendo filtrada;  Scripts: sniffer1.py e ack.py
  • 15.
    PING OF DEATH O ping da morte (ping of death) é um tipo de negação de serviço onde o atacante deliberadamente envia pacotes do typo ping request com tamanho maior que 65.536 bytes;  Nesse caso, o TCP fragmenta os pacotes ao enviar pela rede;  Normalmente o IP do atacante é trocado por um IP falso para não ser rastreado;  Em Python é possível criar um script para enviar vários ping requests silmutâneamentes;  Scripts: pingofd.py
  • 16.
    COLETA DE INFORMAÇÕES- WEB  Do ponto de vista para os pentesters, a técnica de coleta de informações é importante para a manipulação de erros;  Esses erros podem ser incluídos em relatórios para eventuais correções;  Informações coletados:  Sistema operacional;  Software Web;  Aplicações Web;  Script: info.py
  • 17.
    VERIFICAÇÃO CABEÇALHO HTTP Uma outra maneira de se obter informações é verificando o cabeçalho de páginas web;  O cabeçalho http provê muitas informações sobre o servidor;  O script é bem menor que o anterior;  Script: header.py
  • 18.