Cancellare i file: CMD vs. PowerShell

La buona abitudine di usare gli script sta tornando anche nell’ambiente Windows.

Dopo alcuni aborti come VBscript e alcune soluzioni di terze parti come KiXtart, sembra che PowerShell sia diventato il linguaggio di scripting sulla cui disponibilità nei client si può fare affidamento per l’immediato futuro.

PowerShell è una CLI molto potente e non ha nulla a che fare con CMD.EXE. L’ostacolo maggiore è che ha una serie di comandi e una sintassi completamente diverse da CMD.EXE, perciò l’amministratore di un sistema Windows deve impararsi di fatto un linguaggio nuovo.

Tra le differenze c’è l’interpretazione delle wildcard nella cancellazione dei file. Leggi tutto “Cancellare i file: CMD vs. PowerShell”

ShellShock anche per Windows?

winshockSh1bumi ha pubblicato una possibile versione di ShellShock per Windows.

In questo caso, il comando ECHO esegue anche il comando contenuto nella variabile:

>set pippo=pluto^&ping localhost

>echo %pippo%
pluto

Pinging localhost [::1] with 32 bytes of data:

La sequenza ^& contiene il carattere di escape ^ e il carattere & che significa “esegui il comando che segue al termine del precedente”. Il carattere di escape serve a non eseguire il ping dopo il comando set, ma a mettere la stringa pluto&ping localhost nella variabile d’ambiente pippo.

Il test è facilmente replicabile su una command line di Windows, l’immagine qui sopra è stata catturata in un Windows 7.

L’utilizzo di file batch non è diffuso in Windows quanto gli script shell sono utilizzati in *NIX e la possibilità che qualche servizio esposto a Internet da un server Windows passi un input non sanificato ad un batch che esegue un echo di quel valore è molto inferiore ad un problema analogo su *NIX, ma il problema esiste.