IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

http://tools.question-defense.com/Cracking_Passwords_Guide.pdf
http://acacha.org/~sergi/Cracking_Passwords_Guide.pdf
Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SeguretatXarxesInformàtiques
Fitxers: EinesHacking.pdf (EinesHacking.odp)
Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SeguretatXarxesInformàtiques
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas

Introducció

Una paraula de pas és una paraula o conjunt de caràcters que s'utilitza per autenticar, per proveir una identitat o guanyar accés a un recurs.

NOTA: La paraula de pas ha de ser conservada en secret envers aquells que no han de tenir accés al recurs

Se sap que les paraules de pas s'utilitzaven en l'antiguitat (consulteu [1]]).

En temps moderns el ús de paraules de pas s'ha generalitzat i té múltiples usos:

  • Sistemes operatius
  • Aplicacions
  • Serveis remots (p.ex correu electrònic)
  • Telèfons mòbils
  • Decodificadors de TV
  • ATMs

Tot i el nom (paraula de pas), no és necessari que sigui una paraula. De fet, utilitzar una frase o conjunt de paraules pot fer la contrasenya més segura.

IMPORTANT: És recoman l'ús del terme passphrase, que deixa més clar la possibilitat d'utilitzar una frase com a paraula de pas

Si el codi és només numèric se l'anomena passcode (p.ex. PIN).

El ús de paraules de pas té múltiples inconvenients:

  • Poden ser robats
  • Poden oblidar-se o perdre's
  • Poden ser spoofed

El protocols criptogràfics s'utilitzen en informàtica com un sistema més modern i potent d'autenticació.

Història de les paraules

Escollir una bona paraula de pas

Criteris:

  • El més important és la mida de la paraula de pas. Quan més llarga millor

Tècniques:

  • Padding: consisteix en afegir caràcters extres per tal de fer que la mida de la praula de pas sigui més segura. Quina paraula de pas és més segura?
D0g.....................
PrXyc.N(n4k77#L!eVdAfp9

Comproveu a:

https://www.grc.com/haystack.htm

IMPORTANT: ENTROPY/Entropia: (randomness and unpredictability of data) If you are mathematically inclined, or if you have some security knowledge and training, you may be familiar with the idea of the entropy or the randomness and unpredictability of data. If so, you'll have noticed that the first, stronger password has much less entropy than the second (weaker) password. Virtually everyone has always believed or been told that passwords derived their strength from having “high entropy”. But as we see now, when the only available attack is guessing, that long-standing common wisdom . . . is . . . not . . . correct!

Calculador de combinacions possibles per a paraules de pas

https://www.grc.com/haystack.htm

Estadístiques de quan es tarda en atacar una paraula de pas

Casos reals i bases de dades reals de paraules de pas. Leaked Password

https://wiki.skullsecurity.org/Passwords#Leaked_passwords aka Leaked Passwords

Sony passwords

Estadístiques reals de les paraules de pas utilitzades a partir de llistes de usuaris i paraules de pas obtingudes en forats de seguretat de grans companyies:

Gawker

Paraules de pas Linux

Les funcions criptogràfiques de hash suportades són:

$ mkpasswd -m help
Métodos disponibles:
des	standard 56 bit DES-based crypt(3)
md5	MD5
sha-256	SHA-256
sha-512	SHA-512

Les paraules de pas s'emmagatzemen al fitxer /etc/shadow el format segons:

$ man 3 crypt

és:

Glibc Notes
      The glibc2 version of this function supports additional encryption algorithms.

      If salt is a character string starting with the characters "$id$" followed by a string terminated by "$":

             $id$salt$encrypted

      then instead of using the DES machine, id identifies the encryption method used and this then determines how the rest of the password string is interpreted.  The following  values  of  id  are
      supported:

             ID  | Method
             ─────────────────────────────────────────────────────────

             1   | MD5
             2a  | Blowfish (not in mainline glibc; added in some
                 | Linux distributions)
             5   | SHA-256 (since glibc 2.7)
             6   | SHA-512 (since glibc 2.7)

      So $5$salt$encrypted is an SHA-256 encoded password and $6$salt$encrypted is an SHA-512 encoded one.

      "salt" stands for the up to 16 characters following "$id$" in the salt.  The encrypted part of the password string is the actual computed password.  The size of this string is fixed:

      MD5     | 22 characters
      SHA-256 | 43 characters
      SHA-512 | 86 characters

      The characters in "salt" and "encrypted" are drawn from the set [a–zA–Z0–9./].  In the MD5 and SHA implementations the entire key is significant (instead of only the first 8 bytes in DES).

La configuració de quin tipus de paraules de pas s'estan utilitzant la trobareu a:

$ cat /etc/login.defs | grep ENCRYPT_METHOD
# This variable is deprecated. You should use ENCRYPT_METHOD.
ENCRYPT_METHOD SHA512
# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512.

I també al fitxer:

/etc/pam.d/common-password

Recursos:

Paraules de pas Windows

Vegeu Criptoanàlisi de contrasenyes de Windows

Atacs i criptoanàlisi

Tipus d'atacs:

  • Diccionari/Dictionary: A dictionary attack is the simplest and fastest password cracking attack. To put it simply, it just runs through a dictionary of words trying each one of them to see if they work. Although such an approach would seem impractical to do manually, computers can do this very fast and run through millions of words in a few hours. This should usually be your first approach to attacking any password, and in some cases, it can prove successful in mere minutes. Vegeu john the ripper amb mode diccionari
  • Rainbow Table: Most modern systems now store passwords in a hash. This means that even if you can get to the area or file that stores the password, what you get is an encrypted password. One approach to cracking this encryption is to take dictionary file and hash each word and compare it to the hashed password. This is very time- and CPU-intensive. A faster approach is to take a table with all the words in the dictionary already hashed and compare the hash from the password file to your list of hashes. If there is a match, you now know the password. Vegeu Ophcrack,Cain i Abel.
  • Brute Force//Força bruta: Brute force is the most time consuming approach to password cracking. It should always be your last resort. Brute force password cracking attempts all possibilities of all the letters, number, special characters that might be combined for a password and attempts them. As you might expect, the more computing horsepower you have, the more successful you will be with this approach. Vegeu john the ripper amb el mode incremental
  • Hybrid: A hybrid password attack is one that uses a combination of dictionary words with special characters, numbers, etc. Often these hybrid attacks use a combination of dictionary words with numbers appending and prepending them, and replacing letters with numbers and special characters. For instance, a dictionary attack would look for the word "password", but a hybrid attack might look for "p@$$w0rd123".
  • Atacs online/Atacs offline: . Una aplicació coneguda per atacs online és hydra. La llista completa d'aplicacions que apareixen a la distro Kali Linux és: acccheck,burpsuite,cewl,dbpwaudit,finmyhash,phrasedreshcher,thc-pptp-bruter,webscarab,keimpxmedusa,ncrack,onesistyone,owasp-zap,patator
  • Passing the hash:


Recursos:

Llistes de fitxers que contenen contrasenyes

Hi han un munt d'aplicacions que utilitzen les seves pròpies contrasenyes i que poden contenir contrasenyes sensibles per una màquina (sovin l'usuari de root utilitza la mateixa contrasenya per a tot ;-) ). Això pot ser un problema per si ens entra un atacant al sistema o si tenim usuaris que tot i no tenir permisos de root poden visualitzar aquest fitxers. Veiem alguns exemples:

Subversion

A la home dels usuaris:

.subversion/servers

El client de subversion guarda les paraules de pas sense xifrar.

Contrasenyes d'Apache

Fitxers .httacces i .htpasswd

$ locate .htaccess

o

$ find / -name .htaccess

Mediawiki

El fitxer LocalSettings.php de mediawiki conté les contrasenyes (en clar) de la mediawiki. Aquest fitxer però, sovint només el pot visualitzar l'administrador del sistema:

$ locate LocalSettings
/etc/mediawiki1.5/LocalSettings.php

$ sudo cat /etc/mediawiki1.5/LocalSettings.php | grep pass
$wgDBpassword       = "123456";

Moodle

Hi ha un fitxer config.php al menys en les instal·lacions des de el paquet Debian que conté la contrasenya de base de dades:

$ locate config.php | grep moodle
/etc/moodle/config.php
...............

$ sudo cat /etc/moodle/config.php | grep pass
$CFG->dbpass = 'contrasenya';

També el més normal és que la contrasenya sigui de només lectura.

Mysql

Un error típic de Mysql és deixar la contrasenya per defecte de root (cap contrasenya). Això no hauria de ser un problema per que només es per l'execució de mysql des de la màquina local. El problema es que sovint després la gent instal·la PhpMyadmin o eines web similar que permeten l'accés via web a la base de dades. L'aplicació PhpMyadmin a l'estar instal·lada en local pot utilitzar la contrasenya de root. Podem localitzar instal·lacions de Phpmyadmin amb Google. Consulteu l'article Utilitzar_Google_per_tal_de_detectar_vulnerabilitats#PhpMyAdmin.

Usuari de debian amb tots els permisos a la base de dades:

$ sudo cat /etc/mysql/debian.cnf

Awstats

Un altres que té un fitxer de contrasenyes, però aquest cop almenys no esta en text clar:

$ cat /etc/awstats/.passwd 
admin:Fezgp7NA4ULQY

Però potser la contrasenya no és molt forta, cal provar amb John The Ripper.

Cerca de contrasenyes

Hi han moltes paraules claues que ens poden ajudar a buscar contrasenyes:

$  locate htaccess
$ locate passwd
$ locate htpasswd
$ locate secret
$ locate password
$ locate contrasenya
$ locate contraseña

etc...

bash

Com preguntar paraules de pas per línia d'ordres i desactivar l'eco.

Generadors de paraules de pas

apg

Vegeu apg

mkpasswd:


$ sudo apt-get install makepasswd
$ makepasswd
DnqTBW96

mkpasswd:

NOTA: No és un generador de paraules de pas, realment és una eina per crear hashs de paraules de pas amb diferents funcions criptogràfiques de hash

$ sudo apt-get install mkpasswd

Generador de paraules de pas fàcils de recordar:

Obligar a utilitzar contrasenyes segures als usuaris d'un sistema amb PAM

PAM té un sistema per forçar als usuaris a escollir contrasenyes potents:

pam_passwdqc

Pam_passwdqc permet comprovar la potència de les contrasenyes i ofereix suport per a frases de pas (passphrases) i proveeix de contrasenyes aleatòries.

Vegeu també cracklib

Recursos:


LOG_UNKFAIL_ENAB

Consulteu LOG_UNKFAIL_ENAB i /etc/login.defs.

keepassx

Consulteu keepassx.

Vegeu també

Enllaços externs