
Un framework pour scripts PowerShell et PoshSec pour la gestion du réseau, la sécurité et la maintenance.
Pour que les scripts et modules fonctionnent, veuillez vous référer à la documentation ci-dessous.
Le PoshSec Framework (ou PSF) est un utilitaire doté d'une interface graphique pour exécuter des scripts, modules et cmdlets PowerShell. Le PSF expose certaines parties de son interface à PowerShell au sein de PSessions individualisées. Chaque script ou commande exécuté est lancé dans un thread séparé, ce qui vous permet d'exécuter plusieurs scripts simultanément.
Le PoshSec Framework est principalement développé par Ben Ten (Ben0xA). Le projet est également ouvert à d'autres développeurs qui souhaiteraient y contribuer. Ce projet est directement lié au projet PoshSec. Le projet PoshSec est maintenu par Matt Johnson (mwjcomputing) et est activement développé par plusieurs développeurs. Ces développeurs sont listés ci-dessous.
Le PoshSec Framework est conçu pour fonctionner avec PowerShell 3.0 et fonctionne avec PowerShell 2.0. Bien que PSF fonctionne avec des versions antérieures de PowerShell, PSF nécessite .NET 4.5, fourni en standard avec PowerShell 3.0. Voici les prérequis recommandés pour utiliser PSF :
Veuillez noter que, même si pour la « plupart » des scripts il n'est pas nécessaire que PowerShell soit déployé sur le système cible, il doit être installé et correctement configuré sur la même machine que celle où le PoshSec Framework est installé.
Si c'est la première fois que vous utilisez des scripts, fonctions ou cmdlets PowerShell, quelques opérations préliminaires doivent être effectuées au préalable. Celles-ci sont nécessaires que vous utilisiez le PoshSec Framework ou que vous invoquiez vous-même le script, la fonction ou le cmdlet. Remarque : l'utilitaire « First Time Utility » intégré au PSF effectuera automatiquement toutes ces étapes pour vous. Toutefois, ces étapes sont détaillées ci-dessous pour votre information ou si vous préférez les réaliser vous-même.
L'utilitaire de première utilisation du PoshSec Framework effectuera automatiquement les étapes listées ci-dessus. Il effectuera également :
Veuillez noter : vous pouvez choisir les étapes à effectuer dans l'utilitaire de première utilisation ou simplement appuyer sur le bouton « Do not do anything, I'll do it myself ».
Par défaut, PowerShell définit la stratégie d'exécution (ExecutionPolicy), qui détermine quels scripts peuvent être exécutés, sur « None ». Cela empêche l'exécution de scripts non signés sur votre système. Lorsque vous utilisez des scripts provenant d'autres projets, comme PoshSec, vous devrez définir cette stratégie sur « RemoteSigned ». La stratégie RemoteSigned est conçue pour les scripts que vous développez ou qui sont développés par d'autres. Cette commande doit être exécutée avec les privilèges d'administrateur local.
ps C:\> Set-ExecutionPolicy RemoteSigned -Force
Avec la sortie de Windows 7 et des systèmes d'exploitation Microsoft ultérieurs, Microsoft a introduit un « blocage » sur tout fichier téléchargé depuis Internet. Cela provoque l'apparition du Contrôle de compte d'utilisateur (UAC) lorsque ce fichier téléchargé est exécuté. Lorsque vous utilisez des scripts, fonctions ou cmdlets provenant de sites distants, ce drapeau de « blocage » devra être supprimé avant de pouvoir les exécuter depuis PowerShell ou PSF.
La cmdlet Unblock-File supprime ce drapeau. La façon la plus simple de débloquer plusieurs fichiers dans un répertoire consiste à parcourir le répertoire et à passer chaque fichier à la cmdlet Unblock-File.
ps C:\> Get-ChildItem | ForEach-Object { Unblock-File $_.Name }
Le PoshSec Framework utilise la cmdlet Get-Help de PowerShell. Elle est utilisée pour savoir si une commande ou un script possède des paramètres. Avant de pouvoir utiliser Get-Help, elle doit être mise à jour au moins une fois. Pour ce faire, utilisez la cmdlet Update-Help. Remarque : une connexion Internet active est nécessaire pour mettre à jour l'aide.
ps C:\> Update-Help -Force
=======
Remarque : un minimum de PowerShell 3.0 est requis pour le moment.
Vous devez vous assurer d'exécuter « Update-Help » dans l'invite de commandes PowerShell la première fois que vous chargez le framework. C'est requis pour que le framework fonctionne correctement !
Ouvrez poshsecframework.sln dans Visual Studio 2012 ou ultérieur et compilez le projet (F7). Cela créera le dossier bin\Release dans {votre répertoire de dépôt GitHub}\poshsecframework\poshsecframework\bin\Release.
Copiez les dossiers « \Modules » et « \Scripts » depuis le dossier « \Scripts and Modules » vers le répertoire bin\Release.
Par exemple :
C:\github\poshsecframework\poshsecframework\bin\Release\Modules\
C:\github\poshsecframework\poshsecframework\bin\Release\Scripts\
Le dossier binaire contient poshsecframework.zip.
Extrayez le fichier zip dans le répertoire de votre choix et exécutez simplement poshsecframework.exe.
Vous n'avez pas besoin de déplacer les dossiers Scripts\ ou Modules.
Copiez les dossiers Modules et Scripts depuis le dossier « Scripts and Modules » vers le répertoire d'installation.
C:\Program Files\PoshSecFramework\Modules\
C:\Program Files\PoshSecFramework\Scripts\
Vous devrez exécuter la commande suivante dans une console PowerShell lancée en tant qu'administrateur si vous n'avez jamais exécuté de scripts sur votre système auparavant.
Set-ExecutionPolicy RemoteSigned
Tapez ensuite « Y » lorsque vous y êtes invité.
Sur certains systèmes, vous devrez peut-être « débloquer » les fichiers. Nous travaillons à intégrer cette fonctionnalité directement dans PSF, mais pour l'instant, il vous suffit de taper la commande suivante dans une console PowerShell :
Get-ChildItem -recurse <path to poshsecframework> | Unblock-File
Exemple :
Get-ChildItem -recurse "C:\github\poshsecframework\poshsecframework" | Unblock-File
~or~
Get-ChildItem -recurse "C:\Program Files\PoshSecFramework\ | Unblock-File"
Ce projet, lancé par Will Steele (@pen_test) et Matt Johnson (@mwjcomputing), poursuit plusieurs objectifs :
Le PoshSec Framework a été
Les développeurs « Core » actuels sont :
Par ordre alphabétique :
PoshSec vise à soutenir la communauté, à autonomiser la communauté et à renforcer la posture de sécurité des organisations.