Sistema de Conscientização para Ataques de Phishing de Baixo Custo e Energeticamente Autossustentável
Sistema de Conscientização para Ataques de Phishing de Baixo Custo e Energeticamente Autossustentável
Sistema de Conscientização para Ataques de Phishing de Baixo Custo e Energeticamente Autossustentável
ESCOLA POLITÉCNICA
BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO
SISTEMA DE
CONSCIENTIZAÇÃO PARA
ATAQUES DE PHISHING DE
BAIXO CUSTO E
ENERGETICAMENTE
AUTOSSUSTENTÁVEL
Porto Alegre
2024
DEDICATÓRIA
Dedico este trabalho à minha família, especialmente ao meu avô Sergio, que me
incentivou, mesmo que de maneira inconsciente, a seguir o caminho da computação. Aos
meus amigos, namorada e a todos que me motivaram durante esta jornada.
“Do not pity the dead, Harry. Pity the living.
And above all, those who live without love.”
(Dumbledore, em Harry Potter and the De-
athly Hallows, por J.K. Rowling)
SISTEMA DE CONSCIENTIZAÇÃO PARA ATAQUES DE PHISHING DE
BAIXO CUSTO E ENERGETICAMENTE AUTOSSUSTENTÁVEL
RESUMO
ABSTRACT
The democratization of the Internet made possible that a big part of the population
stays connected to the network. Currently, the cibercriminal attacks numbers are rising
each year. In the opposite direction, population’s knowledge about the subject has little to
no evolution. In this context, the internet becomes a target for cibercriminal actions. This
present work aims to build, integrating hardware and software, an awareness system for
phishing attacks. In order to fulfill this objective, the project uses technologies such as
NodeMCU, Wi-Fi networks, exploits flaws in known protocols, such as the deauthentication
attack, and utilizes reverse engineering techniques for problem solving. The evidentiation of
the feasibility is achieved by constructing a prototype that is low-cost, portable and energy
sufficient. After using the prototype on the field, it demonstrated the success of the proposed
architecture.
A – Amperes
AD – Analógico/Digital
API – Interface de Programação de Aplicações
CI – Circuito Integrado
CSS – Cascading Style Sheets
CTA – Call-to-Action
DNS – Domain Name Server
ELF – Executable and Linkable Format
GPIO – General Purpose Input/Output
IMP – Corrente de máxima potência
IOT – Internet das Coisas
HTML – HyperText Markup Language
IDE – Integrated Development Environment
IP – Internet Protocol
MAC – Media Access Control
MB – MegaByte
MOSFET – Metal Oxide Semiconductor Field Effect Transistor
MUX – Multiplexador
NSA – National Security Agency
OTA – Over-The-Air
POC – Prova de Conceito
RTC – Real-Time Clock
SOC – System On Chip
SWA – Servidor Web Assíncrono
TX – Transmissão de dados, neste caso, por meio de ondas eletromagnéticas (Wi-Fi)
VMP – Tensão de máxima potência
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1 MOTIVAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 ARQUITETURA DO PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1 NODEMCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 ESP-12E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 LITTLEFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 PLATFORMIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 IEEE 802.11 B/G/N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 DEAUTHENTICATION ATTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 PAINEL FOTOVOLTAICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 PORTAL CATIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 VALIDAÇÃO INICIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 POC DE SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 PREPARAÇÃO DO AMBIENTE DE DESENVOLVIMENTO . . . . . . . . . . . . . . . . . 18
3.1.2 SERVIDOR WEB ASSÍNCRONO (SWA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 SERVIDOR DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 INTEGRAÇÃO DO LITTLEFS COM O SERVIDOR WEB . . . . . . . . . . . . . . . . . . 19
3.2 POC DE HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 CONSUMO ENERGÉTICO DO MICROCONTROLADOR . . . . . . . . . . . . . . . . . 20
3.2.2 ESPECIFICAÇÕES DO PAINEL FOTOVOLTAICO NA PRÁTICA . . . . . . . . . . . . 21
4 PROJETO DE SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 DESENVOLVIMENTO WEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 ABERTURA AUTOMÁTICA DO PORTAL CATIVO EM DIFERENTES DISPO-
SITIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 UPLOAD REMOTO - OTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 FUNÇÕES DE EXECUÇÃO PERIÓDICA - TICKERS . . . . . . . . . . . . . . . . . . . . . 28
4.5 CONTROLE DE CONEXÃO POR ENDEREÇO MAC . . . . . . . . . . . . . . . . . . . . . 28
4.5.1 ENGENHARIA REVERSA DE BINÁRIO COM O GHIDRA . . . . . . . . . . . . . . . . . 29
4.6 CONTROLE DE ENERGIA - DEEP SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 PROJETO DE HARDWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1 DIVISORES DE TENSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.1 MULTIPLEXAÇÃO E CONSUMO DOS DIVISORES . . . . . . . . . . . . . . . . . . . . . . 33
5.1.2 COMPENSAÇÃO POR TEMPERATURA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 CIRCUITO DE CARGA DA BATERIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3 REDUZINDO O CONSUMO ENERGÉTICO DO NODEMCU . . . . . . . . . . . . . . . 34
5.4 DIMENSIONAMENTO DOS PAINÉIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6 VALIDAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
APÊNDICE B – Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1. INTRODUÇÃO
1.1 Motivação
1.2 Objetivos
• Usuário é apresentado com a tela de login desta rede social e insere suas informa-
ções.
2. ARQUITETURA DO PROJETO
2.1 NodeMCU
2.1.1 ESP-12E
2.1.2 LittleFS
2.2 PlatformIO
O padrão IEEE 802.11 faz parte do conjunto de normas técnicas IEEE 802 para
redes locais, implementando controle de acesso ao meio e protocolos na camada física que
permitem comunicação por meio de redes sem fio. A família 802.11 oferece uma série de
modulações half-duplex OTA (over-the-air ). Os padrões b/g/n utilizam a faixa de 2,4GHz. O
protocolo possui algumas funcionalidades que são exploradas por atores mal intencionados
para efetuar alguns tipos de ataque.
São usados painéis solares com tensão de operação de 6 volts e corrente de curto-
circuito próximas a 170mA, aproximando-se de 1 watt de potência. Em ambientes externos
os painéis são uma boa solução para o problema de energia em dispositivos IoT [PAG09].
Em tese, um painel é suficiente para alimentar o NodeMCU, visto que seu consumo médio
é de até 140mA, de acordo com o datasheet.
3. VALIDAÇÃO INICIAL
Uma das premissas importantes do projeto é que a rede possa ser acessada si-
multaneamente por mais de um indivíduo. Para isso, é necessário que o servidor web,
utilizado para servir as páginas ao usuário, seja capaz de lidar com mais de uma requisição
ao mesmo tempo. A biblioteca ESPAsyncWebServer atende esses requisitos [No 21]. O có-
digo faz uso do módulo ESPAsyncTCP [No 19], que é justamente o que garante requisições
não bloqueantes, permitindo a entrega de páginas HTML de maneira rápida e eficiente, a
partir do sistema de arquivos do microcontrolador.
No sentido de legitimar o servidor, foi desenvolvida uma pequena aplicação com o
único intuito de servir uma página com o texto "Alô Mundo", enquanto a função de loop do
microcontrolador executava tarefas bloqueantes (delays de alguns segundos). O servidor
respondeu com sucesso às solicitações praticadas, demonstrando a capacidade de atender
requisições e fazer processamentos de forma simultânea.
19
Para a obtenção das medições, foi construído um pequeno circuito com um resistor
shunt (figura 3.3). A tensão fornecida para a placa foi de cinco volts, a partir de uma fonte de
bancada. O consumo de corrente médio ficou perto dos 85mA, como pode ser constatado
pela linha azul da figura 3.4. Os picos de corrente de aproximadamente 140mA ocorrem
quando o microcontrolador efetua alguma operação de TX.
21
1
NODEMCU 30 1
NODEMCU 30
A0 D0 A0 D0
2
G V3 D1
29 2
G V3 D1
29
3 28 3 28
VU D2 VU D2
4 27 4 27
S3 D3 S3 D3
5 26 5 26
S2 D4 S2 D4
6 25 6 25
S1 3V S1 3V
7 24 7 24
SC G SC G
8 23 8 23
S0 D5 S0 D5
9 22 9 22
SK D6 SK D6
10 21 10 21
G D7 G D7
11 20 11 20
3V D8 3V D8
12 19 12 19
EN RX EN RX
13 18 13 18
RST TX RST TX
14 17 14 17
G G G G
15 16 15 16
VIN 3V VIN 3V
NodeMCU V3 Lolin NodeMCU V3 Lolin
(Arduino Magix) (Arduino Magix)
NODEMCU V3 NODEMCU V3
SHUNT
VIN 5V 10
Tabela 3.1 – Aferições de tensão e corrente em período de zênite solar. Ângulo de incidência
aprox. 90º
Corrente de curto-circuito 130 mA
Tensão de circuito aberto 6,4 Volts
4. PROJETO DE SOFTWARE
Visto que um dos objetivos do trabalho é servir páginas HTML dentro da rede
fornecida pelo NodeMCU, o desdobramento do projeto de software inicia a partir desta
etapa. Ela envolve linguagens como HTML, Javascript e CSS. Além de exigir habilidades
de engenharia reversa em scripts "minificados"(técnica utilizada para dificultar a leitura de
código e/ou diminuir o tamanho do mesmo) e ofuscadores de estilo. Elas são necessárias
para poder ajustar o comportamento das páginas, permitindo afinidade junto às páginas
originais. Junto às páginas, também foi desenvolvida uma pequena API de configuração.
pelo autor durante o dia-a-dia. Suas visualizações estão disponíveis na figura 4.2. Ambas
as redes observadas são vulneráveis ao tipo de ataque que este trabalho aborda.
permite aumentar esse tamanho, entretanto a função de upload de código OTA exige um
espaço mínimo na memória de 2M.
Alguns telefones Android possuem uma verificação diferente das outras. E a so-
lução das rotas não é suficiente. A partir disso, define-se o IP de Gateway Padrão da rede
como "8.8.8.8". Isto se dá porque alguns modelos (especialmente os da Samsung) utilizam
o servidor de DNS do Google (8.8.8.8) de maneira fixa no código do sistema operacional.
27
Após essa modificação, todos os telefones que foram testados abriram automaticamente o
portal.
Ticker Soft-RTC
Ticker de desconexão
Visto que o chip ESP-12E tem uma limitação de clientes conectados (devido à me-
mória RAM), existe a necessidade de manter um controle de usuários ativos na rede. Uma
vez que um internauta complete o fluxo de autenticação e seja redirecionado para a página
final, ele deve ser desconectado automaticamente da rede em um tempo predeterminado.
Isto se deve ao fato da limitação de conexões simultâneas, mencionado anteriormente. Por-
tanto, com este intuito, o endereço MAC do cliente "autenticado"é armazenado no momento
em que ele efetua o login, juntamente com a hora do evento. Após um minuto o usuário
é desconectado, usando o artifício do deauthentication frame, mencionado no capítulo 1
deste trabalho.
O SDK da Espressif (fabricante dos chips ESP) costumava permitir o envio de
frames ethernet manipulados, a partir da função "wifi_send_pkt_freedom", entretanto, após
a constatação do mau uso desta função [Spa], a empresa resolveu removê-la do SDK. Com
isso, ataques de desautenticação não são possíveis com as versões mais recentes do soft-
ware. Existem dois contornos para esta situação: usa-se uma versão antiga do SDK, com
bugs conhecidos e menos funcionalidades, ou executa-se engenharia reversa no firmware
a nível de código de máquina Assembly para identificar o que foi modificado da versão an-
29
tiga até a versão nova. Visto que algumas funcionalidades facilitam o desenvolvimento do
software, a segunda opção foi escolhida.
Após uma longa investigação, algumas modificações para evitar a verificação dos
primeiros bytes do deauth frame foram feitas diretamente no binário, em hexadecimal. Pos-
teriormente, o arquivo foi gravado na memória do microcontrolador e a função de envio vol-
tou à funcionalidade dos SDKs antigos. O grande problema é que toda vez que o firmware
for compilado, o binário deve ser modificado. Isto é maçante e contraproducente. Pes-
quisando e examinando mais a fundo as funções definidas no ELF, encontra-se a rotina
"wifi_softap_deauth"(ver figura 4.9). Ela não está exposta em nenhuma documentação do
software em C/C++, seja ela da Arduino ou da Espressif, porém, em uma busca no firmware
escrito em LUA, existe uma função "wifi.ap.deauth()", que por sua vez, pode ser encon-
trada no seu respectivo repositório [Noda], onde, finalmente, encontra-se o uso da função
"wifi_softap_deauth".
30
de descarte, e, portanto, já não têm a mesma capacidade de carga. Portanto, este limite
deve prover uma longevidade maior às células.
Ademais, o microcontrolador pode ser desligado em horários específicos, também
configuráveis a partir do cabeçalho de configurações. Isso permite que o baixo consumo
seja garantido em horários de baixa utilização, como durante a madrugada. O período
padrão de sono profundo é entre as 20h e as 08h.
32
5. PROJETO DE HARDWARE
Foram projetados dois divisores: um para a tensão da bateria e outro para a tensão
dos painéis fotovoltaicos. As tensões instantâneas máximas, aferidas por um multímetro
podem ser observadas na tabela 5.1.
Vin
R11
10k
GND
na entrada do conversor A/D, sofrem alterações significativas na sua tensão direta, con-
forme a variação de temperatura. Pensando em mitigar esta situação, o sensor LM35 foi
adicionado ao projeto. Este CI opera com uma saída linear de 10mV por grau Celsius.
Levando estas informações em consideração, o próximo problema a ser mitigado
é a queda de tensão em decorrência do diodo na saída do LM35. Neste caso, o microcon-
trolador só começaria a detectar a temperatura a partir dos 70º Celsius, no mínimo. Desta
forma, dois diodos foram adicionados no pino GND do CI. Isto cria um ground virtual, fa-
zendo com que a saída do sensor tenha um offset de aproximadamente 1,2 volts, o que já
é suficiente para o conversor A/D. Após a adição do sensor, foi implementado em software
uma correção linear para a leitura de tensões, baseada na temperatura atual dos compo-
nentes. O esquemático completo pode ser encontrado nos anexos, ao fim deste trabalho.
Vout (5V)
camente, reguladores lineares são ineficientes, pois desperdiçam energia através do calor,
por meio do efeito Joule. Infelizmente, não foi possível realizar a troca do regulador por
um conversor DC-DC (mais eficiente), devido ao curto tempo para a execução do projeto.
Ademais, as alterações feitas na placa podem ser vistas na figura 5.5.
Observa-se na curva 5.6 que tem-se aproximadamente oito horas úteis de inci-
dência solar. A grande variação perto das 09h e 17h, dá-se pela incidência de sombra
projetada por objetos próximos ao painel. A equação da figura 5.8 ilustra o consumo diário,
onde Im é o valor médio de corrente utilizado pelo microcontrolador, Imds é o valor médio
de corrente em sono profundo, e t é o tempo em que o microcontrolador fica com RF ligado.
Já a equação da figura 5.9 ilustra o cálculo de superávit/déficit energético diário, onde ts é
o tempo útil de incidência solar. Assumindo condições pessimistas para os cálculos, infe-
rimos que há somente seis horas úteis de incidência solar, e 200mA de corrente entrando
na bateria. Da mesma forma, assume-se o período de uso padrão 08h-20h, resultando em
12h de uso. Por conseguinte, ao aplicar estes valores nas equações, temos um superávit
energético diário de 108mA.
6. VALIDAÇÃO
7. CONCLUSÃO
REFERÊNCIAS BIBLIOGRÁFICAS
[AI-11] AI-Thinker. “ESP-12E WiFi Module”, 2011, version 1.0, Capturado em: https:
//docs.ai-thinker.com/_media/esp8266/docs/esp12e_datasheet.pdf.
[Khi20] Khiralla, F. A. M. “Statistics of cybercrime from 2016 to the first half of 2020”,
IJCSN-International Journal of Computer Science and Network, vol. 9–5, 2020.
[MJVB19] Mihelič, A.; Jevšček, M.; Vrhovec, S.; Bernik, I. “Testing the human backdoor:
Organizational response to a phishing campaign”, JUCS-Journal of Universal
Computer Science, vol. 25, 2019, pp. 1458.
[Nan19] Nanjing Qinheng Microelectronics Co. “USB CH340G”, 2019, version: 2B,
Capturado em: http://j5d2v7d7.stackpathcdn.com/wp-content/uploads/2016/11/
CH340.pdf.
[Noda] NodeMCU. “Lua based interactive firmware for esp8266, esp8285 and esp32”.
Capturado em: https://github.com/nodemcu/nodemcu-firmware, Nov 2021.
42
[PAG09] Penella, M. T.; Albesa, J.; Gasulla, M. “Powering wireless sensor nodes:
Primary batteries versus energy harvesting”. In: 2009 IEEE instrumentation and
measurement technology conference, 2009, pp. 1625–1630.
[PLO20] Piazzon, L.; Lima, B.; Oyadomari, W. “Internet e participação cultural: o cenário
brasileiro segundo a pesquisa tic domicílios”, Revista Internet & Sociedade,
vol. 1–1, 2020, pp. 38.
[Spa] SpaceKuhnTech. “Affordable wifi hacking platform for testing and learning”.
Capturado em: https://github.com/SpacehuhnTech/esp8266_deauther, Nov
2021.
[SYG10] Song, Y.; Yang, C.; Gu, G. “Who is peeping at your passwords at starbucks?—to
catch an evil twin access point”. In: 2010 IEEE/IFIP International Conference on
Dependable Systems & Networks (DSN), 2010, pp. 323–332.
[WLEM19] Wahyudi, E.; Luthfi, E. T.; Efendi, M. M.; Mataram, S. “Wireless penetration
testing method to analyze wpa2-psk system security and captive portal”, Jurnal
Explore STMIK Mataram-Volume, vol. 9–1, 2019.
43
APÊNDICE B – SHIELD