| name | osint-automation-frameworks |
| description | Frameworks d'automatisation OSINT — SpiderFoot, BBoT, Recon-ng, Maltego, Little Brother, outils de pipeline et intégration. |
| category | cybersecurite |
| author | EVA |
| version | 1 |
| tags | ["osint","automation","framework","spiderfoot","bbot","recon-ng","maltego","pipeline"] |
OSINT Automation Frameworks
🎯 Description
Frameworks et outils d'automatisation OSINT pour scaler les investigations : orchestration multi-modules, pipelines de collecte automatisée, analyse corrélée, rapports structurés et intégration avec d'autres outils de cybersécurité.
📋 Frameworks Principaux
🕷️ SpiderFoot — Le plus complet
| Caractéristique | Détail |
|---|
| Modules | 200+ modules de collecte OSINT |
| Interfaces | CLI + Serveur Web |
| Format | Scan → Graphes → Rapports CSV/JSON/XLSX |
| License | GPL v2 (communauté) / Commerciale |
| Installation | pip, Docker, binaire |
git clone https://github.com/smicallef/spiderfoot
cd spiderfoot
pip install -r requirements.txt
python3 sf.py -l 127.0.0.1:5001
python3 sf.py -m "sfp__stor_stdout" -s "example.com" -o csv > results.csv
python3 sf.py -s "example.com" -t "DOMAIN_NAME" \
-m "sfp_dnsresolve,sfp_whois,sfp_crtsh,sfp_shodan" \
-o json
python3 sf.py -s "example.com" -t "DOMAIN_NAME" -o xlsx > report.xlsx
Modules clés SpiderFoot :
sfp_dnsresolve → Résolution DNS
sfp_whois → WHOIS
sfp_crtsh → Certificats SSL
sfp_shodan → Shodan
sfp_haveibeenpwned → HIBP
sfp_socialmedia → Réseaux sociaux
sfp_emailformat → Format emails
sfp_socialnetwork → Profils sociaux
sfp_webanalytics → Analytics
sfp_webrecon → Reconnaissance web
sfp_subdomaintakeover → Sous-domaines
sfp_portscan_tcp → Scan de ports
🤖 BBoT (Bighorn BOT) — Performance et modularité
| Caractéristique | Détail |
|---|
| Modules | 50+ modules, extensible |
| Interfaces | CLI uniquement |
| Format | Scan → JSON/CSV/TXT |
| License | Apache 2.0 |
| Performance | Très rapide, parallélisation native |
pip install bbot
bbot -t example.com -m osint scan
bbot -t example.com -m crtsh dns brutella subdomain-enum scan
bbot -t example.com -t example.org -m leakix hudsonrock scan
bbot -t example.com -m osint --output-dir ./results scan
bbot -t example.com -m badops --allow-dead-domains -af
Flags utiles BBoT :
--output-dir DIR
--output-module csv
-s
-v
--no-dns-resolve
--force
🔧 Recon-ng — Framework modulaire Recon
git clone https://github.com/lanmaster53/recon-ng
cd recon-ng
pip install -r REQUIREMENTS
./recon-ng
./recon-ng -r <(echo '
workspaces create investigation
db insert companies
companies set company "Target Corp"
keys add shodan_api KEY
use recon/companies-contacts/whoxy_whois
run
use recon/companies-multi/github_miner
run
')
📊 Maltego — Analyse de liens et visualisation
🐣 Little Brother — Surveillance OSINT modulaire
git clone https://github.com/lulz3xploit/LittleBrother
cd LittleBrother
pip install -r requirements.txt
python3 littlebrother.py --name "Prénom Nom" --country FR
📊 Pipelines d'Automatisation
Pipeline Basique (BBoT → SpiderFoot → Rapport)
#!/bin/bash
TARGET="$1"
DIR="./results/$TARGET"
mkdir -p "$DIR"
echo "=== Phase 1: BBoT - Scan rapide ==="
bbot -t "$TARGET" -m osint --output-dir "$DIR/bbot" scan
echo "=== Phase 2: SpiderFoot - Scan détaillé ==="
cd ~/tools/spiderfoot
python3 sf.py -s "$TARGET" -o json > "$DIR/spiderfoot.json"
echo "=== Phase 3: Sous-domaines ==="
curl -s "https://crt.sh/?q=%25.$TARGET&output=json" | \
jq -r '.[].name_value' | sort -u | grep -v "\*" > "$DIR/subdomains.txt"
echo "=== Phase 4: Vérification HTTP ==="
while read -r sub; do
code=$(curl -s -o /dev/null -w "%{http_code}" "https://$sub" 2>/dev/null)
echo "$sub -> HTTP $code" >> "$DIR/httpx.txt"
done < "$DIR/subdomains.txt"
echo "=== Terminé. Résultats dans $DIR ==="
Pipeline de Surveillance Continue
#!/bin/bash
TARGETS=("example.com" "example.org")
INTERVAL=86400
while true; do
for target in "${TARGETS[@]}"; do
bbot -t "$target" \
-m osint,darkleak \
--output-dir "./continuous/$target/$(date +%Y%m%d)" \
scan
done
sleep "$INTERVAL"
done
Pipeline d'Enrichissement Automatisé
#!/bin/bash
INPUT="$1"
while IFS= read -r item; do
if echo "$item" | grep -q '@'; then
echo "=== Email: $item ==="
holehe "$item" 2>/dev/null | grep "\\[+\\]"
curl -s "https://emailrep.io/$item" | jq '{reputation, suspicious, details}'
curl -s "https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?username=$item" | jq .
else
echo "=== Username: $item ==="
maigret "$item" --json 2>/dev/null | python3 -c "
import json, sys
data = json.load(sys.stdin)
for site, info in data.get('sites', {}).items():
if info.get('status') == 'claimed':
print(f' ✓ {site}: {info.get(\"url\", \"\")}')
"
fi
sleep 3
done < "$INPUT"
🛠️ Comparatif des Frameworks
| Critère | SpiderFoot | BBoT | Recon-ng | Maltego |
|---|
| Modules | 200+ | 50+ | 100+ | 1000+ (transforms) |
| Installation | Python/Docker | pip | pip | Java (lourd) |
| Interface | CLI + Web | CLI | CLI + Console | GUI |
| Performance | Moyenne | Très rapide | Rapide | Lente |
| Visualisation | Graphes intégrés | Fichiers JSON | Tabulaire | Graphes avancés |
| API intégrées | Nombreuses | Principales | Modulables | Transforms |
| Rapports | CSV/JSON/XLSX | TXT/JSON | Scriptable | Exports graphiques |
| Scalabilité | Docker swarm | Native parallèle | Simple | Payante |
| Mise à jour | Mensuelle | Active | Modérée | Active |
📝 Workflow Recommandé
Phase 1 — Découverte rapide (BBoT)
→ bbot -t cible -m osint scan
→ Obtention : sous-domaines, emails, IPs, technologies
Phase 2 — Analyse approfondie (SpiderFoot)
→ Lancer SpiderFoot sur le domaine/IP
→ 200+ modules de collecte passive
→ Graphe de corrélation
Phase 3 — Pivot et enrichissement (Recon-ng)
→ Workspace dédié
→ DB locale SQLite
→ Export structuré
Phase 4 — Visualisation (Maltego)
→ Importer les résultats
→ Explorer les relations
→ Graphe actionnable
🐳 Déploiement Docker (optionnel)
version: '3'
services:
spiderfoot:
image: spiderfoot
ports:
- "5001:5001"
volumes:
- ./data:/var/lib/spiderfoot
command: -l 0.0.0.0:5001
⚠️ Pièges et Bonnes Pratiques
- Rate limiting : Tous les frameworks doivent respecter les limites de taux des APIs. Configurer des délais entre les requêtes.
- Détection : Les scans OSINT automatisés sont facilement détectables. Utiliser Tor/VPN si l'anonymat est requis.
- Volume de données : SpiderFoot sur une cible peut générer des centaines de milliers de résultats. Filtrer tôt dans le pipeline.
- API keys : La plupart des modules nécessitent des clés API. Centraliser dans les fichiers de config des frameworks.
- Corrélation : Les résultats sont aussi bons que les données en entrée. Nettoyer et normaliser avant l'analyse.
- Performance : BBoT est significativement plus rapide que SpiderFoot. Utiliser BBoT pour les scans larges, SpiderFoot pour la profondeur.
- Stockage : Les résultats de scans OSINT sont sensibles. Stocker dans des bases chiffrées (SQLite avec SQLCipher).
- Légalité : Le scraping automatisé peut violer les CGU. Vérifier la légalité pour chaque source.
🔗 Références