O perigo da utilização do módulo Wifi ESP8266 na criação de uma backdoor

Tempest Security
Sep 2 · 5 min read
Image for post
Image for post

“Desde 2010, o USB Rubber Ducky é o favorito entre hackers, criminosos e profissionais de TI”. É assim que a empresa apresenta seu produto, à venda online por quase $50. A promessa do produto é também tentadora: “imagine que você poderia ir até um computador, conectar uma unidade USB aparentemente inocente e instalar uma backdoor, exfiltrar documentos, roubar senhas ou várias tarefas difíceis”. Instalar uma backdoor no computador da vítima sem chamar atenção, e a partir dele roubar dados, de forma simples, é a proposta maliciosa do produto. Entretanto, sobretudo atualmente, com o dólar nas alturas, o preço do Rubber Ducky pode não ser tão atrativo quanto suas facilidades.

Em agosto de 2016, uma postagem sobre o ESPUSB no site electronics-lab chamou a atenção para uma alternativa bem mais barata, e igualmente perigosa. No projeto, o perfil CNLohr implementa a pilha do protocolo USB para o ESP8266, possibilitando a utilização do ESP8266 tal como um mouse ou teclado. Tornando assim possível, utilizar o ESPUSB na criação de um Rubber Ducky WiFi de baixo custo, já que o modelo ESP12F costuma custar entre $1,00 e $2,00. Ou seja, além de bem mais barato, o dispositivo criado com o módulo WiFi ESP8266, pode ficar camuflado dentro de um mouse, por exemplo. Ressaltamos com isso, a importância para o cuidado com dispositivos inseguros e, principalmente desconhecidos; bem como com a entrada de pessoal não autorizado, ou visitantes, com acesso, mesmo que rápido e superficial, às máquinas da empresa. Instruir os funcionários para os perigos de dispositivos como estes, é essencial para que as medidas protetivas façam parte da rotina de trabalho dos colaboradores, estando todos atentos às possíveis falhas de segurança.

Apesar da simples execução, algumas dificuldades foram encontradas, tanto no momento de fazer o update do firmware, quanto na utilização do ESP8266 como USB. Sendo assim, detalharemos a seguir, os passos necessários para realizar o upload do firmware corretamente; já que o ESP8266, por padrão, não vem pronto para a realização do upload de firmware, como podemos observar a partir da imagem que ilustra o esquema elétrico da placa, a seguir:

Image for post
Image for post

Para fazer o upload do firmware foi utilizado um Arduino UNO, necessário para a comunicação serial; já a presença do CHIP Atmega328P não é necessária. Em seguida, é preciso ligar 5 resistores de 10k e fazer uma combinação de jumpers a fim de que se ative o modo de programação. No momento de realizar o upload do firmware, deve-se fazer o seguinte procedimento:

1 — Manter o botão de upload pressionado;

2 — Apertar e soltar o botão de reset;

3 — Iniciar o processo de upload do firmware descrito no Github do Espusb

4 — Após a conclusão do upload do firmware, soltar o botão de upload.

Lista de componentes utilizados:

5 (cinco) Resistores de 10k;
2 (dois)botões.

A imagem abaixo ilustra a ligação dos pinos no momento do upload:

Image for post
Image for post
Image for post
Image for post

Uma vez que o upload esteja concluído, é possível utilizar o ESPUSB com alguns componentes adicionais. O ESP8266 foi projetado para ser ligado em 3,3v, sendo que a porta USB utiliza 5v. Nesse caso, faz-se necessário utilizar dois diodos zener 1N4748, ligados em série, como reguladores de tensão.

Lista de componentes utilizados:

4 (quatro) Resistores de 10k;
1 (um) Resistor de 1k;
2 (dois) Diodos 1N4748.

As imagens a seguir ilustram o tamanho do ESP8266 após a soldagem dos componentes:

Image for post
Image for post
Image for post
Image for post

Um fato interessante é que não houve a necessidade de modificar o firmware original do Espusb, tendo em vista que toda a modificação foi realizada na interface WEB, o que facilitaria a execução de ataques utilizando o dispositivo.

Para executar os ataques, foi adotado o Ducky Script, que é uma linguagem de script própria para ser utilizada no Rubber Ducky. Os scripts podem ser modificados em qualquer editor de texto simples. Para manter a compatibilidade e facilitar a utilização, foi criado um interpretador de Ducky Script em javascript que pode ser utilizado, por exemplo, no navegador do celular para enviar a sequência de comandos para o Espusb plugado à máquina da vítima. O perigo dessa abordagem é que se pode deixar o Espusb/ESP8266 na máquina da vítima, enquanto se espera o momento ideal para fazer o ataque.

O ESP8266 é bastante pequeno e pode facilmente ser adicionado disfarçadamente em outros dispositivos USB comumente utilizados, como mouse e teclado. A imagem abaixo ilustra o ESP8266 dentro de um mouse.

Image for post
Image for post

Para comprovar o ataque, a próxima imagem ilustra a interface web contendo o Ducky Script responsável por executar uma shell reversa na máquina da vítima:

Image for post
Image for post

A seguir, a execução na máquina da vítima:

Image for post
Image for post

Para concluir, vejamos a execução completa, a seguir:

Image for post
Image for post

O código fonte está disponível no endereço https://github.com/tempestsecurity/Wifi-Ducky-ESPUSB

Referências

https://shop.hak5.org/products/usb-rubber-ducky-deluxe

https://www.electronics-lab.com/espusb-usb-software-stack-esp8266/

https://github.com/cnlohr/espusb

https://github.com/cnlohr/espusb/wiki/Getting-Started-Guide

https://www.clubedohardware.com.br/forums/topic/1206440-tutorial-esp8266-primeiros-passos-esp12-ide-ardu%C3%ADno/

Tempest Security

Written by

Empresa líder no mercado brasileiro de segurança da informação e combate a fraudes digitais, atuando desde o ano 2000.

SideChannel-BR

Notícias e análises sobre segurança da informação produzidas pela equipe e por amigos da Tempest Security Intelligence

Tempest Security

Written by

Empresa líder no mercado brasileiro de segurança da informação e combate a fraudes digitais, atuando desde o ano 2000.

SideChannel-BR

Notícias e análises sobre segurança da informação produzidas pela equipe e por amigos da Tempest Security Intelligence

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store