Sfide

Requisiti

Per sottomettere la propria soluzione ad una sfida è necessario aver compiuto i seguenti passi preliminari:

  1. Avere un account GitHub

  2. Accedere al link all’assignment di benvenuto: https://classroom.github.com/a/qU7ZFhmv

  3. Associare l’account GitHub al codice identificativo ricevuto via email

  1. Cerca il tuo identificativo utilizzando la funzione ricerca del tuo browser (crtl+f testato su firefox e google chrome)

  2. Clicca sul tuo identificativo

  3. Controlla di aver selezionato l’identificativo corretto

  4. Premi ok

  1. Accetta l’assignment GitFundamentals

Sfida 1: La password del docente

Stato:CLOSED

Nel corso della lezione 22/12/2021 - Esempi C, Aspetti di sicurezza ed Introduzione a Linux sono state trattate alcune tematiche relative ad aspetti di sicurezza. In particolare, si è discusso il ruolo dei file /etc/passwd e /etc/shadow in sistemi GNU/Linux. Inoltre, sono stati illustrati alcuni dettagli riguardo i permessi ed il contenuto del file shadow. Nello specifico, è stato descritto come individuare:

  • l’hash della password di un utente;

  • il sale relativo;

  • l’algoritmo di hash utilizzato.

Dopo 81 minuti e 30 secondi di lezione, il docente ha mostrato il file shadow installato su un suo dispositivo e l’entry relativa alla sua utenza.

La sfida

Individuare la password del docente.

I premi

  • 1 punto sul voto finale per la prima soluzione che individua la password corretta

Le regole

Per sottomettere la soluzione è necessario:

  1. accetta l’assignment su GitHub: https://classroom.github.com/a/oRfof8ZI

  2. pubblica sul repository il codice utilizzato per individuare la password e un Readme

  3. inviare una email con oggetto [OS2122-CHALLENGE-1] con:

  1. l’hash del commit con il codice da sottomettere a valutazione

  2. la matricola

Una soluzione è ritenuta valida se:

  1. è stata inviata correttamente

  2. NON utilizza programmi per il crack/recovery delle password (e.g. Hashcat, John the Ripper). Tuttavia, è ammesso l’utilizzo dei seguenti strumenti per lo sviluppo di soluzioni ad hoc:

Infine, non è possibile sottomettere più di una soluzione. In caso di sottomissione multipla, verrà considerata la prima in ordine cronologico.

Scadenze

  • La sfida rimane aperta fintanto che i punti non sono stati assegnati.

  • I punti possono essere acquisiti entro e non oltre l’A.A. 2021/2022.

Graduatoria

Numero di sottomissioni: 5

Posizione

Id

Data Sottomissione

Password

Valida

Punti

91SN3

30-12-21

OK

OK

1

TVMR3

02-01-22

OK

OK

0

ND.

40LN3

09-01-22

OK

KO: script non presente nel commit

0

ND.

AFS1M

22-12-21

OK

KO: utilizzo di John The Ripper

0

ND.

PEALV

22-12-21

OK

KO: utilizzo di John The Ripper

0

Soluzioni

Per risolvere il problema era necessario generare correttamente l’hash data una password ed utilizzare questa funzionalità per testare password ottenute da un dizionario di password comuni. La password è stata scelta prendendone una presente in più dizionari disponibili online (e.g. RockYou.txt). Di conseguenza, la sfida consisteva nel leggere la documentazione dei tool ammessi (crypt e openssl) ed utilizzarli per individuare la password.

A tal scopo la seguente riga di comando

openssl passwd -1 -table -salt <SALT> -in <FILE>

permette di stampare ciascuna password contenuta in <FILE> con il relativo hash ottenuto utilizzando il sale <SALT>. A questo punto è sufficiente identificare la riga contenente l’hash di interesse <GIVEN_HASH>:

openssl passwd -1 -table -salt <SALT> -in <FILE> | grep <GIVEN_HASH>