O
prócz analizy najczęściej używanych haseł z publikacji danych logowania – możemy sprawdzić jakie najczęściej znaki pojawiają się w hasłach. choćby jeżeli użytkownicy umieszczają w swoich hasłach do serwisów mieszankę liter, cyfr i symboli to przez cały czas mogą paść ofiarą często używanych kombinacji. Poniższe wyciągi pokazują popularność poszczególnych znaków, aby zidentyfikować znaki na klawiaturze, po które ludzie sięgają najczęściej podczas tworzenia swoich haseł. Liczby takie jak 0, 1 i 2, a także symbole takie jak kropka, podkreślenie i znak „małpy” („@”) są przez cały czas powszechne i można je łatwo odgadnąć.
Ponieważ publikacja jest zlepkiem informacji pochodzących z różnych źródeł i szkodliwego systemu na początek postaramy przeprowadzić się standaryzację, w której będziemy chcieli wyłowić hasła z formatu – http(s)://URL login:hasło:
Kolejny krok przewiduje ekstrakcję haseł, czyli znaków po ostatnim dwukropku:
agresor@darkstar:~$ grep -oE '([^:]+$)' standard.txt > passwords.txt agresor@darkstar:~$ wc -l passwords.txt 27447675 passwords.txt agresor@darkstar:~$ du -m passwords.txt 327 passwords.txtUsuwamy duplikaty tych samych haseł:
agresor@darkstar~:$ sort -u passwords.txt > upasswords.txt agresor@darkstar~:$ wc -l upasswords.txt 10677891 upasswords.txt agresor@darkstar~:$ du -m upasswords.txt 138 upasswords.txtSprawdzamy jakie są najpopularniejsze znaki alfanumeryczne (0-9, A-Z, a-z):
LC_ALL=C cat upasswords.txt | sed 's/\(.\)/\n\1/g' | grep [[:alnum:]] \ | sort | uniq -c | sort -gr | pr -3 7709822 a 2094214 h 619108 P 7217207 1 2032570 u 606776 N 6335127 2 1837222 c 578274 K 5937598 0 1726806 k 560299 T 4343205 3 1518883 b 524823 L 4318388 e 1395092 A 524313 H 4284953 9 1364518 p 495379 F 4163748 i 1283672 g 490078 x 3483116 n 1231145 y 489546 G 3435288 4 1024422 f 448712 J 3362410 5 941984 S 433291 I 3350520 r 889828 v 424157 V 3342684 8 881253 j 390030 U 3304932 7 832776 M 354676 q 3207365 o 803122 w 354255 W 3114625 6 765033 z 347199 Y 3066979 s 686652 R 331120 Z 2428027 l 686258 D 318238 O 2366584 t 663020 B 287933 Q 2318858 m 659849 E 278910 X 2130325 d 623135 CAnalogicznie robimy dla znaków:
LC_ALL=C cat upasswords.txt | sed 's/\(.\)/\n\1/g' | grep [[:punct:]] \ | sort | uniq -c | sort -gr | pr -3 2316086 @ 98330 + 12776 ~ 529839 . 79273 , 11129 " 459281 ! 71475 ? 9608 [ 438206 # 68633 = 8300 ] 296981 * 39590 ) 7761 > 283384 $ 35313 ( 7511 \ 257372 / 34451 ^ 6571 } 250848 _ 20321 ; 5594 ` 186981 - 14875Przejdźmy teraz do długości haseł (Top 10):
for i in `cat upasswords.txt`; do x=$i; echo ${#x} >> lpasswords.txt; done cat lpasswords.txt | sort | uniq -c | sort -gr | head -10 1740630 11 1733182 9 1424732 10 1191615 12 1002344 13 703560 16 618794 14 548530 7 452528 15 320508 8Bonus:
Hasła użytkowników z tej publikacji, które dotyczyły polskich serwisów lub kont zostały dodane do słownika z artykułu OK Google, złam mi hasło.
Więcej informacji: Ogromny wyciek, pełen - niezmiennie - głupich haseł, Ogromny wyciek czy wydmuszka? Co wiemy o ostatnim incydencie z milionami polskich haseł, Wyciek z wielu serwisów, którego nie było, Publikacja zbioru wykradzionych danych logowania - co zrobić?