
Un framework per script PowerShell e PoshSec per la gestione della rete, la sicurezza e la manutenzione.
Affinché gli script e i moduli funzionino, fare riferimento alla documentazione riportata di seguito.
Il PoshSec Framework (o PSF) è un'utilità con interfaccia grafica per l'esecuzione di script, moduli e cmdlet di PowerShell. Il PSF espone parti della propria interfaccia a PowerShell all'interno di PSession individuali. Ogni script o comando eseguito viene eseguito in un thread separato, il che consente di eseguire più script simultaneamente.
Il PoshSec Framework è sviluppato principalmente da Ben Ten (Ben0xA). Il progetto è aperto anche ad altri sviluppatori che desiderano contribuire. Questo progetto è direttamente collegato al progetto PoshSec. Il progetto PoshSec è mantenuto da Matt Johnson (mwjcomputing) ed è sviluppato attivamente da più sviluppatori. Questi sviluppatori sono elencati di seguito.
Il PoshSec Framework è progettato per funzionare con PowerShell 3.0 e funziona con PowerShell 2.0. Sebbene PSF funzioni anche con versioni precedenti di PowerShell, PSF richiede .NET 4.5, che è incluso di serie con PowerShell 3.0. Questi sono i prerequisiti consigliati per utilizzare PSF:
Si noti che, sebbene per la 'maggior parte' degli script non sia richiesto che PowerShell sia distribuito sul sistema di destinazione, deve essere installato e configurato correttamente sulla stessa macchina su cui è installato il PoshSec Framework.
Se è la prima volta che utilizzi script, funzioni o cmdlet di PowerShell, ci sono alcune operazioni preliminari che devono essere eseguite prima. Queste devono essere eseguite sia che tu utilizzi il PoshSec Framework sia che tu invochi direttamente lo script, la funzione o il cmdlet. Nota: la 'First Time Utility' integrata in PSF eseguirà automaticamente tutti questi passaggi per te. Tuttavia, questi passaggi sono descritti di seguito in dettaglio per tua informazione o nel caso in cui preferissi eseguirli da solo.
La First Time Utility del PoshSec Framework eseguirà automaticamente i passaggi elencati sopra. Eseguirà inoltre:
Nota bene: puoi scegliere quali passaggi eseguire nella First Time Utility o semplicemente premere il pulsante che dice "Non fare nulla, lo farò da solo".
Per impostazione predefinita, PowerShell ha l'ExecutionPolicy, che determina quali script possono essere eseguiti, impostata su "None". Questo impedisce l'esecuzione di script non firmati sul tuo sistema. Quando utilizzi script provenienti da altri progetti, come PoshSec, dovrai impostare questa policy su "RemoteSigned". La policy RemoteSigned è progettata per script che sviluppi tu o che sono sviluppati da altri. Questo comando deve essere eseguito con privilegi di amministratore locale.
ps C:\> Set-ExecutionPolicy RemoteSigned -Force
Con il rilascio di Windows 7 e dei sistemi operativi successivi di Microsoft, è stato introdotto un "Blocco" su qualsiasi file scaricato da Internet. Questo farà apparire il Controllo Account Utente (UAC) quando il file scaricato viene eseguito. Quando utilizzi script, funzioni o cmdlet provenienti da siti remoti, questi dovranno avere il flag di "Blocco" rimosso prima di poterli eseguire da PowerShell o PSF.
Il cmdlet Unblock-File rimuove questo flag. Il modo più semplice per sbloccare più file in una directory è iterare sulla directory e passare ogni file al cmdlet Unblock-File.
ps C:\> Get-ChildItem | ForEach-Object { Unblock-File $_.Name }
Il PoshSec Framework utilizza il cmdlet Get-Help all'interno di PowerShell. Questo viene utilizzato per verificare se un comando o uno script ha parametri. Prima di poter utilizzare Get-Help, deve essere aggiornato almeno una volta. Per farlo, si utilizza il cmdlet Update-Help. Nota: è necessaria una connessione Internet attiva per aggiornare la guida.
ps C:\> Update-Help -Force
=======
Nota: al momento è richiesto un minimo di PowerShell 3.0.
Devi assicurarti di eseguire "Update-Help" nella shell dei comandi di PowerShell al primo caricamento. Questo è necessario affinché il framework funzioni correttamente!
Apri il file poshsecframework.sln in Visual Studio 2012+ e compila il progetto (F7). Questo creerà la cartella bin\Release in {your github repodirectory}\poshsecframework\poshsecframework\bin\Release.
Copia le cartelle "\Modules" e "\Scripts" dalla cartella "\Scripts and Modules" nella directory bin\Release.
Ad esempio:
C:\github\poshsecframework\poshsecframework\bin\Release\Modules\
C:\github\poshsecframework\poshsecframework\bin\Release\Scripts\
La cartella binaria contiene poshsecframework.zip.
Estrai il file zip in una directory a tua scelta ed esegui semplicemente poshsecframework.exe.
Non è necessario spostare le cartelle Scripts\ o Modules.
Copia le cartelle Modules e Scripts dalla cartella "Scripts and Modules" nella directory di installazione.
C:\Program Files\PoshSecFramework\Modules\
C:\Program Files\PoshSecFramework\Scripts\
Dovrai eseguire il seguente comando in una console PowerShell avviata come amministratore se non hai mai eseguito script sul tuo sistema in precedenza.
Set-ExecutionPolicy RemoteSigned
Poi digita "Y" quando richiesto.
Su alcuni sistemi, potrebbe essere necessario "sbloccare" i file. Stiamo lavorando per integrare questa funzionalità direttamente in PSF, ma per ora devi solo digitare il seguente comando in una console PowerShell:
Get-ChildItem -recurse <path to poshsecframework> | Unblock-File
Esempio:
Get-ChildItem -recurse "C:\github\poshsecframework\poshsecframework" | Unblock-File
~or~
Get-ChildItem -recurse "C:\Program Files\PoshSecFramework\ | Unblock-File"
Questo progetto, avviato da Will Steele (@pen_test) e Matt Johnson (@mwjcomputing), ha diversi obiettivi:
Il PoshSec Framework è stato
Gli attuali sviluppatori "core" sono:
In ordine alfabetico:
PoshSec punta a supportare la community, a dare potere alla community e a rafforzare la postura di sicurezza delle organizzazioni.