Escolar Documentos
Profissional Documentos
Cultura Documentos
Man-in-the-Middle
Índice
1 - Introdução ................................................................................................................... 4
2 - Ataque MITM - Tipos de ataque................................................................................. 6
2.1 - ARP poisoning e ARP spoofing........................................................................... 6
2.2 - DHCP spoofing .................................................................................................... 7
2.3 - DNS spoofing e DNS poisoning .......................................................................... 7
2.4 – Port stealing ......................................................................................................... 8
2.5 – ICMP redirection ................................................................................................. 8
2.6 – Route mangling ................................................................................................... 8
2.7 – Traffic tunneling .................................................................................................. 9
3 - Ataque MITM – Divisão Taxionómica..................................................................... 10
3.1 - Denial of Service................................................................................................ 10
3.1.1 - MAC Flooding ............................................................................................ 10
3.1.2 – Replay attack .............................................................................................. 10
3.1.3 – ACK Storm ................................................................................................. 10
3.2 – Eavesdropping / Sniffing ................................................................................... 11
3.3 - Exploits .............................................................................................................. 11
3.4 – Filtering ............................................................................................................. 11
3.5 – Hijacking ou Roubo de sessão........................................................................... 12
3.5.1 - TCP ............................................................................................................. 12
3.5.2 - UDP............................................................................................................. 13
3.6 – Injection ............................................................................................................. 14
3.7 - Spoofing ............................................................................................................. 14
4 - Ferramentas ............................................................................................................... 15
4.1 – dsniff – http://monkey.org/~dugsong/dsniff/..................................................... 15
4.1.1 - arpspoof....................................................................................................... 15
4.1.2 - dsniff ........................................................................................................... 15
4.1.3 - dnsspoof ...................................................................................................... 15
4.2 – Ettercap - http://ettercap.sourceforge.net........................................................... 15
4.3 – Ethereal - http://www.ethereal.com/.................................................................. 16
4.4 – SSLSNIF - http://www.thoughtcrime.org/ie.html ............................................. 16
5 – Exemplos práticos .................................................................................................... 17
5.1- Arp spoofing / DNS spoofing ............................................................................. 17
5.2 – Descoberta de password em protocolos sem segurança .................................... 17
5.3 – SSL Attack......................................................................................................... 17
6 - Conclusões ................................................................................................................ 18
7 - Bibliografia ............................................................................................................... 19
8 – Anexos ...................................................................................................................... 20
Índice de Figuras
1 - Introdução
Um ataque man-in-the-middle (MITM) é um ataque no qual o atacante é capaz
de ler, inserir e modificar, mensagens entre duas entidades sem que estas tenham
conhecimento que a ligação entre ambas está comprometida. Tipicamente o atacante
insere-se no meio da comunicação entre dois postos, fazendo parte do canal de
comunicação. A seguinte figura demonstra isso mesmo, a preto está representado o
percurso real (A-B) e a vermelho(A-M-B) o percurso alterado pelo atacante.
A B
A B
HALF-DUPLEX
M
A B
FULL-DUPLEX
M
Figura 2 - Fluxo de ataque.
Relativamente à posição do atacante em relação à vítima, esta pode ser
transparente, ou seja, o atacante executa o ataque de uma forma invisível ou o atacante
pode servir de proxy às comunicações, tornando-se exposto em relação à entidade
atacada.
Neste documento pretendemos fazer uma análise sucinta de vários aspectos
relacionados com este tipo de ataques. No capítulo 2 verificamos quais os principais
ataques MITM. No capítulo 3 pretendemos abordar as várias divisões taxionómicas dos
vários ataques. Note-se que na designação destas técnicas frequentemente se recorre à
Envio para uma determinada estação tramas arp adulteradas de forma a colocar-
se no meio de qualquer comunicação que essa estação tente efectuar, ou seja, através da
resposta aos pedidos arp request da estação vítima, torna-se possível manipular a tabela
de arp que esta mantém. A manipulação da tabela de arp pode consistir em associar o
endereço ip da estação de destino com o mac address da estação que está a fazer o
ataque. Quando a estação vítima tentar comunicar com a estação destino esta vai estar a
comunicar efectivamente com a estação que está a fazer o ataque. Este tipo de ataque é
designado de ARP spoofing.
O processo anterior descreve o ataque quando a comunicação é efectuada na
rede local, este ataque pode também ser efectuado quando a estação vítima pretende
estabelecer uma comunicação para fora da rede local. Neste caso é necessário efectuar o
arp poisoning à default gateway, ficando a estação que está a fazer o ataque com o
controlo da comunicação.
Nas figuras seguintes analisamos um exemplo da aplicação da técnica de ARP
spoofing. A máquina A envia um pacote de pedido ARP em broadcast perguntando
qual o dono do endereço IP 192.168.1.250, o qual deverá responder para o endereço
192.168.1.100 com o seu endereço MAC. Este pacote de broadcast é enviado para todas
as máquinas da rede e supostamente a máquina com o IP 192.168.1.250 vai responder à
máquina A. Seguidamente esta recebe o pacote de resposta ARP de B indicando o seu
endereço MAC e actualiza a sua tabela ARP, podendo assim enviar dados a B.
O problema é que a máquina A não sabe se foi mesmo a máquina B que enviou
o pacote de resposta ARP, e o atacante pode tirar partido disso mesmo, enviando a
resposta para a máquina A antes de B o fazer. Após isto acontecer a máquina A pensa
que está a comunicar com B, mas na verdade comunica com o atacante que pode decidir
reencaminhar, ou não, as mensagens para B. Neste ponto o atacante tem o controlo total
da comunicação.
cliente que efectuou o pedido tem a informação do ID do pacote que vai receber, pois
no caso do ID não ser o esperado o pacote é descartado.
Ataques do tipo DNS poisoning podem incidir sobre a manipulação das listas de
actualizações dinâmicas dos DNSs ou no envio de pedidos de actualização.
G1 AT
ICMP redirect to
H LA
N
192.168.0.* 192.168.0.1
LAN 1 Router 1
195.103.31.19
192.168.2.
INTERNET
192.168.2. 195.103.31.19
LAN 2 Router 2
192.168.1.1
192.168.1.*
Servidor Router 1
Tunnel GRE
INTERNET Cliente
Falso Serv.
Gateway
Atacante
Este tipo de ataque, consiste em inundar o switch com muitas tramas arp para
que o switch não as consiga processar, sendo obrigado a repetir as tramas recebidas para
todos os portos, portando-se como um hub.
Actualizando as tabelas MAC/IP com endereços MAC não existentes, faz com
que os pacotes sejam descartados. Se isto for feito em todos os clientes da rede, vai
provocar um ataque do tipo denial of service.
Se um atacante não for cuidadoso ao desviar uma sessão TCP, pode provocar
quebras nas ligações devido às tempestades de pacotes ACK.
Assume-se que o atacante, a dada altura da sessão, conseguiu forjar a
informação correcta do pacote (cabeçalhos, números de sequência, etc…). Quando são
enviados dados injectados na sessão pelo atacante para o servidor, este irá acusar a
recepção dos mesmos, ao enviar ao verdadeiro cliente um pacote de ACK, este irá
conter um número de sequência que o cliente não está à espera, e por isso o cliente vai
tentar resincronizar a sessão TCP com o servidor, enviando para tal um pacote ACK
com o número que está à espera. O servidor recepciona o pacote de ACK mas este
contém um número que não é o correcto, por isso, o servidor reenvia o último pacote
ACK. Este ciclo continuará eternamente provocando a tempestade de pacotes ACK
como vemos na figura 7.
3.3 - Exploits
3.4 – Filtering
3.5.1 - TCP
O cliente envia para o servidor um caracter num pacote de dados com o número
sequencial x+1. O servidor acusa a recepção deste pacote ao enviar ao cliente um ACK
com o número x+2 como próximo número sequencial esperado (x+1, mais 1 byte para o
carácter A). Se o atacante quiser injectar dados na sessão TCP fazendo-se passar pelo
cliente pode efectuar os seguintes passos:
3.5.2 - UDP
Desviar sessões sobre UDP é análogo ao TCP, excepto que os atacantes não
necessitam de se preocupar com o manuseamento dos números sequenciais e outros
mecanismos TCP de manutenção de sessão, pois o UDP não estabelece sessões. Por isso
é fácil injectar dados numa sessão sem ser detectado. A figura 10 ilustra um roubo de
“sessão” sobre UDP.
3.6 – Injection
3.7 - Spoofing
4 - Ferramentas
4.1.1 - arpspoof
4.1.2 - dsniff
4.1.3 - dnsspoof
5 – Exemplos práticos
6 - Conclusões
7 - Bibliografia
VALERI, Marco, ORNAGHI, Alberto, “Man-in-the-middle” , Technical White Paper,
Italian Black Hats Association. Setembro 2002.
GREEN, Ian “DNS Spoofing by The Man In The Middle” GSEC Practical Assignment
January 2005
Documentação MITM
http://www.contentverification.com/man-in-the-middle/index.html
http://www.vandyke.com/solutions/ssh_overview/ssh_overview_threats.html
8 – Anexos
http://paginas.fe.up.pt/~mrs05020/ssr/mitm/Dns_Spoofing_dsniff_swf.html
http://paginas.fe.up.pt/~mrs05020/ssr/mitm/Ettercap_Ftp_password_swf.html
http://paginas.fe.up.pt/~mrs05020/ssr/mitm/sslsniff_Certificados_swf.html