martedì 7 luglio 2015

Kali Linux: Verificare i protocolli di cifratura utilizzati da un server su connessioni SSL/TLS tramite nmap

Conoscere l'elenco dei protocolli di cifratura supportati da un server può essere utile per scovare falle di sicurezza dovute all'utilizzo di protocolli obsoleti e/o vulnerabili.

Per elencare i protocolli di cifratura utilizzati da un server si può utilizzare lo script ssl-enum-ciphers tramite nmap. Da terminale di Kali Linux eseguire il comando:
nmap --script ssl-enum-ciphers -p 443 glubrano.com
sostituendo glubrano.com con il nome del server/dominio che si intende interrogare.

In output vengono elencati tutti i protocolli supportati sulle connessioni SSL/TLS. Lo script è piuttosto invasivo, avvia numerose connessioni SSLv3/TLS tentando ogni volta con un nuovo protocollo di cifratura ottenendo, in questo modo, l'elenco del protocolli supportati dal server. Per ciascun protocollo viene indicato anche il livello di sicurezza della connessione. Lo script, inoltre, mette in evidenza eventuali vulnerabilità note sui protocolli supportati dal server (come ad es. PODDLE, certificati firmati con un algoritmo debole come MD5, ecc).

ATTENZIONE:
Danneggiare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Protocolli di cifratura supportati
FIG 1 - Protocolli di cifratura supportati


lunedì 6 luglio 2015

Kali Linux: Testare le connessioni SSL/TLS tramite openssl

Al fine di testare la sicurezza dei propri server può essere utile poter verificare le connessioni SSL/TLS e porre rimedio ad eventuali falle di sicurezza trovate.

SSLv2 e SSLv3
Il protocollo SSL (Secure Socket Layer) è un protocollo aperto e non proprietario nato al fine di garantire la privacy delle comunicazioni su internet. La versione 1 del protocollo non fu mai rilasciata. Nel 1995 fu introdotto il protocollo SSLv2 e fu sostituito l'anno successivo da SSLv3 (RFC6101) che rimediava a diverse falle di sicurezza presenti nella seconda versione. Tuttavia anche il protocollo SSLv3 si è dimostrato vulnerabile ad alcuni attacchi, in particolare risulta vulnerabile all'attacco POODLE (Padding Oracle On Downgraded Legacy Encryption) tramite il quale un malintenzionato può rubare informazioni sensibili.

Per verificare se un host supporta ancora il protocollo SSLv2 o SSLv3 possiamo forzare l'utilizzo di tali protocolli su una connessione https con il comando openssl da una finestra terminale di Kali Linux:

openssl s_client -ssl2 -connect glubrano.com:443

openssl s_client -ssl3 -connect glubrano.com:443

Ovviamente bisogna sostituire glubrano.com con l'host che si intende testare.

Se la connessione va a buon fine allora i protocolli sono ancora supportati dall'host, in caso contrario si riceverà un errore di handshake.

Entrambi i protocolli andrebbero disabilitati per questioni di sicurezza.


openssl s_client -ssl3
FIG 1 - openssl s_client -ssl3


TLS
Il protocollo TLS (Transport Layer Security) rappresenta il successore di SSL. Nel 2009 è stata scoperta una vulnerabilità di questo protocollo causata da una non corretta gestione delle rinegoziazioni.
Per verificare se un server è affetto da questa vulnerabilità si può eseguire il seguente comando da terminale
openssl s_client -connect glubrano.com:443 < /dev/null

se all'interno dell'output è presente la scritta
Secure Renegotiation IS supported
il server è aggiornato e non vulnerabile

se, invece, troviamo la scritta
Secure Renegotiation IS NOT supported
il server è vulnerabile


TLS Secure Renegotiation IS supported
FIG 2 - TLS Secure Renegotiation IS supported

venerdì 3 luglio 2015

MS Exchange: Disabilitare una regola di posta in arrivo impostata sulla casella tramite EMS

Tramite Exchange Management Shell (EMS) è possibile disabilitare le regole di posta in arrivo definite sulla casella utilizzando il cmdlet Disable-InboxRule:
Disable-InboxRule -Mailbox <casella_di_posta> -Identity <nome_regola>

Il parametro Mailbox, oltre all'indirizzo della casella di posta, accetta anche l'Alias, il Display Name, il Dominio\account o il Distinguished Name (DN). Il parametro Identity, invece, è indispensabile e va indicato il nome della regola che si intende disabilitare.

ad es.
Disable-InboxRule -Mailbox GLUBRANO -Identity "Mailing List"
Disable-InboxRule -Mailbox giovanni.lubrano@contoso.com -Identity "Mailing List"


Disable-InboxRule
FIG 1 - Disable-InboxRule

Per evitare che appaia ogni volta la richiesta di conferma e forzare la disabilitazione della regola bisogna utilizzare i parametri Confirm e Force
Disable-InboxRule -Mailbox <casella_di_posta> -Identity <nome_regola> -Confirm:$false -Force

ad es.
Disable-InboxRule -Mailbox GLUBRANO -Identity "Mailing List" -Confirm:$false -Force

Per disabilitare tutte le regole presenti sulla casella di posta è possibile utilizzare il piping dei cmdlet Get-InboxRuleDisable-InboxRule:

Get-InboxRule -Mailbox <casella_di_posta>| Disable-InboxRule -Confirm:$false -Force

ad es.
Get-InboxRule -Mailbox GLUBRANO | Disable-InboxRule -Confirm:$false -Force


MS Word Quick Tip: Creare un elenco puntato tramite scorciatoia da tastiera

In MS Word è possibile creare un nuovo elenco puntato sfruttando la combinazione di tasti CTRL+SHIFT+L


MS Word elenco puntato tramite CTRL+SHIFT+L
FIG 1 - MS Word elenco puntato tramite CTRL+SHIFT+L

giovedì 2 luglio 2015

MS Excel Quick Tip: Aggiungere una riga o una colonna vuota tramite tastiera in MS Excel 2010-2013

Per aggiungere una riga o una colonna in MS Excel (2010-2013) tramite la tastiera è necessario attivare la modalità compatibilità che abilita le scorciatoie da tastiera delle precedenti versioni del programma. Per abilitare tale modalità è necessario premere la combinazione ALT+I (anche non contemporaneamente). Il popup mostrato in FIG 1 indicherà che la funzione è attiva.
FIG 1 - Excel ALT+I

A questo punto per aggiungere una nuova riga premere R mentre per aggiungere una nuova colonna premere C. Per annullare premere ESC.
Se le righe/colonne da aggiungere sono più di una, si può ripetere la combinazione oppure premere il tasto F4 che ripete l'ultimo comando eseguito.

mercoledì 1 luglio 2015

Windows Quick Tip: Visualizzare l'elenco dei driver tramite prompt dei comandi

Per visualizzare l'elenco dei driver presenti sulla workstation è possibile lanciare il comando driverquery dal prompt dei comandi


driverquery
FIG 1 - driverquery
Per maggiori informazioni possiamo lanciare il comando con l'opzione /V come indicato di seguito
driverquery /v

data la mole di informazioni visualizzate con l'opzione /v, possiamo salvare l'output in un file con il seguente comando

driverquery /v >drivers.txt

Aprendo il file con un editor di testo, avremo maggiori informazioni per ciascun driver presente sulla macchina.
driverquery /v
FIG 2 - driverquery /v
Se non si intende utilizzare il prompt dei comandi è possibile utilizzare tool di terze parti come l'ottimo DriverView della Nirsoft di cui ho parlato nell'articolo: Visualizzare i driver caricati da Windows: DriverView



martedì 23 giugno 2015

Windows Quick Tip: Network Connectivity Status Indicator

A partire da Windows Vista e Windows Server 2008, Microsoft ha introdotto una nuova funzionalità che avvisa gli utenti in caso di problemi di accesso ad Internet con il messaggio Connettività Limitata. Tale funzione prende il nome di Network Connectivity Status Indicator (NCSI) e fa parte del servizio Network Location Awareness (NLA) che ha il compito di determinare il tipo di rete a cui la workstation è connessa.

Quando viene rilevata una connessione di rete, NCSI esegue le seguenti verifiche:
  • Esegue una query del DNS per il sito www.msftncsi.com
  • Esegue una richiesta HTTP GET per il contenuto del file http://www.msftncsi.com/ncsi.txt. Il file contiene la stringa Microsoft NCSI
  • Esegue una query del DNS per dns.msftncsi.com aspettandosi come risultato l'indirizzo IP 131.107.255.255

Questo processo prende il nome di Active probing. Se le verifiche terminano con successo allora NCSI indica che la workstation dispone di un accesso ad Internet altrimenti appare un messaggio di connettività limitata e un icona triangolare gialla con punto esclamativo sulla connessione di rete.

Per maggiori dettagli sul funzionamento di NCSI possiamo fare riferimento al link: https://technet.microsoft.com/en-us/library/cc766017%28v=WS.10%29.aspx

Come indicato da Microsoft sulla pagina sopra indicata, la comunicazione con il server NCSI non viene criptata inoltre i log di IIS su www.msftncsi.com contengono informazioni relative all'accesso in particolare data, ora e indirizzo IP. Questo può far storcere il naso a più di un esperto di sicurezza.

Disabilitare NCSI tramite registro di sistema
La stessa Microsoft ci indica un modo per impedire a NCSI di collegarsi ad Internet agendo tramite il registro di sistema:
  • Dal registro di sistema (regedit.exe) accedere alla chiave
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet
    qui sono contenute le impostazioni di NCSI tra cui sito da contattare (www.msftncsi.com), server DNS (dns.msftncsi.com) con relativo IP (131.107.255.255)
  • Modificare il valore EnableActiveProbing impostandolo a 0
  • Riavviare il sistema operativo
NCSI Registro di sistema
FIG 1 - NCSI Registro di sistema

Disabilitare NCSI tramite group policy
Se intendiamo inibire l'accesso ad Internet da parte di NCSI agendo tramite l policy:
  • Da Start-> Esegui (WIN+R) digitare gpedit.msc
  • Posizionarsi su Configurazione computer->Modelli amministrativi->Sistema->Gestione comunicazioni Internet->Impostazioni di comunicazione Internet
  • Attivare la voce Disattiva test attivi dell'indicatore di stato della connettività di rete Windows

NCSI Group Policy
FIG 2 - NCSI Group Policy


Volendo possiamo creare un nostro server da utilizzare con NCSI. una volta salvato il file ncsi.txt sul nostro server possiamo modificare le impostazioni NCSI tramite registro di sistema o tramite group policy

Impostare un server personale per NCSI  tramite registro di sistema
  • Dal registro di sistema posizionarsi sulla chiave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet  e modificare i seguenti valori: 
    ActiveWebProbeHost sostituire www.msftncsi.com con l'indirizzo web host che si intende utilizzare. 

    ActiveWebProbeHostV6 se si utilizza IPv6 è necessario modificare anche tale valore, valorizzandolo con l'indirizzo IPv6 del nostro server. 
    ActiveDnsProbeContent valorizzarlo con l'indirizzo IP del server DNS relativo al dominio che si sta utilizzando. 
    ActiveDnsProbeContentV6 assegnargli il valore dell'indirizzo IPv6 del server DNS relativo al dominio che si sta utilizzando.
    EnableActiveProbing assicurarsi che EnableActiveProbing è valorizzato ad 1.
Impostare un server personale per NCSI  tramite group policy
  • Eseguire gpedit.msc
  • posizionarsi su Configurazione computer->Modelli amministrativi->Rete->Indicatore stato connettività di rete
  • Modificare le seguenti voci
    Specifica indirizzo host probe DNS aziendale 
    Questa impostazione dei criteri consente di specificare l'indirizzo previsto del nome host utilizzato per il probe DNS 
    Specifica nome host probe DNS aziendale 
    Questa impostazione dei criteri consente di specificare il nome host di un PC notoriamente connesso alla rete aziendale. 
    Specifica elenco prefissi di sito aziendali 
    Questa impostazione dei criteri consente di specificare l'elenco dei prefissi di siti aziendali IPv6 da monitorare per la connettività aziendale. 
    Specifica URL probe sito Web aziendale 
    Questa impostazione dei criteri consente di specificare l'URL del sito Web aziendale su cui viene eseguito un probe attivo. 
    Specifica URL per determinazione percorso di dominio 
    Questa impostazione dei criteri consente di specificare l'URL HTTPS URL del sito Web aziendale utilizzato dai client per determinare il percorso corrente del dominio (vale a dire, se il computer si trova all'interno o all'esterno della rete aziendale).