mercoledì 8 luglio 2015

Google Chrome: Disattivare l'audio di una singola scheda

Da tempo Google Chrome permette di individuare le schede, all'interno del browser, su cui è attivo l'audio tramite un'icona a forma di altoparlante accanto al tasto di chiusura (a destra dell'etichetta della scheda). 
Nelle ultime versioni di Chrome è possibile disabilitare l'audio di una singola scheda ma tale funzione va attivata manualmente (al momento non è attiva di default).
Prima di procedere verificare che la propria versione di Google Chrome sia aggiornata:
  • Cliccare sul pulsante Personalizza e controlla Google Chrome (quello con 3 righe orizzontali);

    Personalizza e controlla Google Chrome
    FIG 1 - Personalizza e controlla Google Chrome
  • Selezionare Informazioni su Google Chrome e verificare la versione attuale e l'eventuale presenza di aggiornamenti da scaricare;

    Informazioni Google Chrome
    FIG 2 - Informazioni Google Chrome
In alternativa è possibile digitare, nella barra degli indirizzi, chrome://chrome per accedere alla pagina di informazioni di Google Chrome.

Una volta verificato che la propria versione di Google Chrome è aggiornata si può procedere all'attivazione della funzione:
  • Aprire la pagina di funzioni sperimentali digitando, nella barra degli indirizzi, chrome://flags
    Attiva il controllo UI di disattivazione dell'audio delle schede
    FIG 3 - Attiva il controllo UI di disattivazione dell'audio delle schede
  • all'interno della pagina individuare la voce Attiva il controllo UI di disattivazione dell'audio delle schede e attivarla cliccando sul collegamento Abilita.
A questo punto la funzione è attiva. Per disattivare/riattivare l'audio di una singola scheda basta cliccare sulla relativa icona a forma di altoparlante 
Disabilita l'audio su scheda
FIG 4 - Disabilita l'audio su scheda

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). 


lunedì 22 giugno 2015

Kali Linux: Host discovering tramite Nmap

In questo nuovo articolo riguardante Kali Linux illustrerò come effettuare un semplice host discovering per trovare host attivi in una rete utilizzando l'utilissimo e versatile Nmap.

Se interessa solo verificare le postazioni attive all'interno della rete possiamo utilizzare l'opzione -sn di Nmap. Tale tecnica è conosciuta anche come ping scan ed è tra le meno invadenti consentendo una prima mappatura della rete senza attrarre molta attenzione da parte degli amministratori.

Spesso questa funzionalità di Nmap viene utilizzata anche dagli amministratori di sistema per verificare gli host disponibili sulla rete o tenere sotto osservazione la disponibilità di un server. In questo caso si parla di ping sweep che risulta più affidabile di un ping all'indirizzo broadcast in quanto molti host non rispondono alle richieste di questa categoria.

L'opzione -sn invia un pacchetto ICMP (Internet Control Message Protocoldi tipo echo request, un pacchetto TCP SYN alla porta 443, un pacchetto TCP ACK alla porta 80 e un pacchetto ICMP di tipo timestamp request.

Per effettuare la scansione dei primi 10 ip della rete 192.168.0.0 possiamo utilizzare il comando
nmap -sn 192.168.0.0-9


Nmap -sn
FIG 1 - Nmap -sn
Come è possibile vedere dalla FIG 1, Nmap fornisce informazioni sugli host che hanno risposto mettendo in evidenza l'IP, il MAC address e il produttore della scheda di rete.

Per maggiori dettagli nei risultati possiamo aggiungere l'opzione -v
nmap -sn 192.168.0.0-9 -v

venerdì 19 giugno 2015

Kali Linux: MAC address spoofing con Macchanger

Il MAC address, acronimo che sta per  Media Access Controlconosciuto anche come indirizzo fisico, è un codice di 48 bit che viene assegnato in modo univoco dal produttore ad ogni scheda di rete (ethernet o Wi-Fi) prodotta al mondo e viene utilizzato dal livello datalink per accedere al livello fisico secondo lo standard ISO/OSI.
I 48 bit (6 byte) del MAC address sono suddivisi in 12 cifre esadecimali: le prime 6 cifre individuano il produttore e vengono dette OUI (Organizationally Unique Identifier), mentre le altre 6 rappresentano il numero di serie della scheda. Generalmente l'indirizzo MAC viene scritto suddividendo le cifre in 6 ottetti separati da un trattino (es. E0-3F-49-A0-67-2C).

Dopo questa breve premessa vediamo come modificare il MAC address utilizzando macchanger in Kali Linux.

Il primo passo è quello di disabilitare l'interfaccia di rete a cui si intende modificare il MAC address. Nei comandi mostrati di seguito andremo ad agire sull'interfaccia eth0, ovviamente nel caso in cui volessimo intervenire su una diversa interfaccia basta sostituire eth0 con il nome dell'interfaccia desiderata. 
Dalla finestre terminale digitare il seguente comando
ifconfig eth0 down
Se non viene effettuato questo passaggio, tentando di assegnare un nuovo MAC address può essere visualizzato il messaggio di errore
ERROR: Can’t change MAC: interface up or not permission: Cannot assign requested address

Per modificare il MAC address con uno nuovo generato in maniera casuale, eseguire il comando
macchanger -r eth0

Macchanger mostrerà 3 MAC address: Permanent, Current e New
  • Permanent
    Il MAC address Permanent è quello che viene ripristinato al riavvio del sistema e può essere forzato manualmente eseguendo, dalla finestra terminale, il comando
    macchanger --permanent eth0
  • Current
    Rappresenta il MAC address attualmente in uso.
  • New
    Indica il nuovo MAC address. Se è stato eseguito il comando macchanger -r eth0 vedremo il nuovo MAC address che verrà assegnato all'interfaccia di rete.
Macchanger
FIG 1 - Macchanger

É possibile impostare uno specifico MAC address tramite il comando
macchanger -m [MAC Address] eth0
dove al posto di [MAC Address] va indicato il nuovo MAC address da assegnare all'interfaccia. Il nuovo MAC va indicato suddividendo le cifre in 6 ottetti separati da ":" ad es.
macchanger -m E0:3F:49:A1:68:C0 eth0

Una volta modificato il MAC address è necessario riattivare l'interfaccia di rete eseguendo
ifconfig eth0 up

Per visualizzare l'attuale MAC address impostato sull'interfaccia  digitare
macchanger --show eth0

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.


giovedì 18 giugno 2015

Kali Linux: Verificare tramite Nmap se il sistema è vulnerabile a Heartbleed

Heartbleed è il nome dato ad un errore di programmazione CVE-2014-0160  che affligge la libreria OpenSSL (dalla versione 1.0.1 alla 1.0.1f incluse) utilizzata per proteggere le comunicazioni sensibili e per l'autenticazione. 
La falla, resa pubblica il 7 aprile 2014, è stata scoperta indipendentemente da due gruppi di ricercatori: dal gruppo di Codenomicon (Riku, Antti e Matti) e Neel Mehta di Google Security.
Questa vulnerabilità consente ad un aggressore di acquisire dati riservati trasmessi dai siti che usano OpenSSL o spacciarsi per un sito attendibile utilizzando HTTPS e facendo visualizzare al browser della vittima l'icona del lucchetto chiuso (che indica una connessione sicura).

La vulnerabilità risale al 2012 quando con OpenSSL 1.0.1 è stato introdotto il supporto di RFC6250 ed è stato implementato l'heartbeat sulle connessioni TLS (Transport Layer Security protocol). L'heartbeat (chiamato anche keep-alive) viene utilizzato per evitare che client e server debbano rinegoziare la connessione in caso di temporanea inattività e mantiene il canale utilizzato dalla comunicazione aperto.  Per mantenere il canale aperto vengono inviati pacchetti dati senza informazioni al fine di resettare i contatori di inattività ma, a causa di un bug all'interno del codice, è possibile, tramite un pacchetto heartbeat opportunamente modificato, accedere ad informazioni di vario tipo.

Il protocollo prevede che il client invii al server un pacchetto di heartbeat, al massimo di 16K (anche se in realtà i pacchetti inviati sono  molto più piccoli), e che questo risponda con un pacchetto contenente la copia di quello ricevuto dal client. 
Andando nel dettaglio, il pacchetto heartbeat è composto da:

  • 0x01 costante che identifica TLS1_HB_REQUEST
  • 2 byte che indicano la dimensione del pacchetto
  • 2 byte che indicano il numero di sequenza del pacchetto
  • 16 byte di dati casuali
  • altri 16 byte casuali utilizzati come richiesto dal documento RFC6250

Il server, ricevuta la richiesta, copia i dati ricevuti e li rispedisce al client. Il codice affetto dalla vulnerabilità è il seguente:
/* Allocate memory for the response, size is 1 byte
 * message type, plus 2 bytes payload length, plus
 * payload, plus padding
 */
buffer = OPENSSL_malloc(1 + 2 + payload + padding);
bp = buffer;
/* Enter response type, length and copy payload */
*bp++ = TLS1_HB_RESPONSE;
s2n(payload, bp);
memcpy(bp, pl, payload);

Nel codice payload rappresenta la dimensione del pacchetto e viene dichiarata dal mittente (non viene verificata dal server). Se il mittente, anzichè dichiarare la vera dimensione del pacchetto, invia 0xFFFF (valore massimo esprimibile per 2 byte senza segno) il server copierebbe i 34 byte del pacchetto più altri 65501 byte prelevati dalla memoria. Proprio questi ultimi byte potrebbero contenere dati sensibili come la chiave di cifratura delle comunicazioni utilizzata dal server.

Dopo questa lunga premessa, di seguito mostrerò come testare se il proprio sistema è affetto dalla falla utilizzando Nmap su Kali Linux.
Nmap è un software libero (GNU GPL) creato per eseguire il port scanning, cioè individuare le porte aperte su un sistema e i relativi servizi attivi. Il software è incluso in Kali Linux pertanto per utilizzarlo non è necessario effettuare alcuna installazione.

Dalla finestra terminale digitare il seguente comando
nmap -d --script ssl-heartbleed --script-args vulns.showall -sV [HOST]
dove [HOST] rappresenta il nome o l'indirizzo ip della macchina che si intende verificare. 
Ad es. nel caso volessimo testare se il server con indirizzo IP 192.168.0.11 è vulnerabile possiamo digitare il comando

nmap -d --script ssl-heartbleed --script-args vulns.showall -sV 192.168.0.11

Nmap test Heartbleed
FIG 1 - Nmap test Heartbleed


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.

mercoledì 17 giugno 2015

Kali Linux: Attacco DoS tramite SlowHTTPTest

In questo articolo illustrerò come utilizzare il tool SlowHTTPTest per testare il proprio server sugli attacchi DoS (Denial of Service).  SlowHTTPTest è un tool altamente personalizzabile utilizzato per simulare attacchi DoS. Il tool è presente per numerose piattaforme Linux, OSX e Cygwin (un ambiente Unix-like a riga di comando per sistemi operativi Microsoft Windows) e implementa i più comuni attacchi DoS utilizzando una banda minima come slowloris, Slow HTTP POST, Slow Read attack, Apache Range Header attack.
Di seguito utilizzerò Kali Linux, una distribuzione Linux, basata su Debian GNU/Linux, pensata per l’informatica forense e spesso utilizzata per Penetration Testing, Ethical Hacking e per test relativi alla sicurezza della rete.

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.

Per installare SlowHTTPTest in Kali Linux basta utilizzare apt-get
apt-get install slowhttptest

Installazione slowhttptest
FIG 1 - Installazione slowhttptest

Di seguito riporto alcuni esempi di attacchi eseguiti tramite SlowHTTPTest


Slow message body mode
slowhttptest -c 1000 -B -i 110 -r 200 -s 8192 -t FAKEVERB -u https://myserver/loginform.html -x 10 -p 3
se vogliamo che i risultati vengano salvati in un file e in modalità grafica
slowhttptest -c 1000 -B -g -o body_result -i 110 -r 200 -s 8192 -t FAKEVERB -u https://myserver/loginform.html -x 10 -p 3


SlowHTTPTest slow message body mode
FIG 2 - SlowHTTPTest slow message body mode

slowloris mode
slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://myserver/index.html -x 24 -p 3
per i risultati in modalità grafica
slowhttptest -c 1000 -H -g -o header_result -i 10 -r 200 -t GET -u https://myserver/index.html -x 24 -p 3


Slow read mode passando per un proxy
slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://someserver/somebigresource -p 5 -l 350 -e x.x.x.x:8080
x.x.x.x:8080 è il proxy (con relativa porta) da cui si intende passare


Utilizzando l'opzione -g i risultati vengono generati in formato CSV e HTML. All'interno del file HTML è contenuta anche una rappresentazione grafica del test (basata su Google Chart tool). Un esempio delle statistiche in formato HTML è riportato nella seguente figura.
SlowHTTPTest opzione -g
FIG 3 - SlowHTTPTest opzione -g
I dati contenuti all'interno del file CSV possono essere utilizzati per generare un grafico con un tool di proprio gradimento (come Ms Excel, Google Docs ecc). 

L'ultimo messaggio visualizzato è quello della condizione di uscita dal test che potrebbe essere uno dei seguenti:

Hit test time limitRaggiunto il limite di tempo specificato tramite l'opzione -l
No open connections leftIl peer ha chiuso tutte le connessioni
Cannot establish connectionNessuna connessione stabilita entro i primi N secondi del test (dove N equivale a 10 secondi se non specificato diversamente tramite l'opzione -i). Questo può verificarsi se l'host non è raggiungibile oppure spento.
Connection refusedLa connessione è stata rifiutata dal destinatario. In questi casi possiamo provare ad utilizzare un proxy.
Cancelled by userAnnullato premendo CTRL+C 
Unexpected errorErrore inatteso.


In tabella le opzioni accettate da SlowHTTPTest

-a Per specificare il valore iniziale per il test range header
-b Specifica il numero di bytes per il test range header
-c Permette di specificare il numero di connessioni (fino a 65539)
-dPermette di indirizzare tutto il traffico attraverso un proxy e relativa porta. Ad es. -d proxy:port
-ePermette di indirizzare solo il traffico dei probe attraverso un server proxy. Ad es. -e proxy:port
-H, B, R o XSpecifica il tipo di slow down: -H per la sezione header, -B per la sezione Body del messaggio. -R abilita il range test, -X abilita il test slow read 
-gPermette di generare statistiche in formato CSV e HTML
-i Permette di specificare ogni quanti secondi inviare dati per ciascuna connessione.
-k Per il test di slow read permette di specificare quante volte ripetere la richiesta nella stessa connessione (se il server supporta HTTP pipelining).
-l Per specificare la durata, in secondi, del test
-n Per specificare l'intervallo, in secondi, tra le operazioni di lettura dal buffer in ricezione
-o Specifica un file di output (incluso di path). Utilizzato insieme all'opzione -g
-p Tempo di attesa (espresso in secondi) di una risposta HTTP su connessione probe dopo il quale il server è considerato non raggiungibile
-r Connection rate. Numero di connessioni per secondo
-s Valore in byte del Content-Length header, se l'opzione -B è definita
-t Permette di specificare un verb personalizzato
-u Per specificare URL target del test (nello stesso formato utilizzato dai browser)
-v Verbosity. Specifica il livello di dettaglio del log (valori da 0 a 4). 
-wInizio del range, espresso in byte, da cui la dimensione della finestra visualizzata viene prelevata.
-x massima lunghezza, in byte, dei dati
-yfine del range, espresso in byte, da cui la dimensione della finestra visualizzata viene prelevata.
-z Byte da leggere dal buffer in ricezione con una singola operazione di lettura

martedì 16 giugno 2015

MS Exchange: Visualizzare i domini accettati dall'organizzazione tramite EMS

Per visualizzare l'elenco dei domini accettati all'interno dell'organizzazione utilizzando Exchange Management Shell (EMS) possiamo utilizzare il cmdlet
Get-AcceptedDomain


Visualizzare i domini accettati: Get-AcceptedDomain
FIG 1 - Visualizzare i domini accettati: Get-AcceptedDomain

Se vogliamo filtrare il risultato visualizzando solo i domini Authoritative possiamo eseguire il seguente comando
Get-AcceptedDomain | Where{$_.DomainType -eq 'Authoritative'}

lunedì 15 giugno 2015

Kali Linux: Abilitare il Network Manager e settare indirizzo IP tramite CLI

Kali Linux è una distribuzione Linux basata su Debian spesso utilizzata per Penetration Testing, Ethical Hacking e per test relativi alla messa in sicurezza della reti IT. Kali Linux può essere scaricato gratuitamente da www.kali.org. Dalla pagina contenente i collegamenti ai file .ISO sono disponibili anche le immagini già pronte da utilizzare con le Virtual Machine di VMware e di VirtualBox.

Una volta installato Kali Linuxaprire una finestra terminale ed eseguire il comando ifconfig per visualizzare le informazioni relative alle schede di rete (comprese schede wi-fi) presenti nel sistema. Noteremo che le schede di rete non dispongono di indirizzo IP in quanto in Kali Linux il servizio networking è disabilitato di default. Dalla finestra terminale è possibile stoppare, avviare, riavviare il servizio utilizzando i seguenti comandi:
/etc/init.d/networking stop
/etc/init.d/networking start
/etc/init.d/networking restart  

Avviare il servizio utilizzando il comando /etc/init.d/networking start da terminale. 


Avviare il servizio Networking: /etc/init.d/networking start
FIG 1 - Avviare il servizio Networking: /etc/init.d/networking start

A questo punto potremmo trovarci nella situazione in cui da Network Manager viene visualizzato il messaggio Device not managed. Ciò capita in quanto nelle distribuzioni Debian e derivate, per default, Network Manager non gestisce interfacce elencate in /etc/network/interfaces. Per gestire le connessioni tramite la GUI Network Manager è necessario modificare il file /etc/NetworkManager/NetworkManager.conf.
Dalla finestra terminale digitare
nano /etc/NetworkManager/NetworkManager.conf


NetworkManager.conf
FIG 2 - NetworkManager.conf

quindi nella finestra dell'editor sostituire la scritta false, relativa all'opzione managed nella sezione ifupdown, con true. Sovrascrivere il file premendo la combinazione di tasti CTRL+O e confermare con Invio. Per uscire dall'editor premere CTRL+X.

Riavviare la GUI Network Manager tramite il seguente comando da terminale:
/etc/init.d/network-manager restart  
Riavviare Gui Network Manager: /etc/init.d/network-manager restart
FIG 3 - Riavviare Gui Network Manager: /etc/init.d/network-manager restart  

Ora il servizio Networking è attivo e la connessione tramite cavo può essere gestita tramite GUI Network Manager. Nel caso in cui sulla rete sia attivo il servizio DHCP, alla scheda di rete verrà automaticamente assegnato un IP. Se si intende assegnare un indirizzo IP statico è possibile procedere sia tramite GUI (menu Applications->System Tools->Preferences->Network Connections) oppure dalla finestra terminale utilizzando i seguenti comandi

ifconfig eth0 up
Abilita l'interfaccia di rete eth0

ifconfig eth0
Visualizza le impostazioni di rete dell'interfaccia eth0.

ifconfig eth0 192.168.0.10
Assegna all'interfaccia di rete eth0 l'indirizzo IP 192.168.0.10

ifconfig eth0 netmask 255.255.255.0
Imposta la subnet mask 255.255.255.0 per l'interfaccia di rete eth0

ifconfig eth0 broadcast 192.168.0.255
Imposta un indirizzo di broadcast per l'interfaccia di rete specificata. In questo caso l'indirizzo di broadcast impostato per l'interfaccia eth0 è 192.168.0.255

route add default gw 192.168.0.1
Specifica il default gateway. In questo caso l'indirizzo del default gateway è 192.168.0.1

route -n 
Permette di visualizzare la tabella di routing


Network Connections
FIG 4 - Network Connections
Per settare un server DNS è necessario andare a modificare il file /etc/resolv.conf. Dalla finestra terminale digitare
nano /etc/resolv.conf


Settare server DNS: resolv.conf
FIG 5 - Settare server DNS: resolv.conf

Modificare nameserver indicando l'indirizzo IP del server DNS che si intende impostare (in FIG 5 è riportato il server DNS di google). Salvare e sovrascrivere il file premendo CTRL+O seguito da Invio, quindi uscire dall'editor tramite CTRL+X.

venerdì 12 giugno 2015

Windows Quick Tip: Eseguire comandi multipli dal prompt dei comandi

Dal prompt dei comandi è possibile eseguire comandi multipli su una singola riga separandoli con &&. Nell'utilizzo di tale separatore è importante tenere in considerazione che i comandi vengono eseguiti procedendo da sinistra verso destra e che il comando successivo verrà eseguito solo se il precedente è terminato senza errori.


Ad es.
dir a: && pause
Nel caso in cui a: non sia una lettera di unità valida (e pronta) il comando pause non verrà mai eseguito. Questo capita in quanto il separatore && esegue il controllo degli errori.

Separatore di comandi &&
FIG 1 - Separatore di comandi &&

Se si intende eseguire il comando successivo anche se il precedente non restituisce i risultati previsti è possibile utilizzare il separatore &.

Ad es.
dir a: & pause
in questo caso pause verrà eseguito anche se il comando dir a: termina con errore, come è possibile vedere nella seguente figura.

Separatore di comandi &
FIG 2 - Separatore di comandi &

giovedì 11 giugno 2015

Windows Quick Tip: Abilitare l'auto-completamento nel prompt dei comandi

Per chi utilizza frequentemente il prompt dei comandi può essere utile avere la funzione di completamento automatico dei nomi dei file e cartelle. 
É possibile abilitare l'auto-completamento sia in maniera permanente, agendo tramite il registro di sistema, sia temporaneamente solo per la sessione corrente.

Attivare il completamento automatico in CMD temporaneamente
Per attivare l'auto-completamento basta eseguire il comando cmd /f. Il comando può essere eseguito sia all'interno della stessa finestra del prompt dei comandi (in questo caso l'auto-completamento viene abilitato nella stessa finestra/sessione) oppure digitando ed eseguendo il comando da Esegui (WIN+R), in questo caso verrà aperta una nuova sessione del prompt dei comandi con abilitato il completamento automatico.
Una volta attivato il completamento automatico è possibile premere CTRL+D per completare i nomi delle cartelle oppure CTRL+F per completare il nome dei file.

Per disabilitare il completamento automatico basta eseguire, all'interno del prompt dei comandi, il comando cmd /f:off oppure semplicemente chiudere la finestra.


Attivare il completamento automatico in CMD in modo permanente
Per attivare il completamento automatico in modo permanente all'interno del prompt dei comandi è necessario agire tramite il registro di sistema.
  • Accedere all'editor di registro (regedit.exe).
  • Se si intende effettuare l'abilitazione per tutti gli utenti che utilizzano la postazione posizionarsi su 
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
  • Se, invece, intendiamo abilitare l'auto-completamento solo per l'utente corrente 
    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\ 
    Ovviamente le impostazioni specifiche per l'utente (HKEY_CURRENT_USER) avranno precedenza sulle impostazioni a livello macchina (HKEY_LOCAL_MACHINE).
  • Per il completamento di nomi di cartelle, fare doppio clic sul valore DWORD CompletionChar e assegnargli uno dei seguenti valori a seconda del carattere di controllo che si intende utilizzare
    0x9 (digitare il valore 9 che verrà automaticamente convertito in esadecimale) per utilizzare il tasto TAB come carattere di controllo
    0x4 (digitare il valore 4 che verrà automaticamente convertito in esadecimale) per utilizzare CTRL+D
    0x6 (digitare il valore 6 che verrà automaticamente convertito in esadecimale) per utilizzare CTRL+F
  • Per il completamento di nomi di file, fare doppio clic sul valore DWORD PathCompletionChar e assegnare uno dei seguenti valori a seconda del carattere di controllo che si intende utilizzare
    0x9 per utilizzare il tasto TAB come carattere di controllo
    0x4 per utilizzare CTRL+D
    0x6 per utilizzare CTRL+F
Completamento automatico del prompt dei comandi
FIG 1 - Completamento automatico del prompt dei comandi