Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di...

25
Esercitazione 4 OTPW Laboratorio di Sicurezza 2020/2021 Davide Berardi <[email protected]>

Transcript of Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di...

Page 1: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esercitazione 4OTPW

Laboratorio di Sicurezza 2020/2021Davide Berardi <[email protected]>

Page 2: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Path of least resistance 1/ 23

Page 3: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Perche? 2/ 23

Il canale in cui la password transita puo non essere sicuro.

I Un utente malintenzionato puo intercettare la password e riusarla per accessisuccessivi.

I Cosa possiamo fare? Possiamo usare la crittografia per arginare questo problema.

I One Time PassWord e una tecnica che puo essere usata a questo scopo.

Page 4: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Come 3/ 23

U per accedere all’host H.

I 1. U dichiara l’intenzione di accedere all’host H;2. H seleziona una challenge e la invia a U;3. U calcola una risposta e lo invia a H;4. H verifica che la risposta sia legittima e permette l’accesso a U.

I Solo U possiede le informazioni che gli permettono di calcolare il responsecorretto.

I Intercettare la challenge o la risposta non fornisce nessuna informazioneall’attaccante.

Page 5: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Path of least resistance...again 4/ 23

WPA-EAP implementa questa tecnica.

I Il client (supplicant) invia al server (autenticator) la richiesta di associazione allarete;

I Il server invia al client una challenge;

I Il client cifra questa challenge con la propria password d’accesso e invia questainformazione al server;

I Il server cifra la challenge con la stessa password e controlla che il risultato sia ilmedesimo.

Sussiste un problema di MITM se il server e malevolo e quindi cracca la response conattacchi brute force o a dizionario.

I Se non viene installato un certificato sul client, ogni Access point (p.e. hotspotdel telefono) puo spacciarsi per ogni rete (e.g. ALMAWIFI).

Page 6: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Even worse! WPA-EAP GTC Downgrade attack 5/ 23

EAP-GTC is an EAP method created by Microsoft and Cisco to support theuse of hardware tokens and one-time passwords with EAP-PEAP. Its implemen-tation is similar to MSCHAPv2, but does not use a peer challenge. Instead,passwords are sent to the access point in plaintext.

1

I In questo caso la password viene inviata automaticamente in chiaro!

I I EAP NetworkI Evil Twin (spacciarsi per un’altra rete)I GTC DowngradeI No certificati sui clientI Smartphone (che fanno l’accesso in automatico)I SSO (stessa password per piu servizi)

1https://solstice.sh/2019/09/10/eap-downgrade-attacks/

Page 7: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

OTPW 6/ 23

OTPW e un sistema di One-time-password sviluppato per UNIX.

I Permette di effettuare login sul sistema senza inviare sempre la stessa password.

I L’implementazione che useremo e compatibile con protocolli come FTP, SSH, etc.

Page 8: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

OTPW 7/ 23

OTPW e un sistema di One-time-password sviluppato per UNIX.

I L’utente mantiene una lista di password, le quali sono utilizzabili una volta sola.

I Alla password viene preposto un prefisso scelto durante la fase di generazione dellepassword.

I Il server mantiene un hash one way delle password valide.

Page 9: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

OTPW 8/ 23

L’hash delle password viene memorizzato in un file ~/.otpw di default nella homedell’utente.

I Per generare le password si usa il comando otpw-gen;

I Viene richiesto un prefisso che dovra essere usato prima delle password generate.

I Ai fini dell’esercitazione conviene salvare le password generate in un file di testootpw-gen > passwd.txt

Page 10: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esempio di lista di password generate 9/ 23

1 000 IZdB bqyH 006 rF62 k6 z i2 001 yCSo /VQs 007 Phvb =6ZW3 . . .

La lista delle password e composta da un numero progressivo e la password (8caratteri, lo spazio al centro e da eliminare).

Page 11: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esempio di autenticazione 10/ 23

1 l o g i n : kuhn2 Password 019 : pre f i s soOdAkH62c

Quando si effettua il login, viene richiesto l’id della password (019 in questo caso).Dopo averla usata questa verra invalidata dal sever.

Race-for-the-last-key-attack

L’attaccante fa una connessione parallela a quella dell’utente legittimo, cercando diinserire la stessa password piu velocemente dell’utente legittimo.

OTPW puo chiedere tre password, diverse per ogni connessione, in modo da limitarequesto genere di attacchi.

Page 12: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esercitazione 11/ 23

L’esercitazione e svolta nel seguente modo

I Lo studente configura sulla propria macchina virtuale un servizio conautenticazione OTPW;

I Riceve una coppia username, password dal tutor;

I Configura il server per permettere l’accesso all’utente username via SSH usandoOTPW, usando come prefisso la password inviata via mail;

I Accede al servizio usando OTPW.

Page 13: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Richiedere Username e password 12/ 23

Per richiedere lo username e la password con cui configurare il sistema si deveprocedere nel seguente modo:

I Connettersi a http://localhost/esercitazione4/

I Compilare il form

I Username e password del dominio studio.unibo.it

I Nome, cognome e matricola (10 cifre);

I Viene inviata una mail di conferma con:

I I dati inseriti;I Uno username e una password generati casualmente.

Page 14: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esercitazione - Cosa inserire nel report 13/ 23

Per terminare l’esercitazione e sufficiente inserire nel report:

I Una copia della mail ricevuta (solo il body)

I Uno screeshot del log /var/log/messages;

I Uno screenshot relativo all’autenticazione challenge-response via terminale;

I Il response;

I Il file ~/.otpw.

Page 15: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esempio di login 14/ 23

Page 16: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esempio di log di autenticazione 15/ 23

Page 17: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Esempio di file ˜/.otpw 16/ 23

L’header contiene:

I Il formato del file (OTPW1);

I Il numero di password generate (280);

I Il numero di caratteri ASCII usati per codificare ilnumero progressivo delle password;

I Il numero di caratteri per codificare il valore dell’hashdella password (12);

I Il numero di caratteri plaintext delle password (8).

Il corpo del file contiene:

I Il numero progressivo della password;

I L’hash della password.

Page 18: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Linux Login – PAM 17/ 23

L’operazione di Login nei sistemi Linux e gestita tramite un layer chiamato PAM –Pluggable Authentication Modules.

I Questo e un framework per scorporare le applicazioni dai metodi di autenticazione.

I e.g. Login con fingerprint o con face ID o con “chiavetta usb”;

I Esistono dei file di configurazione (/etc/pam.d/*)

I L’infrastruttura di PAM utilizza dei plugin, sotto forma di librerie dinamiche.

L’API di PAM e strutturata in diverse facilities:

I Account Manager: Disponibilita di un account (e.g. account disabilitati).

I Authentication: Autenticazione e gestione permessi.

I Session Management: Apertura e chiusura di una sessione.

I Password Management: Procedure per il cambio password.

Page 19: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

PAM 18/ 23

Applicazioni PAM Aware PAM API

File di configurazione

OTPW

Kerberos

Unix Authentication

Page 20: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

PAM – configurazione 19/ 23

PAM e configurabile per servizio

I All’interno della directory /etc/pam.d, ogni file contiene le regole diconfigurazione per un determinato servizio.

I Per ogni servizio ci possono essere piu regole.

I Ogni regola indica un modulo PAM da caricare per una determinata facility.

I I moduli vengono eseguiti in ordine.

Page 21: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

PAM – configurazione 20/ 23

I moduli di PAM possono essere configurati con diverse politiche:

I required, la cui verifica fallisce al termine della lettura di tutti i moduli.

I requisite, come required ma con terminazione istantanea.

I sufficient, il successo del modulo e sufficiente per soddisfare tutti i requisiti.

I optional, il successo del modulo e importante solo se questo e l’unico della suapila (per tipo).

Page 22: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

PAM – configurazione 21/ 23

Il modulo PAM per il login (/etc/pam.d/login)

1 #%PAM−1.02

3 auth r e q u i r e d pam secu r e t t y . so4 auth r e q u i s i t e pam no log in . so5 auth i n c l u d e system−l o c a l− l o g i n6 account i n c l u d e system−l o c a l− l o g i n7 s e s s i o n i n c l u d e system−l o c a l− l o g i n

Questi file devono essere configurati per servizio (che deve essere compatibile conPAM, e.g. SSHD).

Page 23: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

PAM – configurazione SSH 22/ 23

L’esercitazione richiede di configurare sshd per fare login tramite OTPW

I Creare il file /etc/pam.d/sshd con contenuto simile a

1 auth r e q u i r e d pam otpw . so

I Nel file di configurazione di sshd (/etc/ssh/sshd config), configurare leseguenti impostazioni:

1 Pas swo rdAuthenc t i c a t i on no2 PermitRootLog in no3 UsePAM yes

Page 24: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Alcuni comandi utili 23/ 23

I Aggiungere un utente al sistema

1 sudo adduse r nomeutente

I Riavviare ssh

1 sudo s e r v i c e s shd r e s t a r t

I Accedere al vostro sistema tramite ssh

1 s sh nomeuten t e@ loca l ho s t

I Modificare un file (come root) da terminale

1 sudo vim / e t c / s sh / s s h d c o n f i g

I Se non vi piace vim

1 sudo apk add nano2 sudo nano / e t c / s sh / s s h d c o n f i g

Page 25: Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di One-time-password sviluppato per UNIX. I Permette di e ettuare login sul sistema senza inviare

Domande?