Guide Complet Maltego Community Edition
Ce tutoriel vous guide pas à pas dans l'utilisation de Maltego Community Edition pour l'analyse OSINT des personnes, l'exploration de domaines, et la création de plugins personnalisés. Ce guide est conçu pour un usage légal et éthique, dans un cadre d'apprentissage sécurisé.
🔍 Introduction
Maltego est un outil incontournable en OSINT. Sa version gratuite (Community Edition) permet de visualiser des relations entre entités – ici, une personne ou un domaine – en exploitant des données publiques. On peut trouver :
- Emails associés
- Profils sociaux (Twitter, LinkedIn, etc.)
- Numéros de téléphone ou autres traces numériques
- Sous-domaines, adresses IP, serveurs
L’objectif ? Comprendre comment une personne ou un domaine laisse des indices en ligne, pour des besoins de sécurité ou d’investigation.
🛠️ Installation de Maltego CE
1. Téléchargement
- Rendez-vous sur maltego.com/downloads.
- Choisissez “Maltego CE (Free)” et inscrivez-vous avec un email valide.
- Téléchargez la version pour votre OS (Windows, Linux, macOS).
2. Installation
- Linux :
sudo dpkg -i maltego*.deb - Windows : Double-cliquez sur l’exe et suivez l’assistant.
- Lancez Maltego, connectez-vous avec vos identifiants.
Note : La version CE nécessite une connexion Internet pour les “transforms”.
⚙️ Analyse OSINT des Personnes
1. Point de Départ : Email
Double-cliquez sur l’entité “Email Address” dans le graphe et entrez jean.dupont@example.com.
2. Lancer les Transforms
- Clic droit sur l’email > “Run Transform”.
- Sélectionnez “To Person [Using Email Address]” pour associer un nom.
- Ensuite, “To Social Networks [Using Email]” pour trouver des profils.
Résultat : Maltego peut révéler un nom (Jean Dupont) et des comptes Twitter ou LinkedIn liés.
3. Élargir l’Analyse
- Sur le nom “Jean Dupont” : Lancez “To Phone Numbers” ou “To Websites”.
- Explorez chaque nœud en répétant les transforms disponibles.
Exemple de graphe : Email → Nom → Twitter → Numéro de téléphone.
⚙️ Exploration d’un Domaine
1. Point de Départ : Le Domaine
Ouvrez Maltego :
- Créez un nouveau graphe (File > New).
- Dans la palette à gauche, trouvez l’entité “Domain”.
- Faites-la glisser sur le graphe et entrez
example.com.
2. Lancer les Transforms
Clic droit sur example.com > “Run Transform” :
- “To DNS Name [DNS from Domain]” : Révèle les sous-domaines (ex.
www.example.com,mail.example.com). - “To IP Address [DNS]” : Associe des adresses IP au domaine.
- “To Website [Quick Lookup]” : Vérifie les sites hébergés.
3. Explorer Plus Loin
Sur chaque sous-domaine ou IP :
- “To DNS Name [Reverse DNS]” : Trouve d’autres noms liés à l’IP.
- “To Netblock [Using Routing]” : Identifie le bloc réseau (ex. plage CIDR).
- “To AS Number” : Récupère l’Autonomous System (fournisseur réseau).
Exemple de graphe : example.com → www.example.com → IP 93.184.216.34 → AS15169 (Google).
🚀 Création d’un Plugin Personnalisé
1. Environnement
- Maltego CE : Installé et fonctionnel.
- Python 3 : Avec les modules
requestsetmaltego-trx.
pip install requests maltego-trx
2. Code de la Transform
Voici une transform qui récupère les sous-domaines via HackerTarget :
from maltego_trx.entities import DNSName
from maltego_trx.maltego import MaltegoMsg, MaltegoTransform
import requests
def client(request: MaltegoMsg, response: MaltegoTransform):
# Récupérer le domaine depuis l'entrée
domain = request.Value
# Requête vers l'API HackerTarget
url = f"https://api.hackertarget.com/hostsearch/?q={domain}"
try:
r = requests.get(url)
if r.status_code == 200:
# Résultat sous forme "sous-domaine,IP"
results = r.text.splitlines()
for line in results:
subdomain = line.split(",")[0]
# Ajouter chaque sous-domaine au graphe
response.addEntity(DNSName, subdomain)
else:
response.addUIMessage("Erreur API : " + str(r.status_code))
except Exception as e:
response.addUIMessage("Erreur : " + str(e))
if __name__ == "__main__":
MaltegoTransform().run(client)
Explications :
request.Value: Récupère le domaine (ex.example.com).requests.get: Appelle l’API.response.addEntity: Ajoute chaque sous-domaine au graphe.
⚠️ Limites de la Version Gratuite
- Transforms limités : 12 résultats max par transform.
- Quota : Usage restreint par jour (réinitialisé toutes les 24h).
- Pas de transforms locaux : Dépendance aux serveurs Maltego.
Mais pour débuter en OSINT, ça reste puissant !
💡 Astuces Avancées
- Combine avec Google : Vérifiez manuellement les résultats (ex. pseudo Twitter) pour contourner les limites.
- Export : Sauvegardez le graphe (File > Export Graph) en PNG ou CSV.
- Proxy : Utilisez un VPN pour éviter de lier vos recherches à votre IP.
🎓 Conclusion
Avec Maltego CE, analyser une personne ou un domaine devient un jeu d’enfant : un email ou un pseudo suffit pour révéler une toile d’informations. Ce tuto montre les bases, mais c’est en pratiquant que vous maîtriserez l’art de l’OSINT. Restez éthique : ces outils sont pour apprendre ou protéger, pas pour nuire !