venerdì 26 gennaio 2018

Kali Linux: Scovare l'indirizzo IP del server protetto da Cloudflare

Milioni di siti web, al fine di proteggersi da attacchi DDos (Distributed Denial of Service) e aumentare la velocità di accesso, utilizzano il servizio Cloudflare.
Cloudflare agisce in maniera analoga ad un CDN (Content Delivery Network) ma molto più semplice da configurare. Il sistema si interpone tra il server che ospita il sito web e il visitatore filtrando gli utenti indesiderati (con conseguente risparmio di banda e risorse) e aumentando la sicurezza.
Per utilizzare Cloudflare è necessario registrarsi sul sito www.cloudflare.com, selezionare il servizio desiderato (quello per siti/blog personali è gratuito) quindi impostare i nameserver di Cloudflare come authoritative nameservers per il proprio dominio (generalmente questa operazione va effettuata dal pannello di gestione del dominio messo a disposizione dal proprio registrar).

Cloudflare dispone di numerosi data center sparsi per il mondo. Attraverso una tecnologia proprietaria denominata Anycast e attraverso i propri nameserver, Cloudflare dirotta tutte le richieste di accesso al sito al data center più vicino al visitatore. Il data center verifica l'attendibilità del visitatore analizzandone diverse caratteristiche tra cui l'indirizzo IP, la risorsa richiesta, il numero di richieste, la loro frequenza, ecc. Solo nel caso in cui il visitatore venga ritenuto affidabile, Cloudflare provvede a prelevare i dati contenuti nella cache aggiornata e, dopo aver applicato alcune ottimizzazioni, li restituisce al visitatore in maniera del tutto trasparente. 
Cloudflare
FIG 1 - Cloudflare
I visitatori non verranno mai in "contatto" con l'indirizzo IP del server che ospita il sito web.

Purtroppo, causa imperizia di alcuni amministratori che non limitano l'accesso ai propri server solo agli indirizzi IP di Cloudflare, molti siti web rimangono vulnerabili ed esposti ad attacchi. In questi casi, infatti, l'indirizzo pubblico del server "origine" rimane esposto e può essere individuato con l'utilizzo di alcuni tool come la piattaforma CensysCloudFlair.

Di seguito verrà mostrato come individuare l'indirizzo IP pubblico di un server "origine" vulnerabile protetto da Cloudflare utilizzando Kali Linux.

ATTENZIONE:
Danneggiare o violare 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.


  • Posizionarsi sul sito https://censys.io e, se non si dispone già di un'account, crearne uno cliccando su Signup e seguendo le istruzioni a video. Al termine eseguire il logon con il proprio account.
    Sito web Censys.io
    FIG 2 - Sito web Censys.io
  • Posizionarsi sulla pagina https://censys.io/account/api e prendere nota di API ID e Secret;

    Censys, API ID e Secret
    FIG 3 - Censys, API ID e Secret
  • Aprire una finestra terminale di Kali Linux e digitare i seguenti comandi
    export CENSYS_API_ID=<API_ID_Assegnato>
    export CENSYS_API_SECRET=<API_Secret_Assegnato> 

    sostituendo 
    <API_ID_Assegnato><API_Secret_Assegnato> con i valori API ID e Secret ottenuti nel passo precedente;
    Kali Linux, impostare variabili d'ambiente CENSYS_API_ID e CENSYS_API_SECRET
    FIG 4 - Kali Linux, impostare variabili d'ambiente CENSYS_API_ID e CENSYS_API_SECRET
  • Clonare il repository digitando, nella finestra terminale, il seguente comando
    git clone https://github.com/christophetd/cloudflair.git
  • Kali Linux, clonazione repository cloudflair
    FIG 5 - Kali Linux, clonazione repository cloudflair

  • Installare le dipendenze del pacchetto eseguendo i comandi 

    cd cloudflair
    pip install -r requirements.txt
  • Kali Linux, installazione dipendenze di CloudFlair
    FIG 6 - Kali Linux, installazione dipendenze di CloudFlair

  • Per individuare l'indirizzo IP del server "origine" eseguire il comando
    python cloudflair.py myvulnerable.site
    sostituendo myvulnerable.site con l'indirizzo del sito web che si intende verificare. L'output sarà simile a quello mostrato in FIG 7 e sono evidenziati gli indirizzi IP dei server "origine".
    Output CloudFlair
    FIG 7 - Output CloudFlair






martedì 23 gennaio 2018

Windows 10: Modificare il livello batteria di riserva

Chi lavora con un portatile sa bene che quando la batteria scende al di sotto di una determinata soglia, il sistema operativo entra in modalità sospensione per evitare la perdita dei dati causata da uno spegnimento improvviso. Il livello della batteria raggiunto il quale Windows entra in sospensione può essere modificato agendo tramite le impostazioni presenti nel Pannello di controllo:
  • Avviare il Pannello di controllo (WIN+R e digitare control seguito da invio) e cliccare su Hardware e suoni;
    Windows 10, Pannello di Controllo
    FIG 1 - Windows 10, Pannello di controllo
  • Nella finestra successiva cliccare su Opzioni risparmio energia;
    Windows 10, Pannello di controllo - Hardware e suoni
    FIG 2 - Windows 10, Pannello di controllo > Hardware e suoni
  • Cliccare su Modifica impostazioni combinazione relativo all'elemento attivo;

    Windows 10, Pannello di controllo > Hardware e suoni > Opzioni risparmio energia
    FIG 3 - Windows 10, Pannello di controllo > Hardware e suoni > Opzioni risparmio energia
  • Cliccare sul collegamento Cambia impostazioni avanzate risparmio energia;
    Windows 10, Modifica combinazioni per il risparmio di energia
    FIG 4 - Windows 10, Modifica combinazioni per il risparmio di energia
  • Nella finestra Opzioni risparmio energia, scorrere l'elenco e cliccare sulla sezione Batteria. All'interno di tale sezione, nell'elenco ad albero, cliccare sull'elemento Livello batteria di riserva. I due valori, relativi all'alimentazione a batteria e da rete elettrica, rappresentano la percentuale residua di carica in corrispondenza della quale si avvia la modalità di alimentazione di riserva/sospensione. Personalizzare tali valori in base alle proprie esigenze.

    Windows 10, Opzioni risparmio energia
    FIG 5 - Windows 10, Opzioni risparmio energia


mercoledì 17 gennaio 2018

MS Exchange: Ricerca all'interno delle Public Folders utilizzando EMS

Per recuperare gli attributi di una cartella o un insieme di cartelle pubbliche in Exchange Management Shell (EMS) è disponibile il cmdlet Get-PublicFolder.
Il cmdlet può essere utilizzato da solo oppure insieme ad uno o più parametri di seguito elencati.

Parametri principali


GetChildren
Permette di specificare se restituire solo gli elementi figlio della cartella specificata da -Identity. Non può essere utilizzato con il parametro Recurse.

Identity
Il parametro Identity permette di specificare una determinata public folder. Consente di indicare anche il path utilizzando il formato \TopLevelPublicFolder\PublicFolder.

Recurse 
Il parametro recurse specifica che il comando restituirà la cartella pubblica indicata e tutti i sui figli.

Mailbox
Il parametro Mailbox consente di specificare l'identità della casella di posta di cartelle pubbliche gerarchica. Il parametro accetta l'Alias, il Display Name, il Distinguished Name (DN) o il Domain\Account.

ResultSize
Con ResultSize è possibile specificare il numero massimo di risultati da restituire. Il valore massimo predefinito è 10.000. Se non si intende impostare alcun limite al numero di risultati restituiti, al parametro va passato il valore Unlimited. Resultsize può essere specificato solo con i parametri Recurse o GetChildren.


Esempi


Esempio 1
Get-PublicFolder
Il cmdlet senza parametri restituisce la cartella pubblica radice (IPM_SUBTREE).

Esempio 2
Get-PublicFolder -Identity "\Agenzia1\Documenti\Legale"
Il comando restituisce la cartella pubblica Legale presente in \Agenzia1\Documenti\. Per visualizzare anche il contenuto delle sottocartelle di Legale è possibile utilizzare il parametro -Recurse come indicato di seguito
Get-PublicFolder -Identity "\Agenzia1\Documenti\Legale" -Recurse

Esempio 3
Get-PublicFolder -Mailbox "Ufficio1" -ResidentFolders
Restituisce le cartelle pubbliche che risiedono nella cartella pubblica della casella Ufficio1.

Esempio 4
Get-PublicFolder -recurse -resultsize unlimited | where {$_.name -like "sala*"}
Ricerca le cartelle il cui nome inizia per sala all'interno delle cartelle pubbliche.


Get-PublicFolder, ricerca cartelle pubbliche
FIG 1 - Get-PublicFolder, ricerca cartelle pubbliche




giovedì 11 gennaio 2018

Kali Linux: Attivare una VPN in pochi minuti con VPNBOOK

La VPN (Virtual Private Network) è una rete di telecomunicazioni privata che può, tra le altre cose, essere utilizzata per nascondere il proprio indirizzo IP pubblico e proteggere la nostra privacy oppure per sbloccare qualche sito non raggiungibile dal nostro paese.
In questo articolo mi limiterò a indicare i passaggi per attivare in pochi minuti una VPN in Kali Linux utilizzando VPNBOOK, un servizio gratuito che consente  di usare una VPN free con OpenVPN o PPTP.

Prima di procedere con la configurazione/attivazione della VPN, prendere nota del proprio indirizzo IP pubblico sfruttando uno dei tanti servizi accessibili tramite browser che si trovano in rete (ad es. www.mio-ip.it).

Avviare Firefox e connettersi al sito www.vpnbook.com, cliccare su Free VPN e scegliere tra una delle VPN proposte nell'elenco (FIG 1). In fondo a tale pagina sono indicate la username e la password che serviranno in seguito per l'attivazione della VPN (FIG 2).
VPNBOOK, Free VPN
FIG 1 - VPNBOOK, Free VPN


VPNBOOK, credenziali per la VPN Free
FIG 2 - VPNBOOK, credenziali per la VPN Free

Cliccando sulla VPN desiderata apparirà la finestra di download di un file .zip. Salvare il file in locale.
VPNBOOK, salvataggio file della VPN
FIG 3 - VPNBOOK, salvataggio file della VPN
Una volta scaricato il file .ZIP è necessario scompattarlo. Cliccarci su con il tasto destro del mouse e, dal menu contestuale, selezionare Extract Here.
VPNBOOK, estrazione del file VPN
FIG 4 - VPNBOOK, estrazione del file VPN

Accedere alla cartella appena creata, cliccare con il tasto destro del mouse su una parte vuota della finestra e selezionare Open in Terminal.
Kali Linux, Avvio del Terminale
FIG 5 - Kali Linux, Avvio del Terminale

Digitare il comando sudo openvpn seguito dal nome del file .ovpn che si intende caricare.
Ad es.
sudo openvpn vpnbook-euro1-udp25000.ovpn
Kali Linux, Avvio OpenVPN
FIG 6 - Kali Linux, Avvio OpenVPN

Alla richiesta dell'utenza e della password inserire quelle indicate in fondo alla pagina VPNBOOK (FIG 2).
VPNBOOK, inserimento credenziali della VPN
FIG 7 - VPNBOOK, inserimento credenziali della VPN

Dopo qualche secondo la VPN risulterà attivata.
VPN free attivata
FIG 8 - VPN free attivata
A questo punto verificando nuovamente l'indirizzo IP pubblico rilevato dai siti web si noterà che è diverso da quello di partenza.




martedì 9 gennaio 2018

Kali Linux: Sfruttare vulnerabilità di Intel Active Management Technology per accedere ad un sistema remoto

Introduzione

Presentata per la prima volta all'Intel Developer Forum Fall del 2004, Active Management Technology (AMT) consente, tramite le funzionalità integrate e applicazioni di gestione e sicurezza di terze parti, la gestione remota del sistema permettendo di aggiornarlo, ripararlo e proteggerlo. Tale tecnologia, inclusa nei processori Intel Core con Intel vPro e in determinati processori Intel Xeon, opera a livello firmware e consente di gestire un sistema remoto indipendentemente dal sistema operativo installato anche se è spento o se presenta componenti guasti (ad. es il disco fisso).

Intel Active Management Technology (AMT), Intel Standard Manageability (ISM) e Intel Small Business Technology con versioni del firmware dalla 6.x alla 11.6 presentano una grave falla che permette di prendere il controllo dei sistemi gestiti con tali tecnologie.  La vulnerabilità non è presente sui PC consumer, sui server Intel che utilizzano Intel Server Platform Services (Intel SPS), sui processori Intel Xeon E3 e E5 che utilizzano il firmware Intel SPS. Maggiori dettagli sono disponibili sulla pagina messa a disposizione da Intel.


Come funziona

L'accesso da remoto a Intel Active Management Technology avviene attraverso una semplice interfaccia web gestita da un servizio in ascolto sulle porte 16992 e 16993. All'accesso vengono generalmente richieste utenza e password che vanno a costruire la passphrase inviata impiegando lo standard HTTP Digest Authentication: all'utenza e alla password viene applicata una funzione hash utilizzando un nonce del firmware AMT insieme ad alcuni bit di metadata. La "response" venuta fuori da tale operazione viene inviata all'AMT, analizzata da quest'ultimo e, se ritenuta valida, l'utente verrà autorizzato all'accesso all'interfaccia di gestione. La vulnerabilità consente di avere accesso al AMT inviando una response vuota.
Decompilando in C il firmware Intel si nota un codice simile al seguente che chiarisce come sia possibile ottenere l'accesso al sistema inviando una response vuota
if(strncmp(computed_response, user_response, response_length))
 deny_access();

L'idea di fondo è quella di confrontare la response dell'utente (user_response) con quello che si attende il sistema (computed_response) e verificare se siano identiche o meno. La funzione strncmp limita il confronto al numero di caratteri indicato da response_length. Il problema nasce dal fatto che response_length viene calcolato sulla lunghezza di user_response pertanto fornendo una response vuota (lunghezza 0) non avviene alcun confronto e il sistema autorizza l'accesso.

Tale vulnerabilità è facilmente sfruttabile utilizzando un proxy, o un analogo editor di traffico, che consente al malintenzionato di inviare una response vuota. Di seguito mostrerò i passaggi, a scopo didattico, per accedere da remoto a AMT bypassando l'autenticazione utilizzando Kali Linux che integra già tutto il necessario.

ATTENZIONE:
Danneggiare o violare 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.



Dimostrazione di un attacco

Innanzitutto è necessario disporre dell'indirizzo IP del sistema da attaccare. Tramite il motore di ricerca SHODAN  è possibile ricercare i sistemi vulnerabili a questo tipo di attacco.
Motore di ricerca Shodan
FIG 1 - Motore di ricerca Shodan


Avviare Firefox e nella barra degli indirizzi digitare l'indirizzo del sistema a cui vogliamo connetterci seguito dal numero di porta :16992.
Ad es.
http://192.168.1.1:16992
Apparirà la schermata di logon indicata in FIG 2
Schermata di Log On Intel Active Management Technology
FIG 2 - Schermata di Log On Intel Active Management Technology

Per raggiungere lo scopo verranno utilizzare alcune funzioni della suite di sicurezza Burp Suite, in particolare verranno utilizzare le funzioni Proxy, Intercept al fine di intercettare e modificare al volo i dati che vengono inviati al server. Avviare Burp Suite cliccando sull'apposita icona.
Kali Linux, Burp Suite
FIG 3 - Kali Linux, Burp Suite

Cliccare sul pulsante Next.
Burp Suite
FIG 4 - Burp Suite

Cliccare su Start Burp.
Burp Suite, Start Burp
FIG 5 - Burp Suite, Start Burp

Selezionare la scheda Proxy quindi assicurarsi che nella scheda Intercept sia presente la dicitura Intercept is on.


Burp Suite, Proxy, Intercept
FIG 6 - Burp Suite, Proxy, Intercept


Ritornare a Firefox e impostare il proxy come mostrato in FIG 7 (dal menu hamburger, Preferences, Advanced, selezionare Network quindi cliccare sul pulsante Settings).
Firefox, impostazione Proxy
FIG 7 - Firefox, impostazione Proxy


Nella pagina http://192.168.1.1:16992 cliccare sul pulsante Log on.
Ritornare a Burp Suite e cliccare sul pulsante Forward.
Burp Suite, intercettazione
FIG 8 - Burp Suite, intercettazione

In Firefox viene aperta la finestra di richiesta credenziali, inserire admin come user name e password a caso quindi cliccare su OK.
Intel Active Management Technology, inserimento credenziali
FIG 9 - Intel Active Management Technology, inserimento credenziali

Ritornare in Burp Suite, eliminare il valore contenuto in response e cliccare su Forward per inviare i dati modificati al server.
Burp Suite, modifica della response
FIG 10 - Burp Suite, modifica della response
Burp Suite, modifica della response
FIG 11 - Burp Suite, modifica della response
A questo punto siamo all'interno dell'interfaccia di gestione AMT. Possiamo creare un nostro account amministratore con una nostra password per gestire il sistema senza passare per Burp Suite o utilizzare programmi di terze parti come MeshCommander per prendere il controllo remoto della macchina.
Interfaccia Intel Active Management Technology
FIG 12 - Interfaccia Intel Active Management Technology
MeshCommander
FIG 13 - MeshCommander



Come Proteggersi

Intel, attraverso la pagina https://newsroom.intel.com/news/important-security-information-intel-manageability-firmware/ fornisce un tool per verificare se il proprio sistema è vulnerabile e una guida su come intervenire per ridurre i rischi derivati.
Se l'aggiornamento del firmware non è possibile si può pensare di disabilitare l'AMT sul sistema utilizzando tool di terze parti come quello scaricabile dal seguente link https://github.com/bartblaze/Disable-Intel-AMT







lunedì 4 dicembre 2017

MS Office: Disabilitare l'accelerazione grafica hardware in Office 2013/2016

In Office 2013 e successivi viene utilizzato un metodo di visualizzazione grafica del contenuto e dell'interfaccia utente più efficiente che sfrutta l'accelerazione grafica hardware gestita dal sistema operativo. Tale funzionalità è strettamente legata al driver della scheda video e, in alcuni contesti, può essere la causa di continui crash delle applicazioni Office.
L'accelerazione grafica hardware può essere disabilitata sia tramite interfaccia grafica sia intervenendo all'interno del registro di sistema.


Metodo 1: Disabilitazione Accelerazione grafica hardware tramite GUI

  • Avviare un'applicazione Office, ad esempio Word, e creare un documento vuoto;
  • Dal menu File selezionare Opzioni;
  • Selezionare Impostazioni Avanzate quindi, sul lato destro della finestra, scorrere l'elenco fino a trovare la sezione Visualizzazione;
  • All'interno di tale sezione selezionare la casella Disattiva accelerazione grafica hardware e cliccare sul pulsante OK. L'accelerazione grafica hardware verrà disattivata anche nelle altre applicazioni Office.

    Office, Disattiva accelerazione grafica hardware
    FIG 1 - Office, Disattiva accelerazione grafica hardware



Metodo 2: Disabiltiazione Accelerazione grafica hardware tramite 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\Office\XX.0\Common\Graphics 
    dove al posto di XX va indicata la versione di office. 

    Ad esempio 

    Office 2013 

    HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Graphics 

    Office 2016 

    HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common
    \Graphics
  • Creare, se non presente, un valore DWORD, nominarlo in DisableHardwareAcceleration e valorizzarlo ad 1.
    Office, Disattiva accelerazione grafica hardware tramite Editor del Registro di sistema
    FIG 2 - Office, Disattiva accelerazione grafica hardware tramite Editor del Registro di sistema


Di seguito è possibile scaricare i file .reg che permettono di abilitare/disabilitare l'accelerazione grafica hardware

mercoledì 8 novembre 2017

MS Exchange: Visualizzare lo stato delle code dei messaggi utilizzando EMS

Exchange Management Shell mette a disposizione il cmd-let Get-Queue per visualizzare lo stato delle code dei messaggi relative ai server mailbox e di trasporto. Il cmd-let è utile per verificare che il flusso dei messaggi all'interno dell'organizzazione non presenti intoppi o colli di bottiglia evidenziando il numero di email ancora da processare. La sintassi del comando è la seguente:

Get-Queue [-Filter <String>] [-Server <ServerIdParameter>]
oppure
Get-Queue [-Identity <QueueIdentity>]

Parametri principali


Exclude
Permette di specificare il tipo di code da escludere dai risultati. Accetta le proprietà InternalExternal o una delle proprietà DeliveryType (DeliveryAgentDnsConnectorDeliveryNonSmtpGatewayDeliverySmartHostConnectorDelivery) per filtrare le code.

Include
Consente di specificare il tipo di code da includere nei risultati. Accetta le stesse proprietà viste per Exclude.

Filter
Il parametro Filter viene utilizzato per specificare una o più code utilizzando la sintassi del filtro OPath: nome di una proprietà della coda seguito da un operatore di confronto e da un valore. Ad es. {NextHopDomain -eq "contoso.com"}

Identity
Tale parametro consente di specificare la coda da interrogare. Al parametro va passata in input la coda da visualizzare nel formato Server\coda, ad es. Server1\contoso.com



Esempi


Esempio 1
Get-Queue | FL
Visualizza informazioni dettagliate su tutte le code.

Esempio 2
Get-Queue -Exclude Internal
Visualizza solo le code che non hanno il valore Internal all'interno della proprietà NextHopCategory

Esempio 3

Get-Queue -Filter {MessageCount -gt 50}
Permette di elencare solo le code che contengono più di 50 messaggi.

Esempio 4

Get-Queue Server1\contoso.com | FL
Visualizza informazioni dettagliate sulla coda esistente sul server Server1.