Vulnerability analysis

8 maggio 2018

La vulnerability analysis è il processo tramite il quale vengono identificate, catalogate e descritte le vulnerabilità di un sistema. Quando possibile, le vulnerabilità identificate devono essere risolte secondo l’ordine di priorità (ossia di gravità) che vi è stato assegnato. La vulnerability analysis, nel campo dell’informatica, può essere perpetrata contro singoli host (a livello di macchina) o contro organizzazioni (a livello di rete di computer).

In questa lezione approfondiremo alcuni tra gli strumenti più popolari, capaci di effettuare il riconoscimento delle vulnerabilità verso:

  1. Database: SQL injection, SQL dump, privilege escalation, attacchi a forza bruta sulle password;
  2. Host locali e remoti: buffer overflow, privilege escalation.

Analisi delle vulnerabilità di database

Gli strumenti più importanti che vedremo in questa lezione sono DBPwAudit, HexorBase e sqlmap.

DBPwAudit ed HexorBase sono due strumenti che consentono di effettuare la verifica della qualità delle password su diversi database relazionali. Entrambe le applicazioni sono espandibili, nel senso che consentono di aggiungere driver addizionali per la connessione verso altri tipi di database non gestiti di default.

Oltre ai due strumenti citati, vedremo anche sqlmap, che è probabilmente uno degli strumenti più potenti dell’intera distribuzione Kali. Tale strumento consentirà di effettuare attacchi di SQL injection verso una miriade di database (anche remoti).

DBPwAudit

Consente di verificare la qualità delle password di diversi DB quali:

  • Microsoft SQL Server 2000/2005;
  • Oracle 8/9/10/11;
  • IBM DB2 Universal Database;
  • MySQL.

Lo strumento è molto semplice da utilizzare, e va invocato da riga di comando nel seguente modo:

DBPwAudit -s <server> -p <porta> -d <db> -D <driver> -U <utente> -P <password> [opzioni]

dove il significato delle opzioni è il seguente:

  • -s: nome del server o indirizzo IP;
  • -p: porta del database;
  • -d: nome del database da verificare;
  • -D: nome del driver da utilizzare per la connessione;
  • -U: nomi degli utenti da verificare;
  • -P: elenco di password da verificare.

Per maggiori informazioni, è possibile fare riferimento alla documentazione ufficiale.

HexorBase

Hexorbase è uno strumento complementare ad DBPwAudit, che consente la verifica delle password sui seguenti database:

  • MySQL;
  • SQLite;
  • Microsoft SQL Server;
  • Oracle;
  • PostgreSQL.

L’utilizzo è semplificato dalla GUI che consentirà di selezionare il tipo di database di cui si vuole effettuare l’audit delle password.

Figura 9. Interfaccia grafica di HexorBase (fonte: HexorBase) (click per ingrandire)

Interfaccia grafica di HexorBase

sqlmap

Uno strumento capace di effettuare attacchi di SQL injection verso i seguenti DB: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase e SAP MaxDB. Annovera, tra tra le tecniche di injection utilizzate: boolean-based blind, time-based blind, error-based, UNION query, stacked queries, out-of-band, e consente di scoprire facilmente utenti, hash delle password, privilegi, ruoli, database, tabelle e colonne, oltre che potere effettuare il dump di interi database.

L’utilizzo del tool è molto intuitivo. Eseguendolo da riga di comando, ha il seguente formato:

python sqlmap [opzioni]

dove il campo opzioni va riempito nel seguente modo:

  • -U url: l’indirizzo web da attaccare;
  • -a: cerca di carpire il massimo numero di informazioni dall’host remoto;
  • --passwords: scopre gli hash delle password, e se possibile li inverte, scoprendo le password in chiaro;
  • --tables: scopre le tabelle del DB;
  • --columns: scopre le colonne delle tabelle;
  • --dump-all: copia l’intero database.

Esempio di esecuzione con l’opzione --passwords:

python sqlmap -u 127.0.0.1 --passwords

Figura 10. Scoperta delle password degli utenti memorizzati all’interno del DB (fonte: sqlmap) (click per ingrandire)

Scoperta delle password degli utenti memorizzati all'interno del DB

Riportiamo di seguito un altro semplice esempio di clonazione di database (tramite opzione --dump):

Figura 11. Clonazione del database (fonte: sqlmap) (click per ingrandire)

Clonazione del database

In conclusione, sqlmap è uno strumento molto potente, ed una discussione approfondita di tutte le sue funzionalità esula dallo scopo di tale guida. È comunque possibile approfondire il suo utilizzo navigando all’interno della documentazione ufficiale, oppure dando un’occhiata alla nostra guida alla SQL injection con sqlmap.

Analisi delle vulnerabilità di sistemi locali e remoti

Gli strumenti più utili per la verifica di vulnerabilità (a livello di sistema) verso host locali e remoti sono: unix-privesc-check e BED/DOONA.

Unix-privesc-check

Unix-privesc-check è uno strumento molto semplice per la analisi di vulnerabilità a livello locale. Esso è capace di analizzare sistemi Unix, alla ricerca di file non ben configurati per consentire la cosiddetta “privilege escalation” di utenti non privilegiati, ed ottenere accesso, nel migliore dei casi, all’utente root, oppure ad applicazioni normalmente protette (ad esempio database), o a cartelle sprovviste dei corretti permessi di lettura/scrittura.

Il suo utilizzo è molto semplice, e può essere eseguito direttamente da riga di comando, scegliendo il livello di dettaglio dei test effettuati come segue:

unix-privesc-check [standard|detailed]

BED/DOONA

Il programma BED (Bruteforce Exploit Detector), è uno strumento votato alla scoperta di demoni in ascolto su host remoti, suscettibili ad attacchi di buffer overflow. Il progetto è stato ultimamente rinominato in DOONA (che in australiano significa letto, esattamente come “bed”), aggiungendo una serie di utili features a BED.

Il funzionamento è veramente intuitivo: DOONA inizia ad effettuare una serie di attacchi di buffer overflow verso una porta specifica finchè il servizio in ascolto non produce un crash. Lo strumento andrebbe utilizzato dunque per scoprire quali tipi di attacchi di buffer overflow causano un crash del processo e porvi rimedio.

Il suo utilizzo è molto semplice, e segue il seguente formato:

./doona.pl -m [modulo] <opzioni>

Il significato delle opzioni è il seguente:

  • -m <module>: indica il tipo di protocollo per cui si intende effettuare l’attacco di buffer overflow. Tra quelli disponibili vi sono: FINGER, FTP, HTTP, IMAP, IRC, LPD, PJL, POP, PROXY, RTSP, SMTP, SOCKS4, SOCKS5, TFTP, WHOIS;
  • -t <target>: indica l’host da attaccare;
  • -p <port>: la porta a cui connettersi, il default è specificato dal modulo utilizzato;
  • -o <timeout>: il numero di secondi da attendere dopo ciascun test;
  • -M <num>: numero di test da effettuare prima di terminare lo script.

Un esempio pratico di utilizzo, per attaccare il protocollo FTP, presso il nostro server locale, e terminare l’esecuzione dopo 10 test è il seguente:

./doona.pl -m FTP -t 127.0.0.1 -M 10

Tutte le lezioni

1 ... 3 4 5 ... 7

Se vuoi aggiornamenti su Vulnerability analysis inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Vulnerability analysis

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento dei dati per attività di marketing