Il principale limite della linea di comando (CLI) è quello di avere una usabilità piuttosto limitata per l'utente medio, che non sempre è in grado di interagire con gli script e il terminale. Per ovviare a tale limite, senza rinunciare alle enormi potenzialità della CLI, è possibile, usando Windows Forms, creare delle GUI (interfacce grafiche) con pulsanti, menu, caselle di testo, etc. che agevolano la fruizione di script in PowerShell preimpostati, sempre modificabili e ulteriormente espandibili.

Il punto di partenza può essere una collezione di utilità e script, privi di interfaccia grafica; nel nostro caso partiremo dal file che trovate in allegato: "Helper.ps1". Lanciandolo con PowerShell (dopo aver impostato la giusta execution policy, come spiegato qui), si apre un semplice elenco di opzioni da scegliere:

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

Per utilizzare gli strumenti proposti, basta digitare il numero corrispondente alla funzione scelta e si proseguirà poi scrivendo nel terminale le informazioni (scelta file o cartella, parametri e criteri vari, etc.) necessarie all'esecuzione della funzionalità coinvolta. Aprendo "Helper.ps1" con PowerShell ISE è infatti osservabile come si tratti semplicemente di una raccolta di comandi e piccoli script organizzati con il comando "SWITCH":

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

Per avere un'interfaccia meglio gestibile, come anticipato, è possibile modificare il file "Helper" aggiungendo gli elementi grafici di Windows Forms. Quello che si è ottenuto in questo caso, è disponibile al repository di GitHub a questo indirizzo (con GUI anche in versione italiana) ed è stato chiamato CoverShell, alludendo intuitivamente al fatto che si tratta di una "cover" per gli script PowerShell.

Come sintetizzato nella presentazione su GitHub, nell'interfaccia troverete comandi per:

  • raccogliere informazioni e fare diagnostica di sistema
  • monitorare output, risorse e performance
  • fare manutenzione all'host e troubleshooting di base
  • controllare attività di rete, ottenere report, catturare traffico e fare un reset basilare
  • confrontare file, controllare differenze di contenuto fra cartelle, cercare file duplicati e trovare specifici file
  • dividere/unire file al livello di bit, invertire 0 e 1, attuare rotazione circolare dei bit verso sinistra
  • controllare gli hash dei file, generare password, ricorrere a scanner online per controllo malware e sanificare volumi.

Essendo il codice di CoverShell rilasciato come open source, quindi liberamente disponibile, potete ovviamente modificarlo o usarlo come base per aggiungere altre funzioni e altri pannelli. A titolo esemplificativo, ecco alcuni screenshot, ulteriori a quelli già presenti su GitHub:

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

UPDATE: versione 1.1.0

La versione 1.1.0, oltre ad una maggior "pulizia" nel codice, è caratterizzata dal nuovo pannello "Forensics" che aggiunge ulteriori possibilità di interagire con il sistema operativo e con alcuni file. CoverShell non è certo uno strumento votato alla digital forensics, sebbene alcuni elementi ("artefatti" come si dice in gergo) di cui si occupa, appartengano a quell'ambito. Il nuovo pannello, nella versione in italiano, si presenta così:

CoverShell: 'interfaccia grafica PowerShell strumenti utilità

Scarica registro

La prima utilità consente di scaricare il backup delle chiavi del registro divise in cinque file, uno per ogni hive, che possono essere aperti usando programmi come Registry Workshop, così da visualizzarne il contenuto similmente al Registry Editor di Windows. Il registro è notoriamente una miniera di informazioni che ben descrivono, non solo la "biografia", ma anche l'"ossatura" del sistema operativo e va dunque ricordato che la loro modifica può destabilizzare l'intero sistema. Tuttavia se ci si limita alla sola analisi del registro, è sicuramente possibile ottenere molte informazioni rilevanti in ambito "forensics" senza fare danni.

Scarica task

Questa funzione consente di scaricare l'elenco dei task pianificati, ordinati per data di ultima esecuzione. Tale elenco permette di monitorare sia l'esito e lo stato delle azioni pianificate, tramite alcuni codici (come quelli listati nel primo script qui o quelli citati qui), sia la presenza di task indesiderati o che magari pensavamo di aver bloccato. Inoltre la possibilità di vedere per quando è pianificata la prossima esecuzione di un task, ci dà un ulteriore riferimento preciso per valutare il comportamento di un determinato processo o programma.

Scarica clipboard

Come è intuibile, questa semplice funzione salva su un file .txt l'ultimo contenuto della clipboard, ma a differenza della history consultabile con la combinazione "WIN + V", questa funzione rileva e individua anche se è stato copiato un file, indicandone il nome, il percorso, la dimensione e la data dell'ultima modifica.

Scarica prefetch

Il file creato da questa funzione contiene l'elenco di tutti i file con estensione .pf situato nella cartella "Prefetch" di Windows (per una sintesi riguardo Prefetch e Superfetch rimando a questo articolo). I file listati indicano, già con il loro nome, quali programmi sono stati installati o anche solo avviati (se portable) e quale è stata la loro ultima esecuzione, reperibile nel campo "ultima modifica". Utilizzando alcuni software specifici, come ad esempio quello Nirsoft, è possibile estrarre da tali file ulteriori informazioni come il percorso e l'eseguibile di riferimento, quante volte il programma è stato avviato, se è ancora presente (distinguendo anche versioni omonime del medesimo programma) e persino l'elenco delle DLL collegate con il rispettivo percorso.

Mostra file hex

L'ultima funzione consente di visualizzare in esadecimale i byte di un file, meglio se di dimensioni ridotte, non oltre i 10MB (e per rendere il processo più veloce è possibile selezionare "Copia risultato nella clipboard" e poi usare la suddetta funzione "Scarica clipboard" per salvare il file in .txt). Questo tipo di visualizzazione, per cui esistono di certo programmi ben più performanti, permette di controllare ad esempio i "magic bytes" nell'header del file per identificarne il tipo a prescindere dalla estensione, oppure controllare rapidamente perché due file che dovrebbero essere identici hanno un hash differente (in tal caso, può far comodo aprirli entrambi in Notepad++ e usare l'apposito plugin per la comparazione).