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 :

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

2. Installation

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

Résultat : Maltego peut révéler un nom (Jean Dupont) et des comptes Twitter ou LinkedIn liés.

3. Élargir l’Analyse

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 :

2. Lancer les Transforms

Clic droit sur example.com > “Run Transform” :

3. Explorer Plus Loin

Sur chaque sous-domaine ou IP :

Exemple de graphe : example.com → www.example.com → IP 93.184.216.34 → AS15169 (Google).

🚀 Création d’un Plugin Personnalisé

1. Environnement

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 :

⚠️ Limites de la Version Gratuite

Mais pour débuter en OSINT, ça reste puissant !

💡 Astuces Avancées

🎓 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 !