Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PowerSploit — PowerSploit - A PowerShell Post-Exploitation Framework | Kitploit
Outils/GitHubGitHub/zerodaylab/powersploit
Penetration Testing FrameworksPrivilege EscalationReconnaissanceExploit FrameworksPersistence MechanismsIDS/IPS EvasionData ExfiltrationCommand and ControlRed TeamingPayload Development
GitHubzerodaylab/powersploit
23929il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

PowerSploit

PowerSploit - A PowerShell Post-Exploitation Framework

Voir le dépôt
Partager

Forké pour ajouter quelques fonctionnalités à PowerView.ps1 que j'effectue couramment manuellement

Ce projet n'est plus pris en charge

PowerSploit est une collection de modules Microsoft PowerShell pouvant être utilisés pour aider les testeurs d'intrusion pendant toutes les phases d'une évaluation. PowerSploit est composé des modules et scripts suivants :

Exécution de code

Exécute du code sur une machine cible.

Invoke-DllInjection

Injecte une DLL dans l'ID de processus de votre choix.

Invoke-ReflectivePEInjection

Charge par réflexion un fichier PE Windows (DLL/EXE) dans le processus PowerShell, ou injecte par réflexion une DLL dans un processus distant.

Invoke-Shellcode

Injecte du shellcode dans l'ID de processus de votre choix ou localement dans PowerShell.

Invoke-WmiCommand

Exécute un ScriptBlock PowerShell sur un ordinateur cible et retourne sa sortie formatée en utilisant WMI comme canal C2.

Modification de script

Modifie et/ou prépare des scripts pour exécution sur une machine compromise.

Out-EncodedCommand

Compresse, encode en Base-64 et génère une sortie en ligne de commande pour un script de charge utile PowerShell.

Out-CompressedDll

Compresse, encode en Base-64 et génère du code pour charger une DLL managée en mémoire.

Out-EncryptedScript

Chiffre des fichiers texte/scripts.

Remove-Comment

Supprime les commentaires et les espaces superflus d'un script.

Persistance

Ajoute des capacités de persistance à un script PowerShell

New-UserPersistenceOption

Configure les options de persistance au niveau utilisateur pour la fonction Add-Persistence.

New-ElevatedPersistenceOption

Configure les options de persistance avec élévation de privilèges pour la fonction Add-Persistence.

Add-Persistence

Ajoute des capacités de persistance à un script.

Install-SSP

Installe une DLL de fournisseur de support de sécurité (SSP).

Get-SecurityPackages

Énumère tous les packages de sécurité chargés (SSP).

Contournement de l'antivirus

L'antivirus n'a aucune chance face à PowerShell !

Find-AVSignature

Localise les signatures antivirus d'un seul octet en utilisant la même méthode que DSplit de "class101".

Exfiltration

Toutes vos données m'appartiennent !

Invoke-TokenManipulation

Liste les jetons d'ouverture de session disponibles. Crée des processus avec les jetons d'ouverture de session d'autres utilisateurs et impersonne les jetons d'ouverture de session dans le thread courant.

Invoke-CredentialInjection

Crée des ouvertures de session avec des identifiants en clair sans déclencher l'ID d'événement 4648 suspect (ouverture de session avec identifiants explicites).

Invoke-NinjaCopy

Copie un fichier depuis un volume partitionné NTFS en lisant le volume brut et en analysant les structures NTFS.

Invoke-Mimikatz

Charge Mimikatz 2.0 par réflexion en mémoire à l'aide de PowerShell. Peut être utilisé pour extraire des identifiants sans rien écrire sur le disque. Peut être utilisé pour toutes les fonctionnalités fournies par Mimikatz.

Get-Keystrokes

Enregistre les touches pressées, l'heure et la fenêtre active.

Get-GPPPassword

Récupère le mot de passe en clair et d'autres informations pour les comptes déployés via les préférences de stratégie de groupe.

Get-GPPAutologon

Récupère le nom d'utilisateur et le mot de passe d'ouverture automatique depuis registry.xml s'ils sont déployés via les préférences de stratégie de groupe.

Get-TimedScreenshot

Une fonction qui prend des captures d'écran à intervalle régulier et les enregistre dans un dossier.

New-VolumeShadowCopy

Crée une nouvelle copie fantôme de volume.

Get-VolumeShadowCopy

Liste les chemins d'appareil de toutes les copies fantômes de volume locales.

Mount-VolumeShadowCopy

Monte une copie fantôme de volume.

Remove-VolumeShadowCopy

Supprime une copie fantôme de volume.

Get-VaultCredential

Affiche les objets d'identifiants du coffre Windows, y compris les identifiants web en clair.

Out-Minidump

Génère un minidump complet de la mémoire d'un processus.

Get-MicrophoneAudio

Enregistre l'audio du microphone système et le sauvegarde sur le disque.

Chaos

Provoque le chaos général avec PowerShell.

Set-MasterBootRecord

Preuve de concept qui écrase le secteur d'amorçage principal avec le message de votre choix.

Set-CriticalProcess

Provoque un écran bleu sur votre machine à la sortie de PowerShell.

Élévation de privilèges

Outils pour aider à élever les privilèges sur une cible.

PowerUp

Référence des vérifications courantes d'élévation de privilèges, accompagnée de certains vecteurs de weaponisation.

Reconnaissance

Outils pour faciliter la phase de reconnaissance d'un test d'intrusion.

Invoke-Portscan

Effectue un simple scan de ports à l'aide de sockets classiques, basé (assez) librement sur nmap.

Get-HttpStatus

Retourne les codes de statut HTTP et l'URL complète pour les chemins spécifiés lorsqu'un fichier de dictionnaire est fourni.

Invoke-ReverseDnsLookup

Scanne une plage d'adresses IP pour trouver des enregistrements DNS PTR.

PowerView

PowerView est une série de fonctions qui effectue l'énumération et l'exploitation du réseau et des domaines Windows.

Reconnaissance\Dictionnaires

Une collection de dictionnaires utilisée pour faciliter la phase de reconnaissance d'un test d'intrusion. Les dictionnaires proviennent des sources suivantes.

  • admin.txt - http://cirt.net/nikto2/
  • generic.txt - http://sourceforge.net/projects/yokoso/files/yokoso-0.1/
  • sharepoint.txt - http://www.stachliu.com/resources/tools/sharepoint-hacking-diggity-project/

Licence

Le projet PowerSploit et tous les scripts individuels sont sous licence BSD 3-Clause sauf mention explicite contraire.

Utilisation

Reportez-vous à l'aide basée sur les commentaires de chaque script pour des informations d'utilisation détaillées.

Pour installer ce module, déposez le dossier PowerSploit entier dans l'un de vos répertoires de modules. Les chemins de modules PowerShell par défaut sont répertoriés dans la variable d'environnement $Env:PSModulePath.

Le chemin de module par défaut pour l'utilisateur est : "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" Le chemin de module par défaut au niveau de l'ordinateur est : "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Pour utiliser le module, tapez Import-Module PowerSploit

Pour voir les commandes importées, tapez Get-Command -Module PowerSploit

Si vous utilisez PowerShell v3 et souhaitez supprimer l'avertissement ennuyeux 'Do you really want to run scripts downloaded from the Internet', une fois que vous avez placé PowerSploit dans votre chemin de modules, exécutez la commande d'une ligne suivante : $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Pour de l'aide sur chaque commande individuelle, Get-Help est votre ami.

Remarque : Les outils contenus dans ce module ont tous été conçus pour pouvoir être exécutés individuellement. Les inclure dans un module ne fait que favoriser une portabilité accrue.

Règles de contribution

Nous avons besoin de contributions ! Si vous avez une excellente idée pour PowerSploit, nous serions ravis de l'ajouter. Les nouvelles additions devront répondre aux exigences suivantes :

  • Le script doit respecter le guide de style. Toute exception aux lignes directrices devra être justifiée par une raison explicite et valable.
  • Le manifeste du module doit être mis à jour pour refléter la nouvelle fonction ajoutée.
  • Une brève description de la fonction doit être ajoutée à ce README.md
  • Des tests Pester doivent accompagner toutes les nouvelles fonctions. Consultez le dossier Tests pour des exemples, mais nous recherchons des tests qui couvrent au moins les bases en testant les entrées/sorties attendues et inattendues et en vérifiant que la fonction présente la fonctionnalité souhaitée. Assurez-vous que la fonction réussit tous les tests (idéalement sur plusieurs systèmes d'exploitation) avant de soumettre une pull request. Merci !

Guide de style des scripts

Pour tous les contributeurs et futurs contributeurs de PowerSploit, je demande de suivre ce guide de style lors de l'écriture de vos scripts/modules.

  • Évitez Write-Host à tout prix. Les fonctions/cmdlets PowerShell ne sont pas des utilitaires en ligne de commande ! Les pull requests contenant du code qui utilise Write-Host ne seront pas prises en compte. Vous devez plutôt générer des objets personnalisés. Pour plus d'informations sur la création d'objets personnalisés, lisez ces articles :

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • Si vous souhaitez afficher des informations de débogage pertinentes à l'écran, utilisez Write-Verbose. L'utilisateur peut toujours simplement ajouter '-Verbose'.

  • Fournissez toujours une aide descriptive basée sur les commentaires pour chaque script. Assurez-vous également d'inclure votre nom et une licence BSD 3-Clause (sauf s'il existe des circonstances atténuantes empêchant l'application de la licence BSD).

  • Assurez-vous que toutes les fonctions respectent la convention verbe-nom PowerShell appropriée. Utilisez Get-Verb pour lister les verbes par défaut utilisés par PowerShell. Les exceptions aux verbes pris en charge seront examinées au cas par cas.

  • Je préfère que les noms de variables soient en majuscules et aussi descriptifs que possible.

  • Prévoyez un espacement logique dans votre code. Indentez votre code pour le rendre plus lisible.

  • Si vous vous surprenez à répéter du code, écrivez une fonction.

  • Interceptez toutes les erreurs prévisibles et fournissez une sortie pertinente. Si vous avez une erreur qui doit arrêter l'exécution du script, utilisez 'Throw'. Si vous avez une erreur qui ne doit pas arrêter l'exécution, utilisez Write-Error.

  • Si vous écrivez un script qui interagit avec l'API Win32, essayez d'éviter de compiler du C# en ligne avec Add-Type. Essayez d'utiliser le module PSReflect, si possible.

  • N'utilisez pas de chemins codés en dur. Un script doit être utilisable immédiatement. Personne ne devrait avoir à modifier le code, sauf s'il le souhaite.

  • La compatibilité PowerShell v2 est hautement souhaitée.

  • Utilisez des paramètres positionnels et rendez les paramètres obligatoires lorsque cela a du sens. Par exemple, je recherche quelque chose comme ceci :

    • [Parameter(Position = 0, Mandatory = $True)]
Télécharger l’outil
  • N'utilisez pas d'alias, sauf si cela a du sens pour la réception d'une entrée de pipeline. Ils rendent le code plus difficile à lire pour les personnes qui ne connaissent pas un alias particulier.

  • Essayez de ne pas laisser les commandes s'étendre trop longtemps. Par exemple, un pipeline est un endroit naturel pour un saut de ligne.

  • N'abusez pas des commentaires en ligne. Utilisez-les uniquement lorsque certains aspects du code pourraient prêter à confusion pour un lecteur.

  • Plutôt que d'utiliser Out-Null pour supprimer une sortie indésirable/non pertinente, enregistrez la sortie indésirable dans $null. Cela offre une légère amélioration des performances.

  • Utilisez des valeurs par défaut pour vos paramètres lorsque cela a du sens. Idéalement, vous voulez un script qui fonctionne sans nécessiter de paramètres.

  • Si un script crée des objets personnalisés complexes, incluez un fichier ps1xml qui formatera correctement la sortie de l'objet.