PowerView
Objectif : PowerView est un module PowerShell faisant partie de la suite PowerSploit. Il est spécialisé dans l'énumération et l'exploitation d'environnements Active Directory (AD). Il permet de cartographier le domaine, trouver des utilisateurs, groupes, ordinateurs, GPOs, ACLs, et identifier des chemins potentiels d'escalade de privilèges ou de mouvement latéral.
Source : https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
🚀 Chargement de PowerView
- Méthode 1 : Fichier local
- Méthode 2 : Téléchargement et exécution en mémoire (bypass)
[!Attention]
L'exécution de scripts PowerShell peut être restreinte par la politique d'exécution (ExecutionPolicy
). UtilisezSet-ExecutionPolicy Bypass -Scope Process
pour la contourner temporairement dans la session courante (si autorisé).
🔍 Exploration du Domaine et de la Forêt
Informations sur le domaine actuel
- Contexte : Récupère les informations de base sur le domaine AD auquel la machine actuelle est jointe (nom, SID, contrôleurs de domaine, niveau fonctionnel...).
- Usage : Point de départ pour comprendre l'environnement AD actuel.
Informations sur un domaine spécifique
- Contexte : Interroge un autre domaine (accessible via une relation de confiance ou si un DC est spécifié).
- Usage : Énumération de domaines dans une forêt ou des domaines approuvés.
Trouver un contrôleur de domaine (DC)
- Contexte : Identifie les contrôleurs de domaine pour le domaine actuel ou un domaine spécifié.
- Usage : Trouver les serveurs KDC et LDAP cibles pour d'autres requêtes.
Informations sur la forêt actuelle
- Contexte : Obtient des informations sur la forêt AD (domaines membres, catalogue global...).
- Usage : Comprendre la structure globale si plusieurs domaines existent.
Lister les domaines de la forêt
- Contexte : Énumère tous les domaines appartenant à la forêt actuelle ou spécifiée.
- Usage : Cartographie complète des domaines au sein de la forêt.
Trouver les serveurs de Catalogue Global (GC)
- Contexte : Identifie les serveurs GC, qui contiennent une copie partielle des objets de tous les domaines de la forêt.
- Usage : Utile pour des recherches rapides à l'échelle de la forêt.
👥 Utilisateurs et Groupes
Informations sur un utilisateur
- Contexte : Récupère les attributs d'un ou plusieurs utilisateurs (par défaut l'utilisateur courant).
- Usage : Obtenir des détails sur un utilisateur (SID, groupes, description, date de dernière connexion...).
-Properties *
est crucial pour voir tous les attributs. - Astuce : Utilisez
-LDAPFilter
pour des recherches complexes (ex:Get-NetUser -LDAPFilter '(description=*admin*)' -Properties description
).
Lister tous les utilisateurs du domaine
- Contexte : Énumère tous les comptes utilisateurs du domaine.
- Usage : Obtenir une liste complète des utilisateurs pour d'autres analyses (spraying, recherche de comptes inactifs...).
Trouver les utilisateurs avec SPN (Kerberoastable)
- Contexte : Identifie les comptes utilisateurs configurés avec un Service Principal Name (SPN), les rendant potentiellement vulnérables au Kerberoasting.
- Usage : Trouver des cibles pour extraire des TGS et tenter de cracker leur mot de passe hors ligne.
Informations sur un groupe
- Contexte : Récupère les informations sur un ou plusieurs groupes AD.
- Usage : Obtenir les détails d'un groupe (SID, membres, description...).
-FullData
fournit plus d'informations.
Lister tous les groupes du domaine
- Contexte : Énumère tous les groupes du domaine.
- Usage : Identifier les groupes potentiellement privilégiés (Admins, DnsAdmins, etc.).
Trouver les membres d'un groupe (récursivement)
- Contexte : Liste les membres (utilisateurs, groupes, ordinateurs) d'un groupe spécifique.
- Usage : Comprendre qui a les privilèges associés à un groupe.
-Recurse
explore les groupes imbriqués.
Lister les groupes d'appartenance d'un utilisateur
- Contexte : Détermine à quels groupes un utilisateur appartient.
- Usage : Évaluer les privilèges d'un utilisateur compromis.
💻 Exploration des Ordinateurs
Lister tous les ordinateurs du domaine
- Contexte : Énumère les objets ordinateur dans l'AD.
- Usage : Identifier les serveurs, postes de travail, et potentiellement les contrôleurs de domaine.
-FullData
ou-Properties *
pour plus de détails (OS, etc.).
Trouver des ordinateurs avec un OS spécifique
- Contexte : Filtre les ordinateurs par chaîne de caractères dans leur attribut OperatingSystem.
- Usage : Cibler des types spécifiques de machines (ex: anciens OS, serveurs).
Tester la connectivité (Ping) des ordinateurs
- Contexte : Tente de pinger chaque ordinateur trouvé dans l'AD.
- Usage : Vérifier rapidement quels ordinateurs sont en ligne (peut être bloqué par un pare-feu).
🔄 Sessions et Accès Local
[!Attention]
Ces commandes interrogent les machines distantes et nécessitent souvent des privilèges (admin local sur la cible) et génèrent du trafic réseau potentiellement détectable.
Lister les sessions actives sur un ordinateur
- Contexte : Interroge la machine cible pour savoir quels utilisateurs ont des sessions SMB ouvertes vers elle.
- Usage : Identifier qui accède aux ressources d'un serveur spécifique.
Lister les utilisateurs connectés sur une machine
- Contexte : Tente de déterminer quels utilisateurs sont actuellement connectés (localement ou via RDP) sur la machine cible.
- Usage : Trouver où des utilisateurs spécifiques (ex: admins) sont connectés.
Trouver les machines où l'utilisateur courant a des droits admin local
- Contexte : Tente de se connecter à l'IPC$ ou au registre des machines cibles pour vérifier si l'utilisateur courant a des droits d'administrateur local.
- Usage : Identifier des cibles pour le mouvement latéral si l'utilisateur courant a des privilèges sur d'autres machines.
Trouver où des utilisateurs/groupes spécifiques sont connectés ou ont des droits admin
- Contexte : Combine
Get-NetLoggedon
etGet-NetSession
pour trouver où un utilisateur/groupe est potentiellement actif. - Usage : Chasse aux sessions d'utilisateurs privilégiés.
-CheckAccess
tente de vérifier les droits admin local (plus intrusif).
🏛️ Gestion des Politiques de Groupe (GPO)
Lister les GPO du domaine
- Contexte : Énumère toutes les GPO du domaine ou celles appliquées à un ordinateur spécifique.
- Usage : Identifier les politiques de sécurité, les déploiements logiciels, les scripts de démarrage/connexion.
Trouver les GPO modifiant les groupes locaux (Restricted Groups / Group Policy Preferences)
- Contexte : Recherche spécifiquement les GPO qui configurent l'appartenance des groupes locaux sur les machines (ex: ajout d'un groupe AD au groupe Administrateurs local).
- Usage : Identifier des GPO qui pourraient accorder des privilèges admin local à certains utilisateurs/groupes sur des OUs spécifiques.
Trouver quelles machines sont affectées par une GPO spécifique
- Contexte : Identifie les OUs liées à une GPO, puis liste les ordinateurs dans ces OUs.
- Usage : Comprendre la portée d'application d'une GPO potentiellement intéressante.
🔗 Relations de Confiance Active Directory (Trusts)
Lister les relations de confiance du domaine
- Contexte : Affiche les relations de confiance (entrantes, sortantes, type, transitivité) établies par le domaine actuel ou spécifié.
- Usage : Identifier des chemins d'attaque potentiels vers d'autres domaines ou forêts.
Lister les relations de confiance de la forêt
- Contexte : Énumère les relations de confiance au niveau de la forêt.
- Usage : Obtenir une vue d'ensemble des relations entre différentes forêts.
🎯 Recherche d'Objets et de Fichiers
Rechercher des objets AD avec un filtre LDAP
- Contexte : Permet des recherches très spécifiques dans l'AD en utilisant la syntaxe de filtre LDAP.
- Usage : Recherche avancée d'objets répondant à des critères précis.
Rechercher des partages SMB accessibles
- Contexte : Découvre les partages SMB sur les machines spécifiées (ou toutes celles du domaine par défaut).
- Usage : Identifier des partages potentiellement intéressants.
-CheckShareAccess
vérifie si l'utilisateur courant a des droits de lecture.
Rechercher des fichiers sensibles sur les partages accessibles
- Contexte : Recherche des fichiers correspondant à un motif sur les partages SMB accessibles.
- Usage : Trouver des fichiers de configuration, scripts, backups contenant potentiellement des informations sensibles.
🛡️ Analyse des Permissions (ACLs)
Lister les ACLs d'un objet AD
- Contexte : Affiche la liste de contrôle d'accès (ACL) pour un objet AD spécifique (utilisateur, groupe, ordinateur, OU, GPO...).
- Usage : Identifier qui a quels droits sur un objet. Crucial pour trouver des chemins d'escalade de privilèges (ex: droit d'écriture sur un groupe admin, droit de réinitialiser un mot de passe...).
-ResolveGUIDs
traduit les GUIDs en noms connus.
Trouver des ACLs intéressantes dans le domaine
- Contexte : Recherche automatiquement des configurations d'ACL potentiellement exploitables dans tout le domaine (droits de modification sur des objets privilégiés, GenericAll, WriteDacl, etc.).
- Usage : Point de départ rapide pour identifier des faiblesses de configuration des permissions AD.
Lister les ACLs d'un chemin de fichier/dossier (local ou UNC)
- Contexte : Affiche les permissions NTFS sur un fichier ou un dossier.
- Usage : Vérifier les permissions sur des partages réseau comme SYSVOL ou NETLOGON.