Como Hackear Igual ao Elliot Alderson
Na série Mr. Robot vemos que o protagonista Elliot Alderson consegue hackear qualquer pessoa facilmente. Mas isso é realmente tão simples assim? Você quer saber como hackear na vida real? Como se proteger de um hacker que queira invadir o seu computador ou hackear suas contas? Então este post é para você.
Este Conteúdo é uma versão em forma de texto do vídeo que eu fiz no meu canal do YouTube. Caso você queira ver o vídeo antes de ler o post, basta clicar no play abaixo.
Na série podemos ver que o Elliot Alderson utiliza um programa para quebrar senhas e hackear suas vítimas. Para conseguir descobrir uma senha com mais facilidade ele adiciona uma lista de keywords ao programa, essa lista contém uma série de palavras ou números utilizados frequentemente em senhas fracas ou com informações específicas da vítima como a sua data de nascimento.
Elliot usa um programa chamado elpscrk que provavelmente significa Elliot Password Crack. Este não é um utilitário do Linux e deve ser um programa personalizado criado pelo próprio Elliot, porém existem programas muito semelhantes na vida real como você verá mais adiante nesse post.
No primeiro episódio da série podemos ver Elliot hackeando vários personagens, Elliot também comenta o quanto é bom em ler pessoas, inclusive até melhor que a própria psicóloga, isso é essencial para um hacker pois prestar atenção nos detalhes pode abrir várias brechas para explorar uma falha de segurança, e não estou falando só de uma senha que contenha o nome do seu animal de estimação ou seu time de futebol favorito mas também para achar falhas de segurança nas pessoas, é o que chamamos de Engenharia Social e esse assunto merece um post e um vídeo dedicado só para ele.
Mas você deve estar se perguntando…. ok, mas como um hacker faz para hackear alguém por onde ele começa?
Existem alguns cenários para se considerar, por exemplo, o hacker deseja hackear o computador de uma pessoa ou as contas dela, como perfis de redes sociais? Deseja hackear um site? Um serviço de FTP ou e-mail?
Para hackear o computador de alguém por exemplo, o hacker precisaria primeiramente abrir uma conexão com a máquina do alvo. Ele poderia até saber o IP da pessoa mas mesmo assim não conseguiria se conectar tão facilmente, é preciso que uma porta de rede vulnerável esteja aberta e rodando algum serviço que possa ser explorado, mas provavelmente essas portas estariam sendo filtrados pelo Firewall da máquina do alvo. Uma maneira mais simples seria, fazer com que a vítima seja infectada por um Backdoor, poderíamos criá-lo com o Metasploit e utilizando o Meterpreter como payload, e então convencer a vítima a instalá-lo, poderia ser feito conectando um pendrive Rubber Ducky por exemplo. Ao ser iniciado esse Backdoor se conectaria com a máquina do hacker que então passaria a enviar comandos para máquina da vítima.
Outra forma seria atacar um site, para isso teríamos que descobrir quais serviços estão ativos e vulneráveis no servidor utilizando um Port Scan como o Nmap, se for encontrado por exemplo um serviço SSH rodando na porta 22 e por meio do scan constatarmos que ele está desprotegido, então poderíamos realizar um ataque de força bruta para descobrir a senha, mas vale lembrar de algumas detalhes importantes, muitos servidores estão protegidos contra Brute Force e caso seja detectado um tráfego alto vindo de uma rede, este pode ser bloqueado, ou as portas podem estar sendo filtradas por um firewall.
Bora ver na prática como usar o Nmap e o Metasploit para encontrar um serviço SSH vulnerável e atacá-lo?
Neste exemplo eu estou rodando o Metasploitable 2 em uma máquina virtual, ele fornece um ambiente de teste de invasão com várias aplicações vulneráveis. Atenção, realizar ataques em redes que não pertencem a você é contra a lei, Pentesters profissionais realizam testes de acordo com os requisitos aprovados pelo cliente no ROE — Rules of Engagement ou Regras de Contrato, programas de Bug Bounty como o do Facebook também possuem diretrizes a serem seguidas). Primeiro vamos scanear quais os serviços que estão rodando no alvo e também quais suas versões, isso pode ser útil para explorar uma falha em uma determinada versão por exemplo. Para isso vamos rodar o Nmap com a flag -sV no ip da nossa máquina virtual de testes.
nmap -sV 192.168.56.101
Podemos identificar vários serviços rodando, dentre eles temos o SSH rodando na porta padrão 22 que está aberta, o SSH é um protocolo de rede que nos permite fazer o login em um servidor criando um túnel seguro de comunicação. Um hacker com o acesso ao SSH de um servidor poderia controlá-lo remotamente.
Para atacar o SSH vamos utilizar os módulos do Metasploit Framework. O Metasploit possui vários módulos que são códigos empacotados destinados a uma ação específica como explorar uma falha no sistema ou executar um scan em uma rede. Primeiramente vamos iniciar o Metasploit e em seguida procurar por módulos de SSH. Caso queira obter informações mais detalhadas sobre a versão do SSH podemos utilizar o módulo auxiliar “auxiliary/scanner/ssh/ssh_version”. Para isso basta digitar use e o nome do módulo, agora digitamos show options para verificarmos quais parâmetros devem ser informados e então utilizamos set e o nome do parâmetro. O parâmetro RHOSTS serve para definir o alvo.
Para atacar o serviço SSH vamos utilizar o módulo auxiliar “auxiliary/scanner/ssh/ssh_login”. O parâmetro RHOSTS seta nosso alvo, STOP_ON_SUCCESS define que o nosso programa vai parar de realizar ataques depois que já tiver descoberto a senha, VERBOSE definido como true faz com que a saída do programa seja exibida na tela, USERPASS_FILE serve para definirmos o caminho de um arquivo que contém usuários comuns e senhas comuns. Nesse exemplo eu peguei um arquivo do próprio Metasploit. O parâmetro THREADS serve para definir quantos processos em paralelo serão executados, isso aumenta o desempenho do nosso algoritmo. Por fim vemos que o usuário e senha foram encontrados.
Você também poderia tentar descobrir a senha de um usuário em uma rede social utilizando Brute Force, mas após algumas tentativas consecutivas, você provavelmente seria bloqueado. Um pesquisador indiano chamado Anand Prakash descobriu uma falha no Facebook, esta falha permitia o acesso a qualquer conta do Facebook, bastando apenas ao hacker saber o e-mail ou o número de telefone da vítima associados ao Facebook dela, com essas informações era possível solicitar a redefinição de senha e um código de 6 dígitos decimais viria por e-mail ou por SMS, ou seja, 1 milhão de combinações possíveis, é claro que se você tentasse digitar várias combinações o Facebook limitaria as tentativas, porém isso não ocorria no domínio “beta.facebook.com”, o que permitiu que o hacker fizesse um Brute Force até conseguir redefinir a senha do usuário. (Ele fez isso utilizando sua própria conta do Facebook, é contra as regras do programa de Bug Bounty do Facebook explorar uma falha na conta de outros usuários que não autorizaram esse processo, além é claro, de ser antiético).
As senhas de um rede social por exemplo são criptografadas por um algoritmo matemático chamado hash, uma vez que um hash é gerado, não será mais possível obter o valor da senha novamente, a menos que você tente gerar vários hashs para uma quantidade muito grande de senhas até que um seja igual ao hash que você tem. Então vamos entender como é possível quebrar um hash.
O Hashcat é um programa usado para quebrar hashs utilizando o processamento paralelo da GPU. Para demonstrar o funcionamento do Hashcat, eu vou gerar um MD5 da palavra “LinuxPato” e depois vamos tentar quebrar esse hash.
Nós vamos criar dois dicionários de palavras-chaves, depois vamos utilizar uma opção do Hashcat para combinar as palavras de modo semelhante ao que o programa do Elliot faz.
Agora executamos o Hashcat passando a flag “-m” para selecionar o algoritmo, a opção “0” equivale ao MD5, depois passamos a flag “-a” para selecionar o attack mode, a opção “1” representa o “combine” depois passamos o hash e em seguida os dicionários que serão combinados. E o Hashcat conseguiu encontrar a combinação certa.
Agora vamos utilizar o modo do híbrido de ataque do Hashcat. Primeiro vamos passar uma wordlist com as palavras “Software”, “Programming”, “Thor”, e depois uma máscara para que o Hashcat gere um número de quatro dígitos decimais, que vai de 0000 até 9999. Nessa senha super forte eu coloquei o nome do meu cachorro e a minha data de nascimento vamos ver se o Hashcat consegue descobrir.
E aqui vão algumas dicas de segurança para você se proteger contra hackers mal intencionados:
Não instalar programas desconhecidos, nem conectar ao seu computador dispositivos que não conheça ou sejam fornecidos por estranhos.
Não clicar em links duvidosos que possam estar em e-mails ou mensagens de onde você não sabe a procedência.
Dica: Para ver o endereço de um link no navegador sem clicar nele, basta passar o mouse em cima, se o endereço for estranho não clique, preste atenção para ver se o link não é forjado.
Não utilizar redes Wi-Fi desconhecidas, muito menos qualquer rede aberta que ver pela frente.
Utilizar senhas fortes com números, símbolos e letras em maiúsculo e minúsculo.
Outra Dica: Utilize um gerenciador de senhas para gerar suas senhas, a senha mais segura é a que nem mesmo você sabe.
Sempre opte por utilizar autenticação em dois fatores em todas as contas ou aplicativos que aceitarem, isso te dará uma camada a mais de proteção, mesmo que um hacker obtenha sua senha, ele não conseguira invadir sua conta sem o código de verificação.
Última dica: Opte por utilizar aplicativos que geram códigos como o Google Autenticator, caso alguém tenha acesso ao seu e-mail ou realize um SIM Swap do seu número, ainda assim você estará protegido.