martedì 16 maggio 2017

Ransomware WannaCry: Come proteggersi

L'attacco informatico eseguito dal ransomware WannaCry (conosciuto anche con i nomi WanaCrypt0r 2.0 o WCry/WannaCry) è di carattere planetario. Il ransomware sfrutta una tecnica utilizzata da EternalBlue/DoublePulsar, uno strumento d'intrusione sviluppato dalla NSA che è stato trafugato e diffuso da alcune organizzazioni criminali. Il malware si diffonde da una rete locale all'altra attraverso Internet sfruttando le condivisione di rete SMB (SAMBA), generalmente attiva di default sui sistemi Windows, pertanto se un PC è stato infettato scollegarlo dalla rete per scongiurare l'infezione di altre postazioni/dispositivi. L'infezione è stata al momento bloccata: WannaCry verifica la presenza di un particolare domino esterno (www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com) e se non lo trova o non riesce ad accedervi provvede ad infettare il sistema. Il dominio è stato di recente creato per fermare l'infezione ma altre varianti del malware sprovviste di tale controllo si stanno diffondendo.
Purtroppo questo attacco dimostra ancora una volta la scarsa considerazione della sicurezza da parte degli utenti ma soprattutto da parte di molte aziende: sono stati colpite dall'infezione Università, Ospedali, compagnie di telecomunicazioni e persino banche. La patch diffusa da Microsoft che sistema la falla sfruttata dal ransomware è la MS17-010 disponibile già da Marzo. 

I sistemi interessati dal ransomware sono Windows XP, Windows Vista SP2, Windows Server 2008, Windows 7, Windows 8-8.1, Windows Server 2012 e R2, Windows 10, Windows Server 2016 non aggiornati.


Oltre ad installare la patch è opportuno verificare la disabilitazione della funzionalità Supporto per condivisione file SMB 1.0/CIFS come indicato di seguito:
  • Da Windows premere la combinazione di tasti WIN+R e, nella finestra Esegui, digitare appwiz.cpl seguito da invio;
  • Sul lato sinistro della finestra cliccare su Attivazione o Disattivazione delle funzionalità di Windows

    Windows, Attivazione o disattivazione delle funzionalità di Windows
    FIG 1 - Windows, Attivazione o disattivazione delle funzionalità di Windows
  • Dall'elenco togliere la spunta alla voce Supporto per condivisione file SMB 1.0/CIFS (SMB1.0/CIFS File Sharing Support) e confermare cliccando su OK

    Supporto per condivisione file SMB 1.0/CIFS
    FIG 2 - Supporto per condivisione file SMB 1.0/CIFS

Per proteggersi da gran parte di virus/ransomware basta seguire pochi e semplici passaggi:
  • Tenere sempre il sistema operativo aggiornato. Windows può essere aggiornato sia tramite il tool integrato nel sistema sia installando le patch di sicurezza manualmente scaricandole da http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598.
  • Aggiornare il proprio antivirus/firewall;
  • Non aprire email, allegati o file di dubbia provenienza senza prima aver effettuato almeno un controllo con un antivirus aggiornato;
  • Eseguire frequenti backup dei dati importanti su supporti esterni è tenerli disconnessi dalla rete.




MS Exchange: Rimuovere la foto associata all'account utente tramite EMS

Per rimuovere una foto associata ad un'account utente in ambiente MS Exchange 2013/2016 è possibile agire tramite EMS (Exchange Management Shell) utilizzando il cmdlet Remove-UserPhoto. La sintassi del comando è la seguente

Remove-UserPhoto -identity <IdentificativoMailbox>

oppure

Remove-UserPhoto -ClearMailboxPhotoRecord <SwitchParameter> -Identity <IdentificativoMailbox>

MS Exchange, foto associata all'account utente
FIG 1 - MS Exchange, foto associata all'account utente


Parametri principali


Identity
Il parametro Identity specifica l'identità dell'account utente. Il parametro accetta un qualsiasi valore che consenta di identificare l'account in modo univoco come:
GUID
Nome distinto (DN)
Dominio\Account
Nome dell'entità utente
LegacyExchangeDN
SamAccountName
Indirizzo SMTP
Alias 


ClearMailboxPhotoRecord
Il parametro ClearMailboxPhotoRecord è disponibile solo per il servizio basato su cloud e indica che la foto eliminata da una casella di posta viene considerata vuota anziché rimossa. Non è necessario specificare un valore per questa opzione.



Esempi


Esempio 1
Remove-UserPhoto -identity GLUBRANO
Elimina la foto associata all'account GLUBRANO

Esempio 2
Remove-UserPhoto -identity giovanni.lubrano@contoso.com -Confirm:$false
Rimuove la foto associata all'account identificato dall'indirizzo giovanni.lubrano@contoso.com senza chiedere conferma prima di procedere.



lunedì 15 maggio 2017

Outlook: Modificare la grandezza del carattere del riquadro cartelle/riquadro di spostamento

Tutte le versioni di Outlook dispongono di una sezione nota come Navigation Pane che, oltre a permettere un accesso rapido a tutte le cartelle della posta, consente di passare rapidamente a visualizzazioni diverse quali il Calendario, i Contatti, le Attività, le Note, ecc. Nella versione di Outlook 2010 il Navigation Pane prende il nome di Riquadro di spostamento mentre a partire da Outlook 2013 il nome è stato modificato in Riquadro Cartelle.

In questo articolo verrà mostrato come procedere per ingrandire il Font del Navigation Pane; mentre in Outlook 2010 è presente un'apposita opzione, per le versioni successive è necessario agire tramite le opzioni del sistema operativo.


Outlook 2010

  • All'interno di Outlook, dal menu Visualizza cliccare su Riquadro di spostamento quindi selezionare Opzioni...;
    Outlook 2010, menu Visualizza
    FIG 1 - Outlook 2010, menu Visualizza
  • Nella finestra Opzioni Riquadro di spostamento, cliccare sul pulsante Tipo di carattere (il pulsante Reimposta ripristina le impostazioni di default);
    Outlook 2010, Opzioni riquadro di spostamento
    FIG 2 - Outlook 2010, Opzioni riquadro di spostamento
  • Selezionare il Tipo di carattere e la grandezza desiderati quindi cliccare su OK per ritornare alla finestra precedente;
    Outlook 2010, Tipo di carattere riquadro di spostamento
    FIG 3 - Outlook 2010, Tipo di carattere riquadro di spostamento
  • Nella finestra Opzioni Riquadro di spostamento cliccare sul pulsante OK per applicare le modifiche.



Outlook 2013 e successivi


A partire da Outlook 2013 il Navigation Pane prende il nome di Riquadro cartelle inoltre è stata rimossa l'opzione che consente la modifica della grandezza dei caratteri di tale riquadro. Per ingrandire i caratteri all'interno del Riquadro cartelle è necessario procedere tramite le impostazioni di visualizzazione del sistema operativo. Ovviamente, in questo caso, la grandezza dei caratteri verrà modificata anche nei menu di altre applicazioni e del sistema operativo. Di seguito vengono elencati i passaggi da seguire in ambiente Windows 10, per altre versioni di Windows i passaggi sono analoghi.
  • Accedere al Pannello di controllo cliccare su Aspetto e personalizzazione;

    Windows 10, Pannello di controllo - Aspetto e personalizzazione
    FIG 4 - Windows 10, Pannello di controllo - Aspetto e personalizzazione
  •  Nella schermata successiva cliccare su Schermo;

    Windows 10, Schermo
    FIG 5 - Windows 10, Schermo
  • Nella sezione Modifica solo la dimensione del testo selezionare la voce Menu nella combobox e impostare la dimensione desiderata (di default è 9) quindi cliccare su Applica.
    Windows 10, Modifica dimensione del testo dei menu
    FIG 6 - Windows 10, Modifica dimensione del testo dei menu




domenica 7 maggio 2017

C#: Elencare i file PST connessi ad Outlook

Per poter utilizzare Outlook è necessario disporre di un account di posta (Microsoft Exchange, POP o IMAP). L'account di posta è composto da un'oggetto di tipo Store che viene utilizzato per memorizzare i dati. Lo Store, a sua volta, è composto da cartelle e Item (come e-mail, contatti, appuntamenti, ecc). Anche un file archivio (file PST) è composto da un'oggetto di tipo Store. Per chiarire il concetto, si veda la seguente figura.


Outlook Store
FIG 1 - Outlook Store


In questo articolo verrà mostrato come, utilizzando C#, è possibile ottenere l'elenco dei file PST connessi ad Outlook.
Per poter interagire con gli oggetti di Outlook è necessario utilizzare, all'interno della nostra applicazione, il namespace Microsoft.Office.Interop.Outlook.

Una volta aggiunti i riferimenti a Microsoft.Office.Interop.Outlook, la prima operazione da effettuare è quella di creare un oggetto Outlook Application.
Outlook.Application olApp = new Outlook.Application();

Tale oggetto può essere utilizzato per diversi scopi, noi lo useremo per accedere agli altri oggetti di Outlook sottostanti.

Il nostro obiettivo è quello di accedere agli Store. Tale operazione è possibile attraverso l'oggetto NameSpace che contiene la sessione di collegamento ad Outlook
Outlook.NameSpace olNs=olApp.Session;
Outlook.Stores olStores=olNs.Stores;

A questo punto in olStores abbiamo tutti gli Store del profilo Outlook. Attraverso un ciclo For andiamo ad analizzare ciascun Store e verificare se si tratta di un file di dati (olStore.IsDataFileStore) e se la sua estensione è .PST (olStore.FilePath.ToString().ToUpper().EndsWith(".PST"). In caso affermativo il nome del file, comprensivo di path, verrà accodato ad una variabile stringa (pstList) che, al termine, conterrà l'elenco di tutti i file PST connessi ad Outlook
for (int i = 1; i <= olStores.Count; i++){
 olStore=olStores[i];
 if(olStore.IsDataFileStore){ //se si tratta di un file di dati
  if ((olStore.FilePath.ToString().ToUpper().EndsWith(".PST")) ){
   count++;
   pstList += String.Format("{0}. {1}{2}",count,olStore.FilePath,Environment.NewLine);
  }
    
 }
 if (olStore !=null)
  Marshal.ReleaseComObject(olStore);

 }

Alla fine non resta che chiudere le sessioni e rilasciare gli oggetti.
if (olStores !=null)
 Marshal.ReleaseComObject(olStores);
if (olStore !=null)
 Marshal.ReleaseComObject(olStore);
if (olApp !=null)
 Marshal.ReleaseComObject(olApp);
if (olNs != null)
 Marshal.ReleaseComObject(olNs);

Per chi vuole può scaricare il codice sorgente dell'esempio dal seguente link.
DOWNLOAD



giovedì 4 maggio 2017

Ransomware JeepersCrypt: Recupero dati

Gli esperti di BleepingComputer  hanno scovato un nuovo ransomware proveniente dal Brasile chiamato JeepersCrypt (nome che si rifà al film horror Jeepers Creepers). Il ransomware aggiunge l'estensione .jeepers ai file cifrati e visualizza la richiesta di riscatto mostrata in figura in cui l'utente viene avvisato che dispone di 24 ore di tempo per pagare il riscatto.
FIG 1 - Ransomware JeepersCrypt

Come recuperare i dati

Prima di procedere a decriptare i dati, consiglio di effettuare una scansione approfondita con un antivirus e un antimalware (come Malwarebytes) aggiornati.
Il recupero dei dati è possibile grazie al tool StupidDecrypter sviluppato da Michael Gillespie (Demonslay335) e scaricabile da https://download.bleepingcomputer.com/demonslay335/StupidDecrypter.zip

Il tool permette di decriptare file cifrati con le seguenti estensioni: .android, .anon, .crypted, .deria, .devil, .FailedAccess, .fucked, .Harzhuangzi, .haters, .jeepers, .killedXXX, .lock, .MIKOYAN, .Nazi, .powned, .SnakeEye, .xncrypt, _crypt0, _nullbyte.


Scompattare il file .zip ed avviare l'unico file eseguibile StupidDecrypter.exe


StupidDrecypter, recuperare i dati cifrati da JeepersCrypt
FIG 2 - StupidDrecypter, recuperare i dati cifrati da JeepersCrypt

Cliccare sul pulsante Select Directory e selezionare la cartella o il disco contenente i dati cifrati quindi cliccare su Decrypt per avviare il processo di recupero dati. I dettagli dell'operazione verranno indicati nel riquadro alla sinistra dei pulsanti inoltre, all'interno della cartella in cui risiede l'eseguibile del tool, verrà generato un file di log.

Il tool consente anche di eliminare i file cifrati selezionando l'apposita opzione dal menu Settings.


StupidDecrypter, Delete Encrypted Files
FIG 3 - StupidDecrypter, Delete Encrypted Files



martedì 25 aprile 2017

Windows 10: Regolare la trasparenza dell'App Switcher tramite il registro di sistema

In ambiente Windows 10, premendo la combinazione di tasti ALT+Tab, viene aperta la finestra dell'app switcher che elenca le finestre aperte e permette di passare dall'una all'altra tramite la pressione del tasto TAB
Windows 10, app switcher
FIG 1 - Windows 10, app switcher

La trasparenza della finestra dell'app può essere modificata agendo tramite il registro di sistema
  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare regedit seguito da invio per avviare l'editor del registro di sistema;
  • Posizionarsi sulla chiave
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
  • Creare una nuova sottochiave cliccando, con il tasto destro del mouse, sulla chiave Explorer e selezionando, dal menu contestuale, la voce Nuovo e quindi Chiave. Rinominare la nuova chiave in MultitaskingView.
  • Posizionarsi sulla nuova chiave creata e, allo stesso modo del passo precedente, creare una nuova sottochiave rinominandola in AltTabViewHost;

    Windows 10, chiavi di registro trasparenza app switcher
    FIG 2 - Windows 10, chiavi di registro trasparenza app switcher
  • All'interno della chiave AltTabViewHost creare un nuovo valore DWORD 32 bit e assegnargli il nome Grid_backgroundPercent. Cliccare 2 volte sul valore creato, in Base selezionare Decimale mente nella casella Dati valore inserire un valore da 0 a 100 che rappresenta la percentuale di opacità (al valore più basso corrisponderà una maggiore trasparenza). Per default in Windows 10 viene utilizzata una percentuale di opacità del 85%.
    Windows 10, app switcher valore Grid_backgroundPercent
    FIG 3 - Windows 10, app switcher valore Grid_backgroundPercent
Dal seguente link è possibile scaricare i file .reg per modificare la trasparenza dell'app switcher.
DOWNLOAD




martedì 18 aprile 2017

MS Exchange: Riparare una casella di posta danneggiata

A partire da Exchange 2010 SP1 è stato introdotto il cmdlet New-MailboxRepairRequest che consente di rilevare e correggere problemi presenti su una casella di posta. Il comando può essere eseguito su una specifica casella di posta oppure su un intero database.

La riparazione della casella/database avviene online: non è più necessario procedere al dismount del database per la riparazione. L'accesso alla casella viene interrotto solo durante la sua riparazione. Nel caso in cui il comando venga eseguito su un intero database, l'accesso viene interrotto solo sulla casella in fase di riparazione mentre le altre continueranno ad essere accessibili.

La sintassi  è la seguente:
New-MailboxRepairRequest -Mailbox <MailboxIdParameter> [-Archive <SwitchParameter>] -CorruptionType <MailboxCorruptionType[]> [-Confirm [<SwitchParameter>]]

oppure

New-MailboxRepairRequest -Database <DatabaseIdParameter> [-StoreMailbox <StoreMailboxIdParameter>] -CorruptionType <MailboxCorruptionType[]> [-Confirm [<SwitchParameter>]]


Parametri Principali


  • CorruptionType
    Tale parametro è obbligatorio e consente di specificare il tipo di problema che si intende rilevare e correggere. I valori accettati sono
    SearchFolder  : Verifica e ripara la cartella di ricerca.
    AggregateCounts : Verifica che i conteggi di aggregazione sulle cartelle riflettano valori corretti.
    ProvisionedFolder : Verifica e ripara la struttura delle cartelle.
    FolderView :Verifica e ripara le viste delle cartelle che non restituiscono il contenuto corretto.

    Per specificare più tipi di errori che si intendono correggere basta indicarli separandoli con una virgola.

  • Database
    È obbligatorio specificare tale parametro a meno che non venga indicata una determinata casella. Come è facile intuire, tale parametro permette di specificare il database su cui eseguire il comando. In tale caso la ricerca e riparazione verranno eseguite su tutte le caselle presenti all'interno del database specificato. Per questioni di prestazioni è possibile avere attiva una sola richiesta di riparazione database.
    Non è possibile utilizzare questo parametro insieme al parametro Mailbox.
    Al parametro va passato il nome del database oppure il GUID.

  • Mailbox
    Il parametro Mailbox specifica la casella di posta su cui eseguire questo comando. Il parametro accetta uno dei seguenti valori:
    GUID
    Nome distinto (DN)
    Dominio\Account
    Nome dell'entità utente
    LegacyExchangeDN
    Indirizzo SMTP
    Alias

    Non è possibile utilizzare tale parametro insieme al parametro Database.

  • Archive
    Il parametro Archive indica che la verifica e la riparazione vanno eseguite sull'archivio online associato alla casella di posta specificata. Se il parametro non viene indicato, verrà verificata e riparata solo la casella di posta principale.
    Non è possibile utilizzare questo parametro insieme al parametro Database.

  • StoreMailbox
    Tale parametro consente di specificare il GUID della mailbox che si desidera ripristinare. Va utilizzato con il parametro Database. Per conoscere il GUID di una casella di posta eseguire il cmdlet Get-MailboxStatistics.

  • DetectOnly
    Il parametro DetectOnly indica che il comando deve segnalare gli errori senza correggerli.


Esempi


Esempio 1
New-MailboxRepairRequest –Mailbox giovanni.lubrano@contoso.com –CorruptionType SearchFolder, AggregateCounts, ProvisionedFolder, FolderView
Il comando esegue la verifica e la riparazione della mailbox specificata (giovanni.lubrano@contoso.com). Come si nota dal comando, al parametro CorruptionType sono stati passati tutti i valori possibili separati da una virgola.
New-MailboxRepairRequest, richiesta di riparazione mailbox
FIG 1 - New-MailboxRepairRequest, richiesta di riparazione mailbox


Esempio 2
New-MailboxRepairRequest -Mailbox giovanni.lubrano@contoso.com -CorruptionType SearchFolder -DetectOnly
Con tale comando vengono rilevati e segnalati eventuali problemi sulla cartella di ricerca. Non viene effettuata alcuna riparazione della casella di posta.


Esempio 3
New-MailboxRepairRequest -Database DB01 -CorruptionType FolderView
Il comando permette di rilevare e riparare gli errori di tipo FolderView su tutte le caselle che risiedono sul database DB01.


Esempio 4
New-MailboxRepairRequest -Mailbox giovanni.lubrano@contoso.com -CorruptionType ProvisionedFolder, SearchFolder, AggregateCounts, Folderview -Archive
Il comando permette di rilevare e riparare tutti i tipi di errori sull'archivio online connesso alla casella di posta indicata.



Output

Il cmdlet New-MailboxRepairRequest non restituisce alcun output sull'esito dell'operazione. Una volta lanciato il comando questo viene accodato ad eventuali altre richieste. Per visualizzare informazioni sull'esito dell'operazione è possibile procedere in 2 modi: tramite il registro eventi di Windows oppure utilizzando il cmdlet Get-MailboxRepairRequest.
  • Tramite registro eventi
  • Per visualizzare l'esito dell'operazione tramite il registro eventi è necessario aprire il registro Applicazione del registro eventi sul Server Exchange dove risiede la casella di posta. All'interno del registro è necessario ricercare gli eventi che hanno come origine la dicitura MSExchangeIS Mailbox. All'interno dell'evento la mailbox viene indicata con il GUID. L'ID evento varia a seconda dell'esito dell'operazione:
    ID EventoDescrizione
    10044La richiesta di ripristino delle cassette postali non è riuscita per le cartelle di provisioning. Questo ID evento viene creato insieme all'ID evento 10049.
    10045La richiesta di ripristino del database non è riuscita per le cartelle di provisioning. Questo ID evento viene creato insieme all'ID evento 10049.
    10046La richiesta di ripristino delle cartelle di provisioning è stata completata.
    10047La richiesta di ripristino a livello di cassetta postale è stata avviata.
    10048La richiesta di ripristino del database o della cassetta postale è stata completata.
    10049La richiesta di ripristino del database o della cassetta postale non è riuscita perché Exchange ha rilevato un problema a livello di database o un'altra attività è in esecuzione nel database. Per risolvere il problema, fare quanto segue:
    1. Eseguire nuovamente il comando.
    2. Se il problema persiste, eseguire Eseutil (Utilità database Exchange Server) per verificare la presenza di errori nell'unità.
    3. Eseguire Microsoft Exchange Troubleshooting Assistant v1.1 (ExTRA) con la proprietà tagISINTEG. Salvare le informazioni di tracciamento del registro ExTRA e contattare il servizio di supporto Microsoft.
    10050Non è stato possibile eseguire la richiesta di ripristino nel database perché quest'ultimo non supporta la tipologia di errore specificata nel comando. Questo problema può verificarsi se si esegue il comando da un server su cui è installata una versione di Exchange successiva a quella del database analizzato.
    10051La richiesta di ripristino del database è stata annullata perché il database è stato disinstallato.
    10059La richiesta di ripristino a livello di database è stata avviata.
    10062Sono stati rilevati dati danneggiati. Controllare i dettagli nel registro di ripristino per individuare il tipo di errore e se è stato corretto.


  • Tramite Get-MailboxRepairRequest
    Con MS Exchange 2013 è stato introdotto il cmdlet Get-MailboxRepairRequest che consente di reperire informazioni sull'esito/stato di una richiesta di riparazione.
    La sintassi è molto semplice
    Get-MailboxRepairRequest -Identity <StoreIntegrityCheckJobIdParameter>
    Get-MailboxRepairRequest -Database <DatabaseIdParameter>
    Get-MailboxRepairRequest -Mailbox <MailboxIdParameter>

    Con il parametro Identity va indicato un GUID complesso generato nel momento della richiesta (Il formato è <DatabaseGuid>\<RequestGuid>\<JobGuid>) mentre con i parametri Mailbox e Database vanno indicati rispettivamente la mailbox e il database su cui è stata effettuata la richiesta di riparazione.
    Get-MailboxRepairRequest, reperire l'esito della richiesta di riparazione
    FIG 2 - Get-MailboxRepairRequest, reperire l'esito della richiesta di riparazione

    Per visualizzare maggiori dettagli è possibile formattare l'output con Format-List ad es.
    Get-MailboxRepairRequest -Mailbox giovanni.lubrano@contoso.com |fl

    GetMailboxRepairRequest, maggiori informazioni con Format-List
    FIG 3 - GetMailboxRepairRequest, maggiori informazioni con Format-List