Password deboli, violazione garantita!

In questa stanza vedremo come l’impostazione di password deboli facilità la vita agli hacker che tentano di violare un sistema, in particolare rendendo il sistema e quindi le password particolarmente deboli nei confronti degli attacchi a dizionario, ossia attacchi che tentano di indovinare la password di un utente attraverso l’uso di una lista di possibili candidati, per l’appunto chiamata “dizionario“. Nel nostro caso la lista deriva da un famoso hacking del 2009, quando l’azienda Rockyou che forniva servizi ad altri social si vide sottrarre dati che contenevano le password di milioni di utenti dei propri clienti.

Partiamo con una scansione con “nmap” per scoprire quali servizi offre la macchina che vogliamo attaccare. Le opzioni usate sono:

  • -sT che è la scansione di default che sfrutta una connessione completa al server;
  • -A per recuperare informazioni sulle versioni dei servizi e sul sistema operativo;
  • -p- per estendere la scansione a tutte le porte.

Il risultato è una miniera di informazioni; sono disponibili le porte:

  • 22/tcp per la connessione da remoto via SSH;
  • 80/tcp la porta che ospita un web-server;
  • 139/tcp-445/tcp porte dedicate al protocollo SMB per la condivisione delle risorse in una rete, come ad esempio stampanti, file etc etc;
  • 8009/tcp dedicato al protocollo, ajp13, che ha il compito di intercettare le richieste che arrivano ad un web-server e indirizzarle al server che contiene l’applicazione richiesta;
  • 8080/tcp una seconda porta HTTP.

Come sempre per sfruttare la porta 22/tcp e connetterci attraverso il protocollo SSH dobbiamo avere delle credenziali che al momento ci mancano, quindi dedichiamoci all’analisi del web-server ospitato sulla porta 80/tcp. Apriamo il browser e visitiamo la pagina all’indirizzo fornito. Non sembra esserci nulla di interessante tranne una nota nella sua sorgente che ci invita a controllare delle note nella sezione sviluppo (“<!– Check our dev note section if you need to know what to work on. –>“).

Proviamo allora a lanciare il tool “Gobuster” per scoprire se ci sono pagine nascoste. Le opzioni da utilizzare sono:

  • dir per fare una enumerazione delle directory;
  • -u fornisce l’URL da attaccare;
  • –wordlist indica quale lista di parole usare;
  • -x specifica se oltre alle directory vogliamo verificare la presenza di file con l’estensione data, in questo caso .txt che è un formato usato spesso per le note.

Dal risultato scopriamo che esiste un’altra pagina da visitare e con questo abbiamo trovato una delle risposte che stavamo cercando!

All’interno di questa nuova pagina troviamo due file interessanti. Il primo “dev.txt” ci fornisce informazione sulle attività svolte su questa macchina; il secondo file “j.txt” è un messaggio dell’utente amministratore “k” che prega l’utente “j” di cambiare prima possibile la password perché è risultata molto debole.

Per ora la porta 80/tcp pare aver detto tutto quello che aveva da dire, passiamo all’analisi delle porte che ospitano il protocollo SMB e lo facciamo tramite il tool “enum4linux” usando l’opzione -a che fa un analisi completa seguita dall’indirizzo della macchina da violare.

Il risultato ci fornisce altre due risposte che cercavamo, gli username degli utenti “j” e “k“.

Sapendo che l’utente “j” usa una password debole a questo punto possiamo tentare di lanciare un attacco a dizionario contro la porta 22/tcp attraverso il tool “hydra“:

  • -l per indicare lo username contro cui lanciare l’attacco;
  • -P fornisce il percorso della lista di password da utilizzare;
  • ssh specifica il servizio da attaccare seguito dall’IP della nostra vittima.

Basta aspettare una decina di minuti ed ecco che ci viene fornita una coppia di credenziali valide per connetterci alla macchina via SSH; siamo dentro!!!

Ora bisogna curiosare tra i file e le cartelle delle macchina violata per trovare un modo di assumere i privilegi di amministratore. L’unico file interessante si trova nella home dell’utente “k” e purtroppo non possiamo visualizzarlo, quindi proviamo ad utilizzare uno script per analizzare velocemente la macchina e trovare possibili varchi. Lo script è linpeas.sh che potere trovare in rete; scarichiamolo e salviamolo sulla nostra macchina, poi dalla stessa directory in cui l’abbiamo salvato apriamo un terminale e lanciamo una sessione di un web-server in python sulla porta 4444:

  • -m indica che vogliamo usare un modulo di python;
  • http.server è il modulo di python per avviare un web-server di base;
  • 4444 è la porta sul quale si trova in ascolto il web-server.

Contestualmente spostiamoci sulla nostra macchina violata e scarichiamo lo script fornendogli successivamente i diritti di esecuzione.

Il risultato è una lunga lista da controllare minuziosamente e nella quale spicca la possibilità di accedere nella home dell’utente “k” alla sua chiave privata (id_rsa). Copiamo il contenuto del file in un file di testo sul nostro computer, salviamolo e forniamogli i giusti privilegi, poi tentiamo di connetterci via SSH come utente “k” utilizzando l’opzione -i che ci permette di utilizzare una chiave privata invece di una password.

Purtroppo la chiave è protetta da una parola chiave.

E’ il momento di tentare un altro attacco a dizionario contro la chiave dell’utente “k” per scoprire la parola chiave. Per far questo usiamo il script python “ssh2john.py” che prepara la nostra chiave in un formato da poter crackare tramite il tool “JohnTheRipper“. La sintassi in entrambi i casi è semplice:

  • ssh2john.py seguito dal file da crackare e poi dall’operatore “>“che ridireziona l’input in un nuovo file.
  • john” seguito dal nome del file da crackare e dall’opzione “–wordlist=” seguita dal dizionario scelto.

Adesso che abbiamo la parola chiave, proviamo a riconnetterci nuovamente tramite SSH come utente “k” ed ecco che abbiamo realizzato una Privilege Escalation orizzontale, ossia tra due utenti allo stesso livello; grazie a questo possiamo finalmente dare un’occhiata al file nella directory “home” di “k” ed ottenere l’ultima risposta che ci serve per completare la stanza.

Missione compiuta e lezione imparata: mai usare password deboli!

Articolo creato 84

Articoli correlati

Inizia a scrivere il termine ricerca qua sopra e premi invio per iniziare la ricerca. Premi ESC per annullare.

Torna in alto