NFsec Logo

Hashcat dla bazy pomarańcze.dot.net

28/04/2019 (4 tygodnie temu) w Bezpieczeństwo 1 komentarz.  (artykuł nr 692, ilość słów: 811)

Z

ałóżmy, że mamy listę 2.036.445 haseł, które są zahaszowane algorytmem md5crypt. Naszym celem nie jest złamanie jak największej liczby haseł w dowolnym czasie, ale chcemy to zrobić jak najszybciej (24h). W tym celu musimy sięgnąć po najniżej wiszące owoce – czyli wykorzystać dane odnoszące się do najczęściej używanych haseł przez użytkowników. Najpopularniejsze hasła to te błyszczące słowa, które od razu pojawiają się w czyimś umyśle, gdy strona internetowa poprosi o utworzenie jednego z nich. Wszystkie są niezwykle łatwe do zapamiętania i dzięki temu dziecinnie proste do odgadnięcia za pomocą ataku słownikowego. Kiedy Mark Burnett przeanalizował 3.3 miliona haseł w 2014 roku w celu określenia tych najczęściej używanych – odkrył, że 0.6 procent to 123456. Dlatego używając 10 najczęstszych haseł – cracker może średnio odgadnąć 16 z 1000.

Do testów użyjemy hashcat v5.1.0-947, który zostanie uruchomiony na MacOS:

git clone https://github.com/hashcat/hashcat.git
mkdir -p hashcat/deps
git clone https://github.com/KhronosGroup/OpenCL-Headers.git hashcat/deps/OpenCL
cd hashcat/ && make

Łamaniem zajmie się skromna karta graficzna Intel(R) Iris(TM) Graphics 650, 384/1536 MB allocatable, 48MCU. Według benchmarku hashcat jest ona w stanie łamać md5crypt z prędkością:

Hashmode: 500 - md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5) (Iterations: 1000)
Speed.#2.........:   423.2 kH/s (53.30ms) @ Accel:256 Loops:250 Thr:8 Vec:1

423.000 tysięcy różnych haseł konwertowanych do łamanego hasha w każdej sekundzie.

Naszą bazę będziemy testować przeciwko 1 słownikowi, który zawiera 10.000 najpopularniejszych haseł wygenerowanych na podstawie analizy 10 milionowego zbioru. Test uruchomiony został za pomocą polecenia:

hashcat --session trelemorele -m 500 passwords.txt -O

Mając listę 10.000 najpopularniejszych haseł udało się złamać: 705 użytkowników w ciągu 10 minut; 3497 w ciągu 1 godziny; 10.170 w ciągu 5 godzin; 26.728 w ciągu 10 godzin; 63.425 w ciągu 24 godzin:

Session..........: trelemorele
Status...........: Exhausted
Hash.Name........: md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)
Hash.Target......: crack.txt
Time.Started.....: Sat Apr 27 21:49:06 2019 (1 day, 0 hours)
Time.Estimated...: Sun Apr 28 21:58:36 2019 (0 secs)
Guess.Base.......: File (passwords.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#2.........:   233.9 kH/s (1.39ms) @ Accel:64 Loops:62 Thr:8 Vec:1
Recovered........: 63425/2036445 (3.11%) Digests, 63423/2036423 (3.11%) Salts
Recovered/Time...: CUR:39,2840,62980 AVG:43,2625,63008 (Min,Hour,Day)
Progress.........: 20364230000/20364230000 (100.00%)
Rejected.........: 2036423/20364230000 (0.01%)
Restore.Point....: 10000/10000 (100.00%)
Restore.Sub.#2...: Salt:2036422 Amplifier:0-1 Iteration:992-1000
Candidates.#2....: 123456 -> brady

Started: Sat Apr 27 21:48:55 2019
Stopped: Sun Apr 28 21:58:37 2019

W ciągu tego czasu udało nam się złamać 3.11% całego zbioru. Możemy teraz sprawdzić jakie hasła dominowały w ujawnionych haszach. Top 50 najczęściej występujących haseł z zostało wygenerowanych za pomocą poleceń:

cat hashcat.potfile | cut -d ':' -f 2 > analyze.txt
cat analyze.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{ print $2, $1 }'
#   hasło:      ilość:
1.  12345678    3715
2.  12345       3508
3.  1234        3145
4.  0000        2681
5.  123456      2115
6.  zaq12wsx    2090
7.  123456789   1040
8.  qwerty123   954
9.  11111       942
10. 123         872
11. 1qaz2wsx    807
12. 1111        682
13. 1qazxsw2    605
14. 1q2w3e4r    573
15. 1234qwer    518
16. qwerty      502
17. karolina    488
18. qweasdzxc   458
19. 11111111    384
20. 111111      382
21. 1234567890  381
22. q1w2e3r4    338
23. qwerty12    326
24. qwer1234    321
25. qwertyuiop  279
26. monika      277
27. 12qwaszx    260
28. 123qweasd   250
29. aleksandra  247
30. 123qwe      246
31. allegro     237
32. samsung1    222
33. polska      217
34. abcd1234    212
35. qwertyui    204
36. qazwsx123   204
37. barcelona   197
38. qwerty1234  185
39. sebastian   179
40. jordan23    179
41. skorpion    172
42. michal      157
43. mercedes    157
44. 1q2w3e4r5t  157
45. trustno1    150
46. samsung     150
47. qwerty12345 143
48. qweasd123   143
49. qwe123      141
50. qwerty11    138

Gdybyśmy dysponowali większą liczbą kart graficznych to najprawdopodobniej skończyłoby się to rozbiciem większego słownika ( 100.000 lub 1.000.000 ) na mniejszcze części i puszczeniu obliczeń równolegle, ponieważ największy słownik dla w/w karty graficznej przewiduje 64 dni pracy.

Więcej informacji: Jak szybko przestępcy mogą złamać hashowanie haseł wykorzystane w Morele.net?, Baza danych 2,5 miliona klientów Morele.net wrzucona do sieci, Today I Am Releasing Ten Million Passwords

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , , ,

1 komentarz.

  1. Poniżej lista Top 50 z słownika bardziej wzbogaconego o polskie słowa, którym udało się złamać 105475 haszy:

    #  hasło:        ilość:
    1.  12345678     3715
    2.  12345        3508
    3.  1234         3145
    4.  morele123    2701
    5.  0000         2681
    6.  Morele123    2159
    7.  123456       2115
    8.  morele       2109
    9.  zaq12wsx     2090
    10. morelenet    2019
    11. morele.net   1155
    12. 123456789    1040
    13. qwerty123    954
    14. 11111        942
    15. 123          872
    16. 1qaz2wsx     807
    17. 1111         682
    18. 1qazxsw2     605
    19. agnieszka    601
    20. dupadupa     581
    21. 1q2w3e4r     573
    22. dupa1234     522
    23. 1234qwer     518
    24. haslo123     504
    25. qwerty       502
    26. karolina     488
    27. komputer     472
    28. qweasdzxc    458
    29. mateusz1     416
    30. 11111111     384
    31. 111111       382
    32. 1234567890   381
    33. polska123    349
    34. q1w2e3r4     338
    35. qwerty12     326
    36. qwer1234     321
    37. Haslo123     309
    38. weronika     307
    39. warszawa     299
    40. kamil123     299
    41. qwertyuiop   279
    42. monika       277
    43. morelemorele 272
    44. agnieszka1   270
    45. wiktoria     267
    46. misiek       263
    47. piotrek1     261
    48. 12qwaszx     260
    49. karolina1    257
    50. magdalena    250