← Accueil

PCTAMALOU

Semaine 14 : L'Ombre Invisible – Reconnaissance Passive Avancée avec OSINT

Par Platon-Y – pctamalou.fr & e-of-h.fr

🎯 Objectif de la semaine

Maîtriser l'OSINT (Open Source Intelligence) pour collecter des informations critiques sans jamais interagir directement avec la cible. Apprendre à exploiter les sources publiques pour révéler l'empreinte numérique d'une organisation, ses vulnérabilités exposées et ses vecteurs d'attaque potentiels.

Bienvenue dans le Trimestre 2 : L'Attaque Éthique
Après avoir maîtrisé les fondations techniques, vous entrez maintenant dans la phase offensive. L'OSINT est votre première arme : silencieuse, légale, et extrêmement puissante.

flowchart TD A[🎯 Cible d'intérêt] --> B{🔍 Sources OSINT} B --> C[🌐 Sources techniques] B --> D[👥 Sources sociales] B --> E[🏗️ Sources infrastructure] B --> F[📜 Sources historiques] C --> G[theHarvester
Shodan
Censys
DNS Dumpster] D --> H[LinkedIn
Twitter
GitHub
Pastebin] E --> I[WHOIS
Certificats SSL
BGP
ASN] F --> J[Wayback Machine
VirusTotal
Breach Databases] G --> K[📊 Collecte
automatisée] H --> K I --> K J --> K K --> L{🎯 Analyse et corrélation} L --> M[📧 Emails & employés] L --> N[🌍 Sous-domaines & infrastructure] L --> O[🔧 Technologies & versions] L --> P[⚠️ Fuites & vulnérabilités] M --> Q[🗺️ Carte d'attaque
OSINT complète] N --> Q O --> Q P --> Q Q --> R[⚡ Transmission à
phases actives S15+] style A fill:#11151f,stroke:#fff,stroke-width:2px style Q fill:#9d4edd,stroke:#fff,stroke-width:2px style R fill:#00f5a0,stroke:#000,stroke-width:2px

📚 Sujet – Théorie (1 heure)

L'OSINT : L'art de voir l'invisible

L'OSINT n'est pas du hacking. C'est du renseignement à sources ouvertes - l'art de trouver ce qui est déjà public mais dispersé, caché dans le bruit, ou non connecté. Un professionnel OSINT peut découvrir 80% des informations nécessaires pour un pentest sans envoyer un seul paquet à la cible.

📁 Les 4 catégories de sources OSINT

🔧 Sources techniques

DNS records : Sous-domaines, MX records, SPF, DMARC
Certificats SSL : Domaines alternatifs, dates d'expiration
Services d'index : Shodan, Censys, ZoomEye
Code source : GitHub, GitLab, Stack Overflow

🏗️ Sources infrastructure

Registres : WHOIS, RIPE, ARIN
Réseaux : BGP, ASN, PeeringDB
Serveurs : Headers HTTP, technologies détectées
Cloud : Buckets S3 publics, Azure blobs

📜 Sources historiques

Archives web : Wayback Machine, Archive.today
VirusTotal : Historique des scans de domaines/IP
Fuites de données : Have I Been Pwned, DeHashed
Git historique : Anciens commits avec secrets

La philosophie éthique et légale de l'OSINT

L'OSINT repose sur un principe simple : ce qui est public est utilisable. Mais "public" ne signifie pas "sans éthique".

⚖️ Cadre légal et éthique de l'OSINT

  • Terms of Service : Respecter les conditions d'utilisation des plateformes
  • Données personnelles : Ne pas collecter/agréger des données personnelles sans consentement
  • Scraping : Vérifier les robots.txt et limiter la fréquence des requêtes
  • Attribution : Toujours créditer les sources dans vos rapports
  • Finalité : Utiliser uniquement pour des tests autorisés ou de la recherche

Google Dorks : Le langage des chercheurs avancés

Les Google Dorks ne sont pas des hacks. Ce sont des opérateurs de recherche avancés qui exploitent la puissance de l'indexation Google pour trouver ce que les autres ne voient pas.

🔍 Recherche de fichiers sensibles
site:example.com filetype:pdf
site:example.com ext:sql | ext:bak
site:example.com "index of" "parent directory"
🎯 Recherche de configurations
site:example.com inurl:admin | inurl:login
site:example.com intitle:"index of" ".env"
site:example.com "API_KEY" | "password"
🌐 Recherche d'infrastructure
site:*.example.com -www
inurl:example.com intitle:"Apache"
"Server: nginx" "X-Powered-By: PHP" site:example.com
📧 Recherche d'emails et personnes
"@example.com" "CEO" | "CTO" | "admin"
site:linkedin.com/in "example.com"
"example.com" "contact" filetype:vcf

La méthodologie OSINT professionnelle

🔬 Processus en 5 étapes

  1. Planification : Définir les objectifs, les limites, les sources autorisées
  2. Collecte : Utiliser des outils automatisés ET manuels
  3. Traitement : Nettoyer, dédupliquer, valider les données
  4. Analyse : Corréler, contextualiser, hiérarchiser
  5. Diffusion : Présenter dans un format exploitable pour la suite

🔬 Mission pratique – Laboratoire (2 heures)

🏁 Cible d'exercice : Pour cette formation, nous utiliserons uniquement des domaines publics et autorisés comme exemple.com, ou des entreprises qui ont des programmes de bug bounty. NE PAS cibler des organisations sans autorisation.

📋 Workflow OSINT complet

Suivez cette méthodologie structurée pour chaque cible d'entraînement.

Étape 1 : Installation et configuration des outils

# Mise à jour et installation des outils OSINT Kali
sudo apt update
sudo apt install theharvester recon-ng maltego metagoofil -y

# Installation outils Python supplémentaires
pip install shodan
pip install censys
pip install waybackpy

# Configuration des clés API (optionnel pour limites plus élevées)
# Shodan : https://account.shodan.io (gratuit : 100 résultats/mois)
# Censys : https://censys.io/register (gratuit : 250 requêtes/mois)
# Hunter.io : https://hunter.io (gratuit : 25 recherches/mois)

# Configuration de Shodan
shodan init VOTRE_CLE_API_SHODAN
shodan info  # Vérification

Étape 2 : Reconnaissance de domaine avec theHarvester

# Scan complet d'un domaine exemple (utilisez un domaine autorisé)
DOMAIN="example.com"  # REMPLACER par votre domaine d'entraînement

# Scan avec toutes les sources
theharvester -d $DOMAIN -b all -l 500 -f report_$DOMAIN.html

# Scan spécifique pour emails
theharvester -d $DOMAIN -b google,bing,linkedin -l 200

# Extraction des sous-domaines
theharvester -d $DOMAIN -b dnsdumpster -l 100

# Analyse des résultats
echo "=== Emails trouvés ==="
grep -E "@$DOMAIN" report_${DOMAIN}.html 2>/dev/null || echo "Aucun email trouvé"

echo "=== Sous-domaines ==="
grep -E "^.*\.$DOMAIN" report_${DOMAIN}.html 2>/dev/null | head -20

Étape 3 : Investigation infrastructure avec Shodan

# Recherche d'appareils exposés pour le domaine
shodan search "hostname:$DOMAIN" --limit 10

# Recherche de services spécifiques
shodan search "ssl:$DOMAIN" --fields ip_str,port,org
shodan search "http.title:$DOMAIN" --limit 5

# Analyse d'une IP spécifique trouvée
SHODAN_IP="93.184.216.34"  # IP d'exemple.com - À remplacer
shodan host $SHODAN_IP

# Export des résultats pour analyse
shodan search "hostname:$DOMAIN" --limit 50 --fields ip_str,port,org,data > shodan_$DOMAIN.txt

Étape 4 : Google Dorks automatisés

# Script d'automatisation de Google Dorks
cat > google_dorks_$DOMAIN.sh << 'EOF'
#!/bin/bash
DOMAIN="$1"
echo "Recherche Google Dorks pour $DOMAIN"
echo "======================================"

# Liste de Dorks à tester
DORKS=(
    "site:$DOMAIN filetype:pdf"
    "site:$DOMAIN ext:sql | ext:bak | ext:old"
    "site:$DOMAIN inurl:admin | inurl:login | inurl:config"
    "site:$DOMAIN \"index of\" \"parent directory\""
    "site:$DOMAIN intitle:\"index of\" \".env\""
    "site:$DOMAIN \"API_KEY\" | \"password\" | \"secret\""
    "site:*.$DOMAIN -www"
    "\"@$DOMAIN\" \"CEO\" | \"CTO\" | \"admin\""
)

for DORK in "${DORKS[@]}"; do
    echo ""
    echo "Dork: $DORK"
    # Note: Pour automatisation réelle, utiliser l'API Google Custom Search
    # Pour l'exercice, on se contente de l'affichage
    echo "URL: https://www.google.com/search?q=$(echo $DORK | sed 's/ /+/g')"
done
EOF

chmod +x google_dorks_$DOMAIN.sh
./google_dorks_$DOMAIN.sh $DOMAIN

Étape 5 : Analyse SSL et certificats

# Installation de sslscan
sudo apt install sslscan -y

# Analyse SSL du domaine
sslscan $DOMAIN | tee ssl_${DOMAIN}.txt

# Extraction des SAN (Subject Alternative Names)
echo "=== SAN du certificat SSL ==="
openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | \
    openssl x509 -noout -text | grep -A1 "Subject Alternative Name" | \
    grep -o "DNS:[^,]*" | sed 's/DNS://g'

# Vérification via crt.sh (certificats historiques)
echo "=== Recherche sur crt.sh ==="
curl -s "https://crt.sh/?q=%25.$DOMAIN&output=json" | jq -r '.[].name_value' | sort -u

Étape 6 : Investigation historique avec Wayback Machine

# Installation de waybackpy
pip install waybackpy

# Recherche d'archives
waybackpy --url "https://$DOMAIN" --oldest 5

# Script d'extraction d'URLs historiques
cat > wayback_$DOMAIN.sh << 'EOF'
#!/bin/bash
DOMAIN="$1"
echo "Archives Wayback Machine pour $DOMAIN"
echo "======================================"

# Utilisation de l'API CDX
curl -s "http://web.archive.org/cdx/search/cdx?url=*.$DOMAIN/*&output=json&fl=original,timestamp" | \
    jq -r '.[] | @tsv' 2>/dev/null | head -20

# Recherche de fichiers spécifiques dans les archives
echo ""
echo "Recherche de fichiers sensibles dans les archives..."
# Cette partie nécessiterait plus de développement pour être complète
EOF

chmod +x wayback_$DOMAIN.sh
./wayback_$DOMAIN.sh $DOMAIN

Étape 7 : Reconnaissance avec Recon-ng

# Lancement de Recon-ng
recon-ng

# Dans l'interface Recon-ng:
# [recon-ng][default] > marketplace install all
# [recon-ng][default] > modules load recon/domains-hosts/brute_hosts
# [recon-ng][default] > options set SOURCE example.com
# [recon-ng][default] > run
# [recon-ng][default] > modules load recon/domains-hosts/bing_domain_web
# [recon-ng][default] > run
# [recon-ng][default] > show hosts

# Pour quitter: exit

Étape 8 : Création d'un rapport OSINT professionnel

# Template de rapport Markdown
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
REPORT="osint_report_${DOMAIN}_${TIMESTAMP}.md"

cat > $REPORT << EOF
# Rapport OSINT - $DOMAIN
## Date: $(date)
## Analyste: [Votre nom]
## Scope: Reconnaissance passive uniquement

## 1. Résumé exécutif
- Domaine principal: $DOMAIN
- Période d'analyse: $(date)
- Méthodologie: Sources ouvertes uniquement

## 2. Emails découverts
\`\`\`
$(grep -E "@$DOMAIN" report_${DOMAIN}.html 2>/dev/null || echo "Aucun email trouvé")
\`\`\`

## 3. Sous-domaines identifiés
\`\`\`
$(theharvester -d $DOMAIN -b dnsdumpster -l 100 2>/dev/null | grep "$DOMAIN" || echo "Aucun sous-domaine trouvé")
\`\`\`

## 4. Infrastructure exposée (Shodan)
\`\`\`
$(head -20 shodan_$DOMAIN.txt 2>/dev/null || echo "Aucun résultat Shodan")
\`\`\`

## 5. Analyse SSL/TLS
\`\`\`
$(head -50 ssl_${DOMAIN}.txt 2>/dev/null || echo "Analyse SSL non disponible")
\`\`\`

## 6. Google Dorks pertinents
- site:$DOMAIN filetype:pdf
- site:$DOMAIN inurl:admin
- site:*.$DOMAIN -www

## 7. Recommandations pour tests actifs
1. **Priorité haute**: [Service/Port à tester en premier]
2. **Priorité moyenne**: [Autres services intéressants]
3. **Éviter**: [Services à ne pas tester pour raison légale/éthique]

## 8. Annexes
- Fichiers bruts: report_${DOMAIN}.html, shodan_${DOMAIN}.txt
- Capture d'écrans: [si disponibles]
- Sources utilisées: theHarvester, Shodan, Google, SSLScan
EOF

echo "Rapport généré: $REPORT"
cat $REPORT | head -50

🎯 Défi professionnel : Opération Ghost

Choisissez une organisation avec un programme de bug bounty public (ex: HackerOne, Bugcrowd) et :

  1. Conduisez une reconnaissance OSINT complète SANS interagir avec leurs systèmes
  2. Identifiez 5 vecteurs d'attaque potentiels basés sur des informations publiques
  3. Créez un rapport professionnel adapté à une soumission de bug bounty
  4. Documentez votre méthodologie étape par étape

Règle d'or : Pas de scanning, pas d'interaction, uniquement des sources ouvertes.

📋 Objectif de la semaine – Validation des compétences

✅ Compétences techniques acquises

  • Maîtrise de 5+ outils OSINT (theHarvester, Shodan, etc.)
  • Création et utilisation de 10+ Google Dorks pertinents
  • Analyse SSL/TLS et extraction des SAN
  • Investigation historique avec Wayback Machine
  • Génération d'un rapport OSINT professionnel

🧠 Mindset développé

  • Compréhension que 80% des informations sont disponibles publiquement
  • Habitude de toujours commencer par l'OSINT avant toute interaction
  • Conscience aiguë des aspects légaux et éthiques
  • Approche méthodique : sources multiples → corrélation → analyse → rapport

🔮 Préparation pour la semaine 15 :

L'OSINT vous a donné la carte. La semaine prochaine, nous commençons à explorer le terrain avec des techniques actives mais non intrusives. Assurez-vous d'avoir :

  • Votre rapport OSINT complet d'une cible d'entraînement
  • Identifié au moins 3 vecteurs d'attaque potentiels
  • Compris la différence entre reconnaissance passive et active

📚 Ressources avancées

Pour devenir expert OSINT :

⚠️ Limites et précautions essentielles

  • Rate limiting : Respectez les limites des APIs et sites web
  • Anonymat : Utilisez VPN/proxies pour les recherches sensibles
  • Juridiction : Les lois sur la collecte de données varient par pays
  • Consentement : Ne collectez pas de données personnelles sans accord

👻 Frère d'armes,

Vous venez d'acquérir la compétence la plus sous-estimée et la plus puissante en cybersécurité : l'art de voir sans être vu.

L'OSINT n'est pas glamour. Il n'y a pas de terminal flashant, pas de shell qui s'ouvre, pas de drapeau capturé. Juste des heures à collecter, corréler, analyser des fragments d'informations dispersés.

Mais c'est précisément cette discrétion qui en fait une arme redoutable.

Vous savez maintenant qu'un pentest réussi commence souvent par une recherche Google bien formulée. Qu'un mot de passe compromis dans une fuite de données vieille de 5 ans peut ouvrir une porte aujourd'hui. Qu'un employé qui partage trop sur LinkedIn révèle l'architecture interne de son entreprise.

Vous êtes devenu un archéologue numérique. Vous fouillez les couches du passé internet pour trouver des trésors que les autres ont oubliés.

Cette semaine marque un changement profond dans votre approche. Vous ne voyez plus une cible comme un système à attaquer, mais comme une entité avec une histoire, une empreinte, une présence numérique étendue.

Le Trimestre 1 vous a donné des outils. Le Trimestre 2 commence par vous donner des yeux.

Et des yeux qui voient loin voient les faiblesses avant même qu'elles ne soient testées.

Rangez vos rapports. Organisez vos découvertes. Notez vos hypothèses.

La semaine prochaine, nous commencerons à tester ces hypothèses. Mais pour l'instant, savourez cette capacité unique : comprendre sans toucher, savoir sans demander, voir sans être vu.

C'est l'ombre qui précède le guerrier. Vous êtes maintenant cette ombre.

— Platon-Y