martedì 28 marzo 2017

Kali Linux: Recuperare le informazioni di un sito web utilizzando il Framework Katana

Per verificare l'attendibilità di un sito web può essere utile recuperare più informazioni possibili sul dominio. Informazioni come data di registrazione del dominio, intestatario, data di creazione e di scadenza, ecc. possono essere recuperate tramite lo strumento WHOIS

Online si trovano diversi servizi specializzati che offrono lo strumento WHOIS e, indicando il sito web che si intende verificare, visualizzano tutte le informazioni disponibili. In questo articolo mostrerò come recuperare tali informazioni utilizzando lo strumento Katana in Kali Linux.


Aggiornare Kali Linux

La prima operazione da effettuare è quella di aggiornare la distribuzione Kali Linux utilizzando i seguenti comandi da terminale
apt-get update
apt-get dist-upgrade


Installare Katana

Il passo successivo consiste nell'installazione del Framework Katana:
  • Avviare il terminale;
  • Digitare il comando
    git clone https://github.com/PowerScript/KatanaFramework.git

    seguito da invio e attendere il download del framework;
    Download Framework Katana
    FIG 1 - Download Framework Katana
  • Accedere alla directory KatanaFramework con il comando
    cd KatanaFramework 
  • Impostare i permessi sulla directory install con il comando
    chmod 777 install 
  • Procedere con l'installazione eseguendo
    ./install 
    Installazione Framework Katana
    FIG 2 - Installazione Framework Katana


Recuperare le informazioni di un dominio tramite Katana

  • Terminata l'installazione eseguire la console di Katana digitando
    ktf.console 

    Console Framework Katana
    FIG 3 - Console Framework Katana
  • Per visualizzare i moduli messi a disposizione dal Framework digitare
    showm
    Elenco moduli del Framework Katana
    FIG 4 - Elenco moduli del Framework Katana
  • Il modulo da utilizzare per il nostro scopo è web/whois. Avviarlo tramite il comando
    use web/whois
  • Eseguire il comando set target seguito dal sito che si intende analizzare, ad es. set target www.example.com 
  • A questo punto, per visualizzare le informazioni del sito web indicato nel passo precedente, basta digitare il comando run
    Visualizzare le informazioni del sito web utilizzando il modulo web/whois
    FIG 5 - Visualizzare le informazioni del sito web utilizzando il modulo web/whois




lunedì 27 marzo 2017

macOS Sierra: Disabilitare/Abilitare Gatekeeper

Gatekeeper è una funzione di sicurezza introdotta a partire da Mac OS X Leopard, e successivamente ampliata con l'integrazione di nuove funzionalità, che ha lo scopo di proteggere il sistema dall'installazione/esecuzione di app potenzialmente dannose:  vengono autorizzate solo le app scaricate dall'App Store e da sviluppatori riconosciuti.
Per disabilitare tale funzionalità e permettere l'installazione di app di terze parti è possibile procedere da Terminale.
FIG 1 - Gatekeeper


Disabilitare Gatekeeper

Da terminale eseguire il comando
sudo spctl --master-disable
Verrà richiesto di inserire la password di amministratore.


Abilitare Gatekeeper

Da terminale eseguire
sudo spctl --master-enable
e inserire la password di amministratore.


Verificare lo stato di Gatekeeper

Per verificare se Gatekeeper è abilitato o disabilitato, utilizzare il seguente comando da terminale
spctl --status




mercoledì 22 marzo 2017

Windows: Session Hijacking utilizzando un account locale con i permessi di sistema

Alexander Korznikov, un ricercatore di sicurezza israeliano, ha di recente dimostrato come un account locale con elevati privilegi può eseguire l'hijacking delle sessioni di qualsiasi utente Windows loggato sulla postazione, persino di utenti con privilegi superiori o account di dominio.
In quest'articolo mostrerò quanto scoperto da Korznikov e vedremo come un account locale di Windows, con i permessi di sistema, può prendere il controllo di altre sessioni utente attive sulla postazione senza conoscerne la password.

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.

La procedura  può essere eseguita sia utilizzando il Task Manager sia utilizzando Remote Desktop Protocol (RDP) tramite TSCON. In entrambi i casi è necessario procurarsi PSEXEC. L'utility può essere scaricata sia singolarmente da QUI sia come parte integrante della Sysinternals Suite.

Supponiamo che l'utente abbia bloccato il computer con la sua utenza (ad es. utilizzando la combinazione WIN+L o premendo CTRL+ALT+CANC e selezionando Blocca) e si sia allontanato dalla postazione. Possiamo prendere il controllo della sessione utente bloccata utilizzando uno dei seguenti metodi.



Metodo 1: Prendere il controllo della sessione dell'account vittima tramite il Task Manager

  • Eseguire il logon con altro utente, amministratore locale della workstation.
    Eseguire logon con altro account amministratore locale
    FIG 1 - Eseguire logon con altro account amministratore locale
  • Avviare il Task Manager/Gestione attività e selezionare la scheda Utenti. Nella colonna ID prendere nota dell ID relativo all'account amministratore locale (in FIG 2 l'ID corrisponde ad 8).
    Gestione attività, ID sessione utente amministratore locale
    FIG 2 - Gestione attività, ID sessione utente amministratore locale
  • Avviare il prompt dei comandi come amministratore.
  • Accedere alla cartella contenente PSEXEC e utilizzarlo per lanciare il Task Manager con l'utenza System tramite il seguente comando
    psexec -s \\localhost -i 8 taskmgr
    dove 8 rappresenta l'ID recuperato nei passi precedenti. Cliccare sul pulsante Agree all'eventuale visualizzazione del messaggio relativo alle condizioni di licenza di PSEXEC.

    Avvio del Task Manager con l'utenza System tramite PSEXEC
    FIG 3 - Avvio del Task Manager con l'utenza System tramite PSEXEC
  • Nella nuova finestra del Task Manager selezionare nuovamente la scheda Utenti, cliccare con il tasto destro del mouse sulla sessione della vittima di cui si vuole prendere il controllo e selezionare Connetti. A questo punto ci ritroveremo all'interno della sessione della vittima.

    Connetti alla sessione della vittima tramite Task Manager/Gestione attività
    FIG 4 - Connetti alla sessione della vittima tramite Task Manager/Gestione attività

Metodo 2: Prendere il controllo della sessione dell'account vittima tramite TSCON

  • Aprire il prompt dei comandi come amministratore.
  • Spostarsi nella cartella contenente PSEXEC  e utilizzarlo per aprire un prompt dei comandi con l'account System eseguendo
    psexec -s \\localhost cmd
  • Per conoscere con quale utenza si sta lavorando eseguire il comando
    whoami
    Assicurarsi che in risposta si riceva nt authority\system.
  • Digitare ed eseguire il comando
    query user
    e prendere nota dell'ID relativo alla sessione della vittima (In FIG 5 l'ID della vittima corrisponde a 9).

    Recuperare l'ID della sessione della vittima
    FIG 5 - Recuperare l'ID della sessione della vittima
  • Connettersi alla sessione della vittima eseguendo
    tscon 9 /dest:console
    dove 9 rappresenta l'ID della sessione verificata nel passo precedente. 

I metodi sopra descritti funzionano con tutte le versioni di Windows comprese le versioni Server.




giovedì 16 marzo 2017

Resettare la password del BIOS/EFI/UEFI

Il BIOS (Binary Input-Output System) e i suoi successori EFI (Extensible Firmware Interface) e UEFI (Unified Extensible Firmware Interface) forniscono una serie di funzionalità basilari per l'utilizzo e il corretto funzionamento dell'hardware di un computer.

Tra le diverse funzionalità messe a disposizione da queste tecnologie c'è quella che consente all'utente di proteggere l'accesso al sistema tramite una password (da non confondere con la password del sistema operativo).

Lo scopo di questo articolo è quello di mostrare come by-passare o resettare questo tipo di password.

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.


I metodi generalmente utilizzati sono 3: Reset CMOS, Rimozione della batteria tampone, sfruttare una backdoor del produttore.


Metodo 1: Reset CMOS

Su gran parte delle schede madri dei PC è presente un'interruttore o un jumper, generalmente contrassegnato con una scritta come CLR CMOS CMOS, che consente il reset delle impostazioni CMOS.
Jumper per il reset del CMOS
FIG 1 - Jumper per il reset del CMOS


Metodo 2: Rimozione batteria tampone

Le schede madri dei PC sono dotati di batteria tampone che consente di mantenere i dati all'interno del CMOS anche quando vengono spenti e staccati dalla rete elettrica. Rimuovendo per diverso tempo tale batteria, le informazioni all'interno del CMOS vengono perse e al successivo avvio verrano caricate le impostazioni di fabbrica.
Batteria tampone scheda madre
FIG 2 - Batteria tampone scheda madre

Metodo 3: Backdoor

I precedenti metodi hanno lo svantaggio di resettare, oltre alla password, anche le altre impostazioni memorizzate all'interno del CMOS; inoltre, non sempre è agevole accedere alla scheda madre del dispositivo (si pensi ad es. ai portatili). Un'alternativa consiste nel recuperare una master password inserita dal produttore del sistema che ne consenta lo sblocco senza interferire con le altre impostazioni. Purtroppo (o per fortuna) ogni produttore adotta metodi diversi pertanto i passaggi da seguire possono differire leggermente. Un punto di riferimento per tale metodo è il sito https://bios-pw.org.
Master password, bios-pw.org
FIG 3 - Master password, bios-pw.org

Il valore da inserire nell'apposita casella dipende dal produttore e dal modello della scheda madre: in alcuni casi va inserito il seriale del PC o il codice di matricola nel caso di prodotti DELL, in altri casi il codice visualizzato a seguito blocco del sistema dopo n tentativi di accesso falliti. Una volta inserito il codice basta cliccare sul pulsante Get password per ottenere un elenco di password da provare. Per alcuni modelli DELL è necessario premere CTRL+INVIO (e non solo INVIO) quando si prova ad immettere la master password del BIOS/UEFI suggerita dal sito.



mercoledì 15 marzo 2017

Windows Quick Tip: Recuperare le informazioni del BIOS dal registro di sistema

Nell'articolo PowerShell: Visualizzare le informazioni sul BIOS utilizzando Get-WmiObject è stato mostrato come recuperare le informazioni del BIOS utilizzando PowerShell. Alcune di queste informazioni possono essere recuperate anche tramite il registro di sistema:

  • Avviare l'editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • Posizionarsi sulla chiave
    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS 
    All'interno di tale chiave si trovano diverse informazioni tra cui il produttore del BIOS (BIOSVendor), la versione (BIOSVersion), la data di rilascio (BIOSReleaseDate) e altre informazioni relative al sistema.
Registro di sistema, informazioni relative al BIOS
FIG 1 - Registro di sistema, informazioni relative al BIOS

Le informazioni possono essere visualizzate anche interrogando il registro di sistema dal prompt dei comandi tramite reg query:
reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS


Prompt dei comandi, interrogare chiavi di registro tramite REG QUERY
FIG 2 - Prompt dei comandi, interrogare chiavi di registro tramite REG QUERY



lunedì 13 marzo 2017

PowerShell: Visualizzare le patch di sicurezza installate sul sistema

Il cmdlet Get-CimInstance, incluso in PowerShell 3.0 e successivi, cattura le istanze Common Information Model (CIM) di una classe da un server CIM. Per poter visualizzare la patch di sicurezza installate su un sistema si può utilizzare Get-CimInstance con la classe Win32_QuickFixEngineering che permette la visualizzazione degli aggiornamenti forniti da CBS (Component Based Servicing). 
Il comando da eseguire in PowerShell è il seguente
Get-CimInstance -Class Win32_QuickFixEngineering
Visualizzare le patch di sicurezza installare utilizzando la classe Win32_QuickFixEngineering
FIG 1 - Visualizzare le patch di sicurezza installare utilizzando la classe Win32_QuickFixEngineering

Per visualizzare le patch di sicurezza installate negli ultimi 2 mesi si può utilizzare il comando
Get-CimInstance -Class Win32_QuickFixEngineering | Where-Object { $_.InstalledOn -gt (Get-Date).AddMonths(-2) }





venerdì 10 marzo 2017

PowerShell: Recuperare la password da un oggetto PSCredential

Diversi cmdlet PowerShell permettono l'utilizzo di un oggetto PSCredential per essere eseguiti con un particolare account. Proprio per questo l'oggetto PSCredential viene spesso utilizzato per memorizzare le credenziali in modo da  poterle richiamare in diverse parti di uno script.
Per creare un'istanza di un oggetto PSCredential può essere utilizzato il cmdlet Get-Credential
Ad es. eseguendo da PowerShell il comando
$credenziali=Get-Credential
verrà aperta una finestra di richiesta credenziali (FIG 1). Inserendo utenza e password queste verranno memorizzate all'interno dell'oggetto PSCredential $credenziali
Richiesta credenziali di Windows PowerShell
FIG 1 - Richiesta credenziali di Windows PowerShell

Per visualizzare i membri (metodi e proprietà) dell'oggetto viene utilizzato il cmdlet Get-Member 
$credenziali | Get-Member
Visualizzare i membri di un oggetto PSCredential
FIG 2 - Visualizzare i membri di un oggetto PSCredential

Analizzando le proprietà di un oggetto PSCredential (FIG 2), salta subito all'occhio che l'utenza viene memorizzata in chiaro all'interno di una comune stringa mentre la password viene memorizzata come securestring e pertanto non visibile (almeno non direttamente).

Per visualizzare il nome utente memorizzato all'interno dell'oggetto PSCredential basta utilizzare il comando
$credenziali.UserName

Eseguendo il comando
$credenziali.Password | Get-Member
verranno mostrati i metodi e le proprietà disponibili per la password (FIG 3). Tale informazioni sono d'aiuto per conoscere quali operazioni è possibile effettuare sulla password.
Ad es. per conoscere la lunghezza della password bisogna interrogare la proprietà Length
$credenziali.Password.Length
mentre per cancellarla va utilizzato il metodo Clear()
$credenziali.Password.Clear()
Recuperare informazioni sulla password da un oggetto PSCredential
FIG 3 - Recuperare informazioni sulla password da un oggetto PSCredential

Per "scoprire" la password memorizzata all'interno dell'oggetto PSCredential è possibile lanciare il seguente comando
$credenziali.GetNetworkCredential().Password
Visualizzare la password memorizzata all'interno di un oggetto PSCredential
FIG 4 - Visualizzare la password memorizzata all'interno di un oggetto PSCredential
Dalla FIG 4 si evince che la password memorizzata è "123456" (tra le password più sicure e diffuse al mondo), non resta che scrivere le credenziali su un post-it da attaccare al monitor (ndr Per chi non se ne fosse resto conto, ero sarcastico!!!).