Analyza hesiel zo serveru miesto.sk

02.01.2002 19:35

Pri prilezitosti ukradnutia hesiel z hyperlinx.cz a robenia jeho rozboru, som narazil na starsi, ale velmi dobry rozbor hesiel. Tieto pochadzaju z prveho hacku servera miesto.sk. Kde ich bolo ukradnutych viac ako 20 000. Analyza je prepracovana do najmensich detailov. A pretoze si myslim, ze je velmi kvalitna. S autorovym zvolenim vam ju teda prinasam. (mis0 truban)

POPIS
Cielom tejto prace je odhalit urcite vzory a podobnosti medzi heslami, ktore si vyberaju uzivatelia. Je bezcenna v pripade, ze ide o system s generovanim hesiel; naopak, velmi sa moze hodit pri zostavovani tzv. wordlistoch pri kontrolovani bezpecnosti standardnych UNIXovych hesiel na lokalnom pocitaci.

PRESNOST
Kvoli charakteru pouzitych databaz nebolo mozne zaistit uplnu presnost v mnozstve hesiel. Vysledky analyzy preto treba brat s urcitou rezervou.

Ak sa pytate preco nie su vysledky presne, pokusim sa podat odpoved. Databazy s heslami obsahuju aj tie poziadavky o registraciu stranky, ktore neboli vykonane, pripadne to boli len tzv. testovacie poziadavky. Takisto sa v databazach mohlo vyskytovat viac rovnakych hesiel, ktore si zvolil *rovnaky* uzivatel. Nebolo jednoducho v mojich silach skontrolovat vsetky moznosti.

TYPY ZAZNAMOV
Hesla boli k dispozicii v podobe jedneho 8-9 MB suboru, ktory predstavoval vypis (dump) z SQL databaz. Pred kazdym vypisom jednotlivej databazy bola v tomto subore uvedena aj struktura databazy, tzn. datove typy a nazvy zaznamov.

a) passql

popis zaujima nas?

1. login x
2. pass x
3. e-mail x

b) users

popis zaujima nas?

1. id (poradie)
2. login x
3. pass x
4. oblast
5. meno x
6. priezvisko x
7. vzdelanie
8. pracovny pomer
9. bydlisko - kraj
10. bydlisko - velkost
11. prijem
12. e-mail x
13. status (queued, ready, done, cancelled)
14. timestamp
15. web (ano/nie)
16. reklama_index (ano/nie)
17. reklama_all (ano/nie)
18. titulok_index
19. titulok_att (attribute?)
20. index_att (attribute?)

c) work

popis

1. id (poradie) x
2. login x
3. pass x
4. oblast
5. meno x
6. priezvisko x
7. vzdelanie
8. pracovny pomer
9. bydlisko - kraj
10. bydlisko - velkost
11. prijem
12. e-mail x
13. status (queued, ready, done, cancelled)

Databaza passql sa, myslim si, uz nepouziva, a tak som ju v analyze nepouzil. K tomuto nazoru som dospel tak, ze rovnake zaznamy sa nachadzali aj v passql aj v users. V pripade vsetkych databaz nas zaujimali len uzivatelske mena a hesla, pripadne aj e-mail a meno; v zavislosti od toho, ktory udaj bol k dispozicii.

VYTVARANIE ZOZNAMU UZIVATELOV
Zoznam uzivatelov som vytvoril jednoduchym perlivym skriptom, ktory z dumpov databaz extrahoval oznacene udaje, a zapisal ich vo formate:

- pre passql:

login:password:email\\n

- pre work a users:

login:password:meno:priezvisko\\n

VYTVARANIE WORDLISTU

Subor teraz mozeme zotriedit:

sort users.lst > users.sorted

Hesla zo suboru vyberieme prikazom:

cut -d \":\" -f 2 -s users.sorted | sort | uniq > passwords.sorted

V subore passwords.sorted mame zotriedeny a unifikovany wordlist, ktory mozeme pouzit v lubovolnom brute-force crackeri. Pre rozbor hesiel som vsak pouzil neunifikovany zoznam hesiel (tj. hesla sa opakovali).

ANALYZA VYSKYTU HESIEL

1. VSEOBECNE

Na tuto ulohu som si napisal jednoduchy perl skript, ktory pocital vyskyty slov v subore. Tu je rebricek 10 najpouzivanejsich hesiel:

heslo 115
peter 92
joostje 76
marko 75
martin 66
mp3 60
monika 57
aaaaaaaa 53
trance 44
justiso 43

Samozrejme nejde o celkom presne vysledky, kedze jeden clovek mohol mat zaregistrovanych viac stranok a pouzivat na nich rovnake heslo.

Medzi najpouzivanejsie hesla patria najma mena (aj ked sa to z rebricku nezda). Tychto 30 mien sa vyskytovalo najcastejsie:

peter 92
marko 75
martin 66
monika 57
katka 42
tomas 36
marian 36
marek 32
pivarci 30 (je to meno? ;)
lenka 30
juraj 30
janko 30
risko 29
martina 25
veronika 24
robo 24
milan 24
michal 23
zuzka 22
MISKO 22
martinka 22
jano 21
martinko 20
laco 20
janka 20
andrea 20
mato 19
jaroslav 19
silvia 18
roman 18

Za menami nezaostavaju ani nadavky a vulgarizmy:

kokot 28
fuck 17
fucker 9
pica 8
kurva 8
kokotina 6
jeblinka 6
somkokot 5
debil 5
picovina 3

STRIEDANIE VELKOSTI PISMEN

1. VLASTNE MENA
Najprv som hladal vlastne mena, tj. slova, zacinajuce sa velkym pismenom, pricom obsahuju iba pismena. Takychto hesiel bolo 624. Tu je sest najcastejsich:

Jasmin 27
Internet 8
Martin 7
Kunratic 7
Yrewq 6
Tupacq 6

Ako vidno, nie vzdy islo prave o mena v kalendari ;).

2. REVERZ VLASTNEHO MENA

Dalej ma zaujimali hesla, v ktorych je prve pismeno male a ostatne velke. Take heslo som nasiel iba jedno, \"pANNA\".

3. LEN MALE PISMENA
Samozrejme, tychto hesiel bolo najviac - 17883. Rebricek je zhodny s celkovym vyskytom hesiel (pozri na zaciatku).

heslo 115
peter 92
joostje 76
marko 75
martin 66
monika 57

4. LEN VELKE PISMENA
Ludom sa zvykne pokazit caps-lock :). 294 hesiel bolo velkymi pismenami, tu su najcastejsie:

MISKO 22
NAZDAR 4
SSF 3
SLAVEKOD 3
NOVA 3
NCR 3

CISLA V HESLACH

1. CISLO NA KONCI
Popularnym opatrenim na \"zvysenie bezpecnosti hesla\" je pridanie cisla na koniec slova; takychto hesiel bolo 2944. Sest najpouzivanejsich takychto hesiel:

mp3 160 (toto bolo, myslim si, ocakavatelne)
Arjan1 30
dune1 28
okvk2 16
trustno1 14 (fanusikovia X-Files si spomenu.. ;)
odro6784 14

2. CISLO NA ZACIATKU
Menej casto sa pouzivaju hesla s cislom na zaciatku, takych hesiel som nasiel len 38. 6 najcastejsich:

0csnjita 4
306buggy 2
26210kb 2
1913pb 2
10kilov 2
94301mj 1

3. CISLO KDEKOLVEK V STREDE
Hesiel s cislom v strede je prekvapujuco viac (463). V zozname boli najcastejsie tieto hesla:

Ahu8TD 12
tr85ab 8
mp3king 7
optv15l 6
drink7up 6
apidza2f 6

4. CISLO NA ZACIATKU AJ NA KONCI
Potom nasledovali hesla s cislom na zaciatku a na konci, pricom v strede su pismena. Takych hesiel bolo len 10.

99luc411 1
90J02 1
6184mh61 1
54st4 1
47bs81 1
31ck27 1

5. LEN CISLO
Az 265 bolo hesiel zlozenych cisto z cisiel.

2826411 7
12345678 7
123456 5
86498449 4
801002 4
77777 4

HRANIE SA S KLAVESNICOU

1. ASD/asd
Sem patria rozne \"smart\" a lahko zapamatatelne hesla. Najprv som kontroloval vyskyt retazca asd, resp. ASD (spolu 92 hesiel). Tu su vysledky:

asdfgh 20
asdfg 16
asd 14
asdf 13
asdfghjk 6
qweasd 5

2. QWE/qwe
Potom prisiel na rad retazec qwe (97 hesiel). Vysledky:

qwerty 31
qwert 20
qwertyui 6
qweasd 5
ronoqwe 3
qwerty12 3

3. ZXC/zxc
Hesiel tohto typu som nasiel 10:

zxcvbn 5
zxc 4
zxcvbnm 1

4. 123
Po neuspechu so zxc som presiel na checking retazca \"123\", ktory bol uspesnejsi - 155 hesiel.

XM86123 11
poke123 8
aswq123 8
12345678 7
123456 5
Void123 4

Ako vidno, ludia sa nepoucili, stale si volia hesla typu \"qwerty\" a pod.

Pozn.: v tejto kategorii samozrejme nenajdete vsetky mozne kombinacie hier s klavesami - myslim si, ze na ukazku stacia tieto styri.s1s