domenica 17 luglio 2016

Ransomware CryptXXX: Decriptare i file con estensione .Crypz e .Cryp1 (UltraDeCrypter)

Da qualche giorno chi ha i file cifrati dal ransomware CryptXXX con estensione .Crypz e Cryp1 può ricevere gratuitamente la chiave per recuperare i propri dati. Per farlo è necessario eseguire i seguenti passaggi:
  • Procurarsi un browser Tor. É possibile scaricare una versione portable da QUI oppure è possibile installare la versione ufficiale scaricandola da QUI.
  • All'interno del messaggio del riscatto sono presenti un indirizzo e il proprio ID. Con il browser Tor, collegarsi all'indirizzo indicato nel messaggio e inserire, nell'apposita casella, il proprio ID quindi cliccare su Sign In.

    TOR Browser, pagina del riscatto
    FIG 1 - TOR Browser, pagina del riscatto
  • Verrà visualizzata la propria chiave di decodifica (certificato), selezionarla, comprese le righe contenenti BEGIN CERTIFICATE e END CERTIFICATE, e copiarla.

    CryptXXX, chiave
    FIG 2 - CryptXXX, chiave
  • Ora cliccare su Instructions (o Il manuale nel caso sia stata selezionata la lingua italiana) per visualizzare la pagina contenente le istruzioni e il link per scaricare UltraDeCrypter necessario per decifrare i dati.

    CryptXXX, istruzioni sull'utilizzo di UltraDeCrypter
    FIG 3 - CryptXXX, istruzioni sull'utilizzo di UltraDeCrypter
  • Eseguire il download di UltraDeCrypter cliccando sul relativo link.
  • Avviare UltraDeCrypter e nella casella Key Code incollare la propria chiave.
  • Dal menu Action di UltraDeCrypter  selezionare Scan quindi cliccare su Crypt files. Tale scansione provvederà ad individuare i file cifrati sulla postazione.
    UltraDeCrypter, scansione dei file cifrati
    FIG 4 - UltraDeCrypter, scansione dei file cifrati
  • Terminata la scansione, dal menu Action selezionare Decrypt quindi cliccare sul All files. Il processo di recupero dei dati verrà avviato e non resta che attendere il completamento dell'operazione.
    UltraDeCrypter, decriptare tutti i file cifrati
    FIG 5 - UltraDeCrypter, decriptare tutti i file cifrati

Il motivo per cui la chiave di queste 2 varianti del ransomware venga fornita gratuitamente non è ancora noto. C'è chi pensa che si tratti di un problema sui server chi, invece, pensa che si tratti di un contentino fornito ad alcune vittime per mostrare a tutti che il recupero dei dati è possibile e incentivare, in questo modo, il pagamento del riscatto da parte di chi è stato infettato da altre varianti.

giovedì 14 luglio 2016

PowerShell: Cancellare la cronologia dei comandi con Clear-History

Quando eseguiamo i comandi all'interno della sessione PowerShell, questi vengono memorizzati all'interno della cronologia. Con i tasti freccia SU e GIU' della tastiera possiamo visualizzare singolarmente gli ultimi comandi digitati oppure possiamo utilizzare il cmdlet Get-History per visualizzarne l'elenco. Il cmdlet Clear-History, se eseguito senza parametri, consente di eliminare tutta la cronologia dei comandi.
PowerShell, Clear-History
FIG 1 - PowerShell, Clear-History

Per eliminare un determinato comando dalla cronologia possiamo utilizzare il parametro -ID e specificare l'ID del comando da eliminare (nel caso di più comandi gli ID vanno separati da virgola). La sintassi del comando è
Clear-History -ID <ID da eliminare>

Ad es.
Clear-History -ID 8
Clear-History -ID 8, 10

Se vogliamo eliminare tutte le tracce di un determinato comando all'interno della cronologia possiamo utilizzare il parametro -Command e specificare il comando o parte di esso.
Clear-History -Command <nome comando>

Per cancellare tutti i comandi che iniziano per "Get-"
Clear-History -Command "Get-*"
per cancellare più comandi possiamo indicarli separandoli da virgola. Ad esempio con il seguente comando vengono cancellati dalla cronologia tutti i comandi che iniziano con "Get-" e tutti quelli che contengono la stringa "help"
Clear-History -Command "Get-*", "*help*"

Con il parametro -Count possiamo indicare quanti elementi della cronologia, partendo da quello più vecchio, cancellare. Ad es. per cancellare i 2 elementi della cronologia più vecchi
Clear-History -Count 2
per cancellare 2 elementi della cronologia partendo da quelli più nuovi
Clear-History -Count 2 -Newest
per cancellare gli elementi più vecchi partendo da un determinato ID
Clear-History -ID 8 -Count 2




martedì 12 luglio 2016

Windows Quick Tip: Ripristino di Windows Update

I motivi che possono causare il malfunzionamento di Windows Update possono essere molteplici e spesso non sono facili da scovare. Le prime operazioni da eseguire sono:
  • Verificare che la data e l'ora di sistema siano corretti (incluso il fuso orario). Impostazioni errate impediscono a Windows Update di funzionare correttamente.
  • Verificare la connessione alla rete e a Internet.
  • Eseguire una scansione del sistema con un antivirus/antimalware aggiornato. Molti virus/malware non consentono al sistema di aggiornarsi.
  • Verificare la configurazione dei DNS configurati sulla postazione. Provare a cambiarli impostando quelli di Google (DNS primario 8.8.8.8, DNS secondario 8.8.4.4).
  • Verificare il contenuto del file %Windir%\System32\drivers\etc\Host. Virus e malware possono modificare tale file in modo da impedire l'accesso ad alcuni siti o dirottare l'utente su siti compromessi.
  • Provare a disattivare temporaneamente firewall e antivirus di terze parti.

Se dopo aver eseguito le verifiche sopra riportate Windows Update continua a non funzionare, si può provare ad eseguire i comandi sotto riportati dal Prompt dei comandi avviato come amministratore.
net stop wuauserv
net stop bits 
net stop appidsvc
net stop cryptsvc 
ren %systemroot%\System32\Catroot2 Catroot2.OLD
net start cryptsvc 
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
del /f /q %windir%\WindowsUpdate.log
del /f /s /q %windir%\SoftwareDistribution\*.*
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)
                                                                                (A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)
                                                                                (A;;CCLCSWRPWPDTLOCRRC;;;PU)
%windir%\system32\regsvr32.exe /s %windir%\system32\atl.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Urlmon.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Mshtml.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\Shdocvw.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\browseui.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\jscript.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\vbscript.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\scrrun.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml3.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\msxml6.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\actxprxy.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\softpub.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\oleaut32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\ole32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\shell32.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuapi.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuaueng1.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wucltui.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wups.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wups2.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuweb.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\qmgr.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\qmgrprxy.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wucltux.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\muweb.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\wuwebv.dll
regsvr32 /u /s wintrust.dll
regsvr32 /u /s initpki.dll
regsvr32 /u /s dssenh.dll
regsvr32 /u /s rsaenh.dll
regsvr32 /u /s gpkcsp.dll
regsvr32 /u /s sccbase.dll
regsvr32 /u /s slbcsp.dll
regsvr32 /u /s mssip32.dll
regsvr32 /u /s cryptdlg.dll
regsvr32 /s wintrust.dll
regsvr32 /s initpki.dll
regsvr32 /s dssenh.dll
regsvr32 /s rsaenh.dll
regsvr32 /s gpkcsp.dll
regsvr32 /s sccbase.dll
regsvr32 /s slbcsp.dll
regsvr32 /s mssip32.dll
regsvr32 /s cryptdlg.dll
%windir%\system32\regsvr32.exe /s %windir%\system32\quartz.dll
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
Netsh winhttp reset proxy
net start bits
net start wuauserv 
net start appidsvc
wuauclt /resetauthorization /detectnow

Per comodità ho creato il file WUReset.bat con i comandi sopra elencati. Chi vuole, può scaricare il file dal seguente link
DOWNLOAD
Una volta scaricato e scompattato, basta cliccare sul file WUReset.bat con il tasto destro del mouse e selezionare, dal menu contestuale, la voce Esegui come amministratore. Al termine delle operazioni (anche se alcuni comandi hanno restituito un errore) riavviare il sistema e rilanciare Windows Update (la prima ricerca di Windows Update potrebbe richiedere molto tempo).

La procedura indicata è stata testata in Windows 7, 8, 8.1 e 10.


lunedì 11 luglio 2016

PowerShell: Eseguire comandi presenti nella cronologia tramite Invoke-History

Il cmdlet Invoke-History consente di eseguire i comandi presenti nella cronologia dei comandi della sessione PowerShell.
Se eseguito senza alcun parametro, Invoke-History riesegue l'ultimo comando lanciato.
Invoke-History

Con Get-History possiamo visualizzare l'elenco dei comandi presenti nella cronologia con relativo ID. L'ID può essere passato al cmdlet Invoke-History in modo che venga eseguito quello specifico comando. Ad es.
Invoke-History -ID 3
esegue il comando avente ID 3.

Al parametro ID può essere passato anche parte del comando presente in cronologia che si intende eseguire. Ad es.
Invoke-History -ID Get-Pr
esegue l'ultimo comando che inizia per "Get-Pr" (come Get-Process, Get-PrinterDriver, ecc) presente in cronologia.
PowerShell, Invoke-History
FIG 1 - PowerShell, Invoke-History

Per eseguire più comandi possiamo utilizzare Invoke-History insieme al cmdlet Get-History. Ad es.
Get-History -ID 10 -Count 3 | Invoke-History
esegue i comandi memorizzati nella cronologia aventi come ID 8,9 e 10.




venerdì 8 luglio 2016

PowerShell: Visualizzare l'elenco dei comandi eseguiti con Get-History

Per visualizzare la cronologia della sessione PowerShell corrente, ovvero l'elenco degli ultimi comandi eseguiti, viene utilizzato il cmdlet Get-History. L'output del cmdlet mostra l'ID e il comando eseguito.


Get-History, visualizzare la cronologia dei comandi
FIG 1 - Get-History, visualizzare la cronologia dei comandi

Il numero di elementi memorizzati di default varia a seconda della versione PowerShell (64 in PowerShell 2.0, 4096 in Powershell 3.0 e successivi) e può essere modificato tramite la variabile $MaximumHistoryCount.
Per conoscere il valore di tale variabile e di conseguenza il numero di comandi memorizzati, si può utilizzare il comando:
Get-Variable  MaximumHistoryCount

Per modificare il numero di comandi memorizzati, invece, basta assegnare il valore voluto alla variabile $MaximumHistoryCount ad es.
$MaximumHistoryCount = 200
Get-Variable MaximumHistoryCount
FIG 2 - Get-Variable MaximumHistoryCount


I parametri utilizzabili con il cmdlet Get-History sono: ID e Count

ID
Specifica il numero ID di un comando presente nella cronologia. Se specificato con Get-History viene visualizzato solo il comando specificato:
Get-History -ID 2
visualizza solo il comando avente come ID 2
Get-History -ID
FIG 3 - Get-History -ID

Count
Visualizza il numero specificato di elementi più recenti presenti all'interno della cronologia:
Get-History -Count 3
visualizza gli ultimi 3 elementi della cronologia
Get-History -Count
FIG 4 - Get-History -Count

I parametri ID e Count se utilizzati insieme visualizzano n elementi specificati da Count fino all'elemento specificato da ID. Ad es.
Supponiamo che la cronologia contenga 18 elementi, lanciando il seguente comando
GetHistory -ID 10 -Count 3
otteniamo in output 3 comandi presenti nella cronologia di cui l'ultimo ha ID 10 (i comandi in output vanno da ID 8 a ID 10 come mostrato in FIG 5).
GetHistory con le opzioni ID e Count
FIG 5 - GetHistory con le opzioni ID e Count

giovedì 7 luglio 2016

Windows 10: Ripristinare l'App Microsoft Edge

Per ripristinare Microsoft Edge e relative impostazioni di default:
  • Eliminare la cartella
    %userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe


    Eliminare la cartella Microsoft.MicrosoftEdge_8wekyb3d8bbwe
    FIG 1 - Eliminare la cartella Microsoft.MicrosoftEdge_8wekyb3d8bbwe
  • Avviare PowerShell come amministratore ed eseguire il comando 
    get-AppXPackage -AllUsers -Name Microsoft.MicrosoftEdge | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -Verbose}
    Ripristino Microsoft Edge
    FIG 2 - Ripristino Microsoft Edge
  • Riavviare il sistema.

ATTENZIONE! Tutti i dati e le personalizzazione in Microsoft Edge verranno eliminati.




mercoledì 6 luglio 2016

Windows Quick Tip: Limitare i tempi di utilizzo del sistema da parte di un account tramite Net User

Per attivare una restrizione sui tempi di accesso e utilizzo del sistema da parte di un account è possibile agire tramite il prompt dei comandi.

Avviare il prompt dei comandi come amministratore (In Windows 8 e 10 premere la combinazione di tasti WIN+X e dal menu selezionare la voce Prompt dei comandi (amministratore) )
Prompt dei comandi (amministratore)
FIG 1 - Prompt dei comandi (amministratore)

Il comando da utilizzare per limitare il tempo di utilizzo del sistema da parte di un account ha la seguente sintassi:
net user <account_utente> /time:<intervallo-giorni>,<intervallo-ore>

Al posto di <account_utente> è necessario specificare l'account che si vuole limitare, <intervallo-giorni> e <intervallo-ore> rappresentano l'intervallo temporale in cui l'account è autorizzato ad accedere e ad utilizzare il sistema. I giorni della settimana vanno specificati con le lettere D, L, Ma, Me, G, V, S. Vediamo alcuni esempi.
Net User <account_utente> /time:<Intervallo-giorni>,<intervallo-ore>
FIG 2 - Net User <account_utente> /time:<Intervallo-giorni>,<intervallo-ore>

Per limitare l'accesso all'account Virtual2 dal Lunedì al Venerdì e dalle ore 7 alle ore 21
Net User Virtual2 /time:L-V,7-21
oppure
Net User Virtual2 /time:L-V,7am-9pm

Se all'intervallo vogliamo aggiungere anche Sabato e Domenica basta aggiungere il nuovo intervallo separandolo dal precedente con un punto e virgola
Net User Virtual2 /time:L-V,7-21; S-D,8-14

Per rimuovere la restrizione
Net User Virtual2 /time:all

Attenzione! Nel caso in cui dopo lo switch /time non venga specificato alcun intervallo, all'utente specificato sarà inibito sempre l'accesso al sistema.

La limitazione può essere impostata solo per gli utenti standard e non per gli account amministratore.

Per verificare se un account ha limitazioni temporali è possibile usare il comando
Net User <account_utente>
Ad es.
Net User Virtual2

Net User <account_utente>
FIG 3 - Net User <account_utente>