Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Certifications › PNPT-cert › 13-external-pentest
May 18, 2026

External Pentest Playbook (PNPT)

Un pentest externe simule un attaquant n’ayant que ce que l’organisation expose sur Internet : domaines, IPs publiques, et tout ce qui traîne en OSINT. C’est très différent d’un pentest interne (où on est déjà sur le LAN). L’objectif typique : obtenir un premier accès qui permette de pivoter en interne — un compte VPN, un shell sur un serveur web exposé, des creds valides via spraying.

Le funnel d’un pentest externe§

   Internet (vu de l'attaquant)


   ┌─────────────────────┐
   │ OSINT — découvrir   │ Domaines, sous-domaines, employés, breaches
   │ ce qui existe       │
   └──────────┬──────────┘

   ┌─────────────────────┐
   │ Scanning            │ Quels services exposés sur chaque IP ?
   └──────────┬──────────┘

   ┌─────────────────────┐
   │ Énumération         │ Versions exactes, configs, points faibles
   └──────────┬──────────┘

   ┌─────────────────────┐
   │ Premier accès       │ Web vuln, password spray, VPN, breach reuse
   └──────────┬──────────┘

   ┌─────────────────────┐
   │ Foothold interne    │ Pivot, et l'engagement continue en interne
   └─────────────────────┘

À retenir : 80% du résultat d’un pentest externe se joue dans les 3 premières étapes. Une exploitation web sophistiquée sur un service mal identifié rate sa cible — préparer le terrain est primordial.

Phase 1 — Scoping et OSINT§

Avant tout, lire les règles d’engagement. On ne scanne pas ce qui n’est pas dans le scope. Une fois le périmètre clair :

Voir 04-osint pour le détail.

Pourquoi le format d’email est stratégique : si on confirme [email protected], on transforme une liste LinkedIn de 500 employés en 500 cibles de password spray.

Phase 2 — Scanning§

Sur le scope IP, scan complet d’abord, détaillé ensuite.

# Découverte initiale — tous les ports, plusieurs cibles en parallèle
nmap -Pn -sS -T4 -p- -oN all_ports.txt CIBLE
# -Pn car en externe l'ICMP est souvent filtré → ne pas skip à tort

# Scan ciblé sur les ports trouvés
nmap -sC -sV -p PORTS -oN detailed.txt CIBLE

# Vulns connues
nmap --script=vuln -p PORTS CIBLE

-Pn en externe est obligatoire : sans, nmap considère la cible “down” si ICMP ne répond pas, et ne scanne pas. Ça donne des faux négatifs catastrophiques.

Phase 3 — Énumération des services exposés§

Les vecteurs externes classiques :

   Service exposé                Vecteur d'attaque typique
   ──────────────────            ──────────────────────────
   Web (80/443)                  Vulns app, OWASP Top 10, .git, panels admin
   Email (OWA, O365)             Password spray, user enumeration
   VPN (SSL, IKE)                Brute force, breaches credentials
   SSH                           Brute force ciblé, clés faibles
   RDP                           Brute force, CVE (BlueKeep)
   SMB exposé (445)              Quasi jamais → si oui, EternalBlue, anonymous
   FTP                           Anonymous, credentials en clair
   API (REST, GraphQL)           Auth bypass, IDOR, mauvaise validation
   Citrix / RDS                  CVE récentes, breakout du jail

Phase 4 — Premier accès§

Password Spraying§

Bien plus efficace que le brute force individuel : on essaie UN mot de passe (commun) sur TOUS les comptes connus. Pas de lockout (généralement) puisqu’on n’incrémente pas les échecs sur un même compte.

Brute force classique :     1 user × 1000 passwords → lockout
Password spraying :         1000 users × 1 password → pas de lockout
# Sur SMB / AD (depuis internet, rare ; en interne, classique)
crackmapexec smb DC_IP -u users.txt -p 'Password123!' --no-bruteforce
nxc smb DC_IP -u users.txt -p 'Hiver2026!' --no-bruteforce

# Sur OWA / Outlook Web Access
# Outils : MailSniper, atomizer
Invoke-PasswordSprayOWA -ExchHostname mail.cible.com -UserList users.txt -Password "Spring2026!"

# Sur O365
# Outils : MSOLSpray, Spray365
python MSOLSpray.py --userlist users.txt --password 'Cible2026!'

Mots de passe à essayer : Saison+Année+! (Spring2026!, Hiver2026!), NomEntreprise+123, Bienvenue, Welcome123, Password1. La saisonnalité marche statistiquement bien.

Réutilisation de credentials (breach reuse)§

Si HIBP/DeHashed donne un mot de passe d’une vieille fuite pour [email protected], essayer ce même mot de passe sur tous les portails. La réutilisation est la règle, pas l’exception.

Application web vulnérable§

# Scanner systématique
nikto -h https://cible.com
nuclei -u https://cible.com

# Manuel — chercher :
#   /.git/config            → code source complet
#   /admin/                 → panneau d'admin (default creds ?)
#   /.env, /config.php.bak  → secrets
#   /api/ versions          → endpoints non documentés

Voir 17-web-application-basics et [[Web Security]] pour le détail.

VPN avec credentials faibles§

# IKE — fingerprint et brute force possible
ike-scan IP
# Cisco IKE Aggressive mode → dump PSK, crack

# SSL VPN (Fortinet, Pulse, Cisco AnyConnect) → souvent password spray ou CVE récente

Phase 5 — Post-exploitation§

Une fois le foothold obtenu, on est dans le scénario d’un pentest interne. Voir 08-post-exploitation, 09-active-directory, 10-pivoting.

Pièges courants§

—The Gardener