Présentation au groupe SUR de l'OSSIR du 2 février 2000
Reproduction strictement interdite
1. Introduction
Cette présentation va aborder six points :
Les différents algorithmes de chiffrement
La localisation des empreintes
Les méthodes de crackage
Les logiciels de crackage
La protection des mots de passe
Le durcissement des mots de passe
Pour chaque point les spécificités Unix et Windows NT seront
soulignées
2. Les différents algorithmes de chiffrement
L'algorithme utilisé dépend fortement du contexte :
Unix
Windows NT
Réseau
2.1 Stockage d'un mot de passe
Le mot de passe n'existe qu'en version chiffrée
2.2 Chiffrement d'un mot de passe
L'algorithme utilisé doit être non inversible.
Le mot de passe sert de clé
Une graine (ou piment) sert de diversifiant
2.3 Vérification d'un mot de passe
La comparaison s'effectue toujours sur le mot de passe chiffré.
2.4 Les différents algorithmes de chiffrement sous Unix (1/3)
DES :
La chaîne "zéro" est chiffrée 25 fois en utilisant
le mot de passe comme clé
Une graine de 2 caractères permet d'empêcher les attaques
par dictionnaire pré-calculé
Insuffisant avec plusieurs milliers de comptes : risques de collisions
Seuls les 8 premiers caractères sont pris en compte
Certains systèmes peuvent prendre en compte 16 caractères
En fait deux mots de passe de 8 caractères.
L'empreinte obtenue est composée de 24 caractères
La fonction crypt de BSDI appelle 725 fois la fonction DES
2.5 Les différents algorithmes de chiffrement sous Unix (2/3)
MD5 :
Le MD5 du mot de passe est calculé 32 fois récursivement
Le but est d'avoir une fonction crypt sans fonction de chiffrement
Une graine de 2 à 8 caractères permet d'empêcher les
attaques par dictionnaire pré-calculé
Disponible sous FreeBSD, OpenBSD, Linux (libc5 et glibc2) et d'autres avec
PAM.
2.6 Les différents algorithmes de chiffrement sous Unix (3/3)
BlowFish :
Une chaîne est chiffrée 32 fois en utilisant le mot de passe
comme clé
Le but est d'avoir une fonction crypt très difficilement optimisable,
notamment dans une puce : "Cracking DES" by the Electronic Frontier
Fondation
Une graine de 128 bits permet d'empêcher les attaques par dictionnaire
pré-calculé
Le nombre d'appels à la fonction blowfish est paramétrable
de 2^5 à 2^31 itérations
Disponible seulement sous OpenBSD
2.7 Les différents algorithmes de chiffrement sous Windows NT
LanMan :
Le mot de passe est mis en majuscule et divisé en deux parties de
7 caractères
Chaque moitié sert à chiffrer en DES la chaîne
"zéro" :
Attaques limitées à des mots de 7 caractères
Aucune graine n'est utilisée pour empêcher les attaques par
dictionnaires pré-calculés
NTLM :
Le MD4 du mot de passe en Unicode
Aucune graine n'est utilisée pour empêcher les attaques par
dictionnaires pré-calculés
2.8 Les différents algorithmes de chiffrement sur le Réseau
(1/2)
L'algorithme utilisé dépend fortement du protocole applicatif
utilisé mais aussi de son niveau
En clair : telnet, ftp, r* commandes, pop, http, etc.
Challenge / réponse : principe
A la connexion d'un client, le serveur envoie une chaîne nommée
challenge.
Le client calcule la réponse à partir du challenge, du mot
de passe, d'autres données éventuellement et d'une fonction
donnée.
Le client renvoie la réponse au serveur qui a effectué le
même calcul de son côté.
L'accès est autorisé si les deux réponses sont identiques.
2.9 Les différents algorithmes de chiffrement sur le Réseau
(2/2)
Challenge / réponse :
apop (rfc1939) : la réponse est le md5 de la concaténation
du challenge et du mot de passe.
HTTP Digest (rfc2617) : la réponse est le md5 de la concaténation
de plusieurs chaînes
SMB :
chaque tiers du mot de passe chiffré sert de clé au chiffrement
du challenge en DES.
Suivant les versions du client et du serveur, ce sont les empreintes LanMan
et/ou NTLM qui sont utilisées.
3. La localisation des empreintes
Une empreinte est le résultat du hachage d'un mot de passe par un
algorithme non réversible.
Cette opération permet d'enregistrer dans le système une
"image" du mot de passe
et empêche quiconque d'accéder au mot de passe en clair.
La localisation des empreintes dépend fortement du contexte :
Unix
Windows NT
Applications
3.1 La localisation des empreintes sous Unix
/etc/passwd
mots de passe "cachés" (shadow passwords) :
/etc/shadow : Linux, Solaris et d'autres...
Systèmes BSD : /etc/master.passwd
AIX : /etc/security/passwd
HP-UX (C2) : /etc/sec.passwd
SunOS (C2) : /etc/security/passwd.adjunct
3.2 La localisation des empreintes sous Windows NT
Avertissement :
- De nombreux clients sauvegardent les mots de passe des utilisateurs
de façon réversible et accessible à
tous dans la base de registre ou dans des fichiers utilisateurs.
- Les problèmes engendrés par ces mots de passe dépassent
l'objet de cette présentation.
SAM :
$windir$\system32\config\sam
$windir$\repair\sam._
Disquette de réparation
frontpage : attention aux fichiers *.pwd
3.3 La localisation des empreintes applicatives
apache : les fichiers .htpasswd contiennent des mots de passe
DES / MD5 / SHA ou en clair
apop : les fichiers ~/.apop/secret contiennent des mots de
passe en clair
wwwboard, discus board, etc. : les fichiers suivants contiennent
des mots de passe DES
admin.txt
passwd.txt
users.txt
4. Les méthodes de crackage
Par ingéniérie sociale
Par dictionnaires
Par force brute
4.1 Ingéniérie sociale
login
nom et prénom de l'utilisateur
noms des proches de l'utilisateur
passions et métier de l'utilisateur
numéro de sécurité sociale, immatriculation, téléphone,
adresse, date de naissance...
4.2 Dictionnaires
Types de dictionnaires :
Mots courants de la langue natale de l'utilisateur
Prénoms et noms de même origine que l'utilisateur
Noms de personnages et d'acteurs
Vocabulaires propres à des livres, films, séries, jeux...
OPIE is a freely redistributable kit that will drop into most *IX systems
and replace your login and FTP daemon with versions that use OTP for user
authentication. It also includes an OTP generator and a library to make it
easy to add OTP authentication to existing clients and servers.
SSF est une adaptation de la suite publique "SSH Unix", destinée à
l'usage sur le territoire français en conformité avec la législation
française concernant la cryptologie.
SSF-128 est un produit dont la taille de l'espace de clé est limitée à
2^128, et dont l'usage est libre (les utilisateurs n'ont aucune
démarche à effectuer).
Il a fait l'objet de la déclaration n° 9908271 auprès du SCSSI.
designed to work as SSL encryption wrapper between remote client and local
(inetd-startable) or remote server. The concept is that having non-SSL aware
daemons running on your system you can easily setup to communicate with
clients over secure SSL channels. stunnel can be used to add SSL
functionality to commonly used inetd daemons like POP-2, POP-3 and IMAP
servers as well as standalone daemons like NNTP, SMTP and HTTP without
changes to the source code.
Latest Version: 3.2 Last Update: May 24, 1999
6.8 La protection des mots de passe sur le réseau : SMB
SMB :
Sur chaque client :
Interdire l'envoi du mot de passe en clair sur le réseau
Sur chaque serveur :
Limiter le chiffrement à NTLM (NTLMv2 à partir du
SP4 de NT4)
6.9 La protection des mots de passe sur le réseau : extensions MicroSoft
challenge / réponse NTLM :
Microsoft a porté son système de challenge / réponse
NTLM dans plusieurs protocoles ouverts : HTTP, IMAP, LDAP, NNTP et POP3
Avantages :
- Le mot de passe n'est plus envoyé en clair
Inconvénients :
- Dans une implémentation modifiée d'un client :
la connaissance de l'empreinte du mot de passe suffit
à s'authentifier.
- Il s'agit d'extensions non documentées implémentées
seulement dans
. les serveurs IIS et Exchange . les clients Internet Explorer et Outlook.
Internet Explorer refuse d'utiliser NTLM dans HTTP au travers d'un
relai
fetchmail permet d'utiliser l'authentification NTLM dans IMAP.
6.10 La protection des mots de passe applicatifs
apache : les fichiers .htpasswd ne doivent pas être
accessibles par un quelconque moyen de partage de fichiers (ftp, http,
nfs...).
wwwboard, discus board, etc. : ne pas utiliser ces systèmes
:-(
à moins qu'il soit possible de marquer les fichiers de mots
de passe comme non accessibles.
serveurs Netscape : le fichier id2entry.dbb (base LDAP) ne
doit pas être accessible par un quelconque moyen de partage de fichiers.
frontpage : protéger les fichiers *.pwd par des ACL.
6.11 Exemples d'accès à des fichiers de mots de passe
fichiers .htpasswd via ftpsearch
1 -rw-rw-r-- 25.8K 2000 Jan 20 ftp.xxxxxxxxxxx.edu /pub/discussions/hypernews/hnpeople/.htpasswd
2 -rw-rw-r-- 68.3K 2000 Jan 20 ftp.xxxx.hu /customers/virtuals/jobbank/public_html/cv/.htpasswd
3 -rw-rw-r-- 6.4K 2000 Jan 17 ftp.xxxx.hu /customers/virtuals/jobbank/public_html/employers/.htpasswd
4 -rw-r--r-- 44 2000 Jan 11 ftp.xxxxxxxxxxx.dk /projects/nl3dp/.htpasswd
5 -rw-r--r-- 59 1999 Dec 16 ftp.xxxxxxxxxxx.com /Products/protected/.htpasswd
6 -rwxr-xr-x 39 1999 Dec 14 ftp.xxxxxx.net /showcase/benssite/.web/.htpasswd
7 -rw-r--r-- 23 1999 Dec 14 ftp.xxxxxxxxx.edu /coe/tame/prot-dir/.htpasswd
8 -rw-r--r-- 41 1999 Nov 9 ftp.xxxxxxxxx.edu /depts/beg/crg/topics/outcrop/PRIVATEadmn/.htpasswd
9 -rw-r--r-- 0 1999 Nov 3 ftp.xxxxxxxxx.edu /depts/sun2-xttys/.htpasswd
10 -rw-r--r-- 40 1999 Oct 26 ftp.xxxxxxxxx.edu /student/tfba/securedadmin/.htpasswd
11 -rw-r--r-- 19 1999 Oct 20 ftp.xxxxx.ch /irc/public_html/b/243/.htpasswd
12 -rw-r--r-- 25 1999 Oct 18 ftp.xxxxxxxxx.edu /student/ica/password/.htpasswd
13 -r--r--r-- 1.0K 1999 Oct 15 ftp.xx.pt /disk2/pdacentral/wincelair/_pwprotect/.htpasswd
14 -r--r--r-- 1.0K 1999 Oct 15 ftp.xxxxxx.no /.11/pdacentral/wincelair/_pwprotect/.htpasswd
15 -r--r--r-- 1.0K 1999 Oct 15 ftp.xxxxxxx.pt /.3/pdacentral/wincelair/_pwprotect/.htpasswd
16 -r--r--r-- 1.0K 1999 Oct 15 ftp.xxxxxx.pt /.d9/mirrors_www/pdacentral/wincelair/_pwprotect/.htpasswd
17 -rw-r--r-- 40 1999 Oct 14 ftp.xxxxxxxxx.edu /student/tfba/directoradmin/.htpasswd
18 -rw-r--r-- 41 1999 Oct 6 ftp.xxxxxxxxx.edu /student/apo/secureadmin/.htpasswd
19 -rw-r--r-- 21 1999 Oct 4 ftp.xxxxxxxxx.edu /depts/french/.web/fac/cauvin/protimadmin/.htpasswd
20 -rw-r--r-- 25 1999 Sep 29 ftp.xxxxxxxxx.edu /coe/sqi/confs/ieee/ftp/.htpasswd
fichiers admin.txt , passwd.txt et users.txt via altavista
1. Index of /~j9706248/discus_admin
URL: www.xxxxxxxxxxx.uk/~j9706248/discus_admin/
2. Index of /Tools/discus_admin
URL: www.xxxx.org/Tools/discus_admin/
3. Index of /~ycstweb/discus_admin_9787
URL: www.xxxx.com/~ycstweb/discus_admin_9787/
4. Index of /chode/discuss/admin/
URL: www.xxxxxx.com/chode/discuss/admin/
5. Index of /Discus/discus2_30
URL: xxxxxxx.com/Discus/discus2_30/
6. Index of /spring/discus_admin
URL: www.xxxxxxx.net/spring/discus_admin/
7. Index of /~linyi/discus_admin_145129241/
URL: xxxxxxxxx.xxxxxxxxxxxx.sg/~linyi/discus_admin_145129241/
8. Index of /discus_admin_229269155
URL: www.xxxxxxxxxxx.com/discus_admin_229269155/
9. Index of /kit/discus_admin
URL: users.xxxxxx.net/kit/discus_admin/
10. Index of /discus_admin_04251121
URL: www.xxxxxxxxxxxxx.net/discus_admin_04251121/
7. Le durcissement des mots de passe
Permet de n'accepter un nouveau mot de passe
seulement après s'être assuré qu'il suit un
certain nombre de règles.
Le durcissement des mots de passe est toujours lié au système
7.1 Pourquoi durcir les mots de passe ? (1/3)
Constitution des mots de passe crackés
2215 (100.00 % ) Mots de passe crackés
1015 ( 45.82 % ) Un mot en minuscules
441 ( 19.91 % ) Un mot en minuscules suivi du chiffre '1'
209 ( 9.44 % ) Un mot en minuscules suivi d'un chiffre autre que '1'
2 ( 0.09 % ) Un mot en minuscules suivi d'une majuscule
40 ( 1.81 % ) Un mot en minuscules suivi d'un autre caractère
38 ( 1.72 % ) Le chiffre '1' suivi d'un mot en minuscules
12 ( 0.54 % ) Un chiffre autre que '1' suivi d'un mot en minuscules
7 ( 0.32 % ) Un autre caractère suivi d'un mot en minuscules
191 ( 8.62 % ) Plusieurs chiffres suivis d'un mot en minuscules
5 ( 0.23 % ) Un mot en minuscules suivis de plusieurs chiffres
12 ( 0.54 % ) minuscule(s) chiffre(s) minuscule(s)
2 ( 0.09 % ) chiffre(s) minuscule(s) chiffre(s)
57 ( 2.57 % ) nombre
9 ( 0.41 % ) minuscules et chiffres
88 ( 3.97 % ) Une majuscule suivi de minuscule(s)
22 ( 0.99 % ) Une majuscule suivi de minuscule(s) et du chiffre '1'
11 ( 0.50 % ) Une majuscule suivi de minuscule(s) et d'un chiffre autre que '1'
1 ( 0.05 % ) Une majuscule suivi de minuscule(s) et de chiffres
1 ( 0.05 % ) Une majuscule suivi de minuscule(s) et d'une majuscule
8 ( 0.36 % ) Une majuscule suivi de minuscule(s) et d'un autre caractère
24 ( 1.08 % ) Un mot en majuscules
1 ( 0.05 % ) Un mot en majuscules suivi du chiffre '1'
2 ( 0.09 % ) Un mot en majuscules suivi d'un autre chiffre
1 ( 0.05 % ) Un mot en majuscules suivi de plusieurs chiffres
0 ( 0.00 % ) Un mot en majuscules suivi d'un autre caractère
1 ( 0.05 % ) Une suite de majuscule(s) et de minuscule(s)
0 ( 0.00 % ) Une suite de majuscule(s) et de chiffre(s)
1 ( 0.05 % ) Une suite de majuscule(s), de minuscule(s) et de chiffre(s)
14 ( 0.63 % ) Toute autre combinaison de caractères