Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di...
Transcript of Esercitazione 4 OTPWcs.unibo.it/~davide.berardi6/seclab/04-lab.pdfOTPW e un sistema di...
Esercitazione 4OTPW
Laboratorio di Sicurezza 2020/2021Davide Berardi <[email protected]>
Path of least resistance 1/ 23
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.
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.
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).
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/
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.
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.
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
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).
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.
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.
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.
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.
Esempio di login 14/ 23
Esempio di log di autenticazione 15/ 23
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.
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.
PAM 18/ 23
Applicazioni PAM Aware PAM API
File di configurazione
OTPW
Kerberos
Unix Authentication
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.
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).
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).
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
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
Domande?