Mr. Robot Hacks: Como Fsociety invadiu a Casa Inteligente da Advogada da Evil Corp

Mr. Robot Hacks: Como Fsociety invadiu a Casa Inteligente da Advogada da Evil Corp

No primeiro episódio da segunda temporada de Mr. Robot (eps2.0_unm4sk-pt1.tc), os hackers da Fsociety assumiram o controle da Casa Inteligente da Consultora Geral (a advogada líder interna) da Evil Corp. A elegante residência dessa mulher, localizada na sofisticada área de Greenwich Village, na cidade de Nova York, estava totalmente automatizada, incluindo a TV, as luzes, o sistema de som, a garagem, o aquecimento e resfriamento, o sistema de segurança, o aquecedor de água, entre outros. A Fsociety conseguiu obter controle sobre esse sistema digital e, eventualmente, forçou a mulher a deixar sua casa. Pouco tempo depois, a Fsociety se instalou no local.”

Este ataque destaca os problemas embrionários da segurança da Internet das Coisas (IoT). Conforme tudo, desde sistemas de segurança residencial até sistemas de entretenimento e similares, se torna digitalizado, os riscos de ser hackeado e perder o controle de sua própria casa aumentam.

Nos últimos anos, foram encontradas várias vulnerabilidades nesses sistemas de casas inteligentes, incluindo acesso a sistemas de segurança residencial, sistemas de monitoramento de bebês, sistemas de aquecimento, ventilação e ar-condicionado domésticos, entre outros. Por exemplo, pesquisadores da Universidade de Michigan conseguiram invadir o sistema popular da Samsung SmartThings e obter o PIN do sistema de segurança da porta da frente.

Vamos analisar como a Fsociety poderia ter invadido a casa dela, mas, em vez de um sistema de casa inteligente, vamos invadir um sistema de prédio inteligente.

Servidores de Automação Predial da Schneider Electric

A Schneider Electric é uma empresa sediada em Paris, conhecida na indústria de controle industrial. Na verdade, eles são pioneiros nesse campo, tendo desenvolvido o protocolo mais amplamente usado em controles industriais, o Modbus.

A Schneider Electric fabrica produtos que utilizam controles digitais em aplicações industriais. Esses controladores digitais são Controladores Lógicos Programáveis, ou CLPs. Eles utilizam esses CLPs em várias aplicações industriais diferentes, incluindo produtos de automação predial, e os vendem em todo o mundo.

Um dos produtos deles, o Servidor de Automação Schneider-Electric, é utilizado em edifícios comerciais para controlar e automatizar diversos sistemas, incluindo aquecimento, resfriamento, segurança, etc. É uma espécie de equivalente comercial de uma casa inteligente, porém com apostas muito mais altas.

Utilizando o Shodan para Encontrar os Servidores de Automação

Podemos encontrar esses servidores de automação no Shodan ao buscar por “Schneider-Electric” automation.

“Schneider Electric” automation

Como podem ver no mapa, não é encontrado nada no Brasil

Alguns meses atrás, um pesquisador de segurança independente, Karn Ganeshen, encontrou uma grande vulnerabilidade nesses servidores de automação que permite praticamente a qualquer pessoa assumir o controle deles. Vamos tentar isso. Vou usar o Kali Linux, mas como esse ataque é tão simples, qualquer distribuição Linux servirá.

A Vulnerabilidade

Essa vulnerabilidade permite ao atacante se conectar ao Servidor de Automação via SSH usando credenciais padrão e depois elevar seus privilégios para ‘root’. Uma vez que o atacante tem privilégios de root, ele não possui apenas o servidor, mas todo o prédio!

Conectando-se ao Servidor de Automação do Prédio

Primeiro, vamos encontrar um Servidor de Automação Schneider Electric e nos conectar a ele via SSH. O comando é simples.

kali > ssh <ip> -l admin

Depois de conectados, o servidor solicitará uma senha. É nesse momento que o atacante pode tentar usar a senha padrão ‘admin’ ou realizar uma tentativa de ataque de força bruta.

Exemplo de um ataque bem sucedido

Você será recebido pela conta de administração do Servidor de Automação.

Podemos digitar ‘help’ para ver quais comandos podemos usar a partir desta conta.

Por exemplo, vamos digitar ‘release’. Como você pode ver abaixo, o sistema responde com as informações da versão do servidor. Além disso, observe que um dos comandos é ‘reboot’, o que pode ser útil em um ataque de negação de serviço (DoS) contra este sistema.

Uma das fraquezas desse sistema é que podemos encadear comandos do sistema após esses comandos SSH. Portanto, por exemplo, podemos ver o arquivo passwd no servidor subjacente digitando;

admin> uptime | cat /etc/passwd

Como você pode ver, agora temos listadas todas as contas neste servidor. Claro, esse arquivo contém apenas as contas e não as senhas. As senhas estão no arquivo /etc/shadow e apenas o root tem acesso a esse arquivo.

Obtendo Privilégios de Root

Claro, para assumir o controle deste servidor, queremos privilégios de root. Podemos elevar nossos privilégios simplesmente digitando;

admin > sudo -i

A configuração padrão deste servidor de automação predial não possui senha para a conta ‘root’, então basta pressionar Enter quando solicitado uma senha.

Como você pode ver, o prompt fica verde e indica que somos root!

Agora, vamos digitar ‘help’ aqui para ver quais comandos estão disponíveis para nós.

Uma vez que agora temos privilégios de root neste sistema, deveríamos ser capazes de fazer praticamente qualquer coisa! Vamos ver se conseguimos visualizar os hashes de senha em /etc/shadow.

root > cat /etc/shadow

Como você pode ver, conseguimos obter todas as contas e seus hashes de senha! Se necessário, poderíamos executar esses hashes em um quebrador de senhas por força bruta, como o hashcat, para recuperar as senhas em texto simples.

Provavelmente, o arquivo de configuração do Servidor de Automação está no diretório /etc. Vamos até lá e listar todos os arquivos e diretórios.

root > cd /etc

root > ls -l

Se rolarmos um pouco para baixo nesta lista, veremos um arquivo chamado ‘whitelist.rules’. Este é um arquivo para determinar quem pode se conectar a este servidor. Vamos abri-lo.

Como você pode ver, o administrador do sistema nunca configurou o arquivo ‘whitelist.rules’ neste servidor e, como resultado, qualquer pessoa pode se conectar.

Por fim, uma vez que temos privilégios de root, podemos adicionar novos usuários. Antes de sair, posso me adicionar aos usuários, me conceder privilégios de root, me adicionar ao arquivo ‘whitelist.rules’, para que mesmo se o administrador corrigir essa vulnerabilidade, ainda terei uma conta e poderei acessar este servidor.

Espero que seja óbvio que agora que tenho acesso ao sistema com privilégios de root, posso alterar e manipular este sistema da maneira que quiser!

Embora a Fsociety provavelmente tenha usado um servidor diferente dessa vulnerabilidade comercial de prédio inteligente, espero que isso destaque o quão vulneráveis esses sistemas são e o quão vasto é o campo do hacking na IoT!

Leave a Reply

Your email address will not be published. Required fields are marked *