Jest to trzeci artykuł z serii - przeznaczonej dla początkujących,rozpoczynająćych swoją przygodę z łamaniem haseł
Kiedy przetestowałeś już wszystkie swoje słowniki, a hasła dalej się nie poddają... czas rozszerzyć atak (zakładając, że słownik był z najwyższej półki). Hashcat oferuje kilka trybów pracy. Był już klasyczny atak słownikowy (omówiony w poście #1). Jest też atak kombinowany, maskowy, hybrydowy i skojarzeniowy oOa9
. Do tego dochodzi atak oparty na regułach. Mamy też tzw. Toggle-Case Attack – również oparty o reguły.
Reguły możemy wykorzystywać zarówno w trybie słownikowym [-a 0]
, jak i hybrydowym [-a 6, -a 7]
. Tak jak w przypadku słowników – dostępna jest cała masa reguł publicznych przeznaczonych dla hashcata(tak są też reguły dla John the Ripper), które potrafią znacząco zwiększyć skuteczność łamania. Można też pisać własne — to nie jest rocket science a... działa cuda :) poświęcimy temu osobny post (Soon™)
Ale czym właściwie są reguły?
Wikipedia hashcata definiuje to bardzo trafnie:
Atak oparty na regułach to jeden z najbardziej złożonych trybów ataku. Dlaczego? Bo to tak naprawdę coś na wzór języka programowania, służącego do generowania kandydatów na hasła. Reguły potrafią modyfikować, przycinać, dopisywać fragmenty, mają też operatory warunkowe itd. To czyni ten tryb najbardziej elastycznym, precyzyjnym i efektywnym.
Dzięki temu zyskujemy ogromne możliwości manipulacji słownikiem w locie i generowania kompletnie nowych kandydatów na podstawie jego zawartości. W skrócie: wyciskamy z naszego słownika wszystko co się da. Słownik to już tylko punkt wyjścia.
Zacznijmy od przejrzenia reguł, które dostajemy razem z hashcatem — tzw. built-ins. To naprawdę przydatna kolekcja.
Bardzo ciekawe i skuteczne reguły — to tak naprawdę zestaw dwóch plików: passphrase-rule1.rule
i passphrase-rule2.rule
.
Opis autora:
Te reguły zostały stworzone tak, aby kształtować hasło i je mutować. Kształtowanie opiera się na przewidywalnych schematach jakie ludzie stosują: np. wielka litera na początku, cyfry/symbole na końcu. Mutacje to np. zamiana liter na podobne wizualnie znaki specjalne.
passphrase-rule1.rule w akcji:
passphrase-rule
Używane w połączeniu znacząco zwiększają ilość kandydatów.
Wraz z wydaniem już starej wersji oclHashcat-plus v0.07 pojawiła się zupełnie nowa funkcjonalność w świecie łamania haseł przy użyciu reguł.
Zamiast podawać tylko jeden parametr -r
z plikiem reguł, można dodać ich dowolną liczbę – ile tylko chcesz...
Co ważne: nie są one wykonywane sekwencyjnie! Każda reguła z każdego pliku jest łączona z każdą regułą z pozostałych plików. W ten sposób możesz łatwo
przygotować
własny, niestandardowy tryb ataku. Trzeba jednak pamiętać, że łączna liczba wygenerowanych reguł to iloczyn wszystkich list – a więc przy dużej liczbie obszernych plików możesz bardzo szybko przekroczyć dostępne zasoby pamięci. Ale dobrze dobrane, niewielkie zestawy reguł mogą dać naprawdę mocny efekt.
passphrase-rule1.rule + passphrase-rule2.rule w akcji:
passphrase-rule
W 2017 roku firma notsosecure zrobiła bardzo ciekawe testy wydajności reguł do hashcata. Na warsztat wzięto dump danych z Lifeboat — wyciek z community Minecrafta z niesolonymi hashami MD5. Testy prowadzono z użyciem klasycznego słownika rockyou.txt
. Przetestowano wiele popularnych reguł:
Wszystkie oprócz d3adhob0
, hob064
, KoreLogicRulesPrependRockYou50000
i _NSAKEY.v2.dive
są domyślnie w hashcat.
W wyniku testów powstała ich własna reguła: OneRuleToRuleThemAll
one-rule-to-rule-them-all
[OneRuleToRuleThemAll] - https://github.com/NotSoSecure/password_cracking_rules
[unshade-hash-b2.txt] - plik z hashami
Zaczynamy od pobrania pliku z hashami [unshade-hash-b2.txt]. Najpierw klasyka – atak słownikowy z rockyou.txt
hashcat -m 1000 -a 0 unshade-hash-b2.txt 'rockyou.txt.gz -O
Część haseł udało się złamać, ale większość nadal pozostaje zaszyfrowana. Zmieniamy to — zwiększamy liczbę kandydatów dodając reguły OneRuleToRuleThemAll:
hashcat -m 1000 -a 0 unshade-hash-b2.txt rockyou.txt.gz -r OneRuleToRuleThem.all -O
rockyou.txt.gz vs rockyou.txt.gz + OneRuleToRuleThemAll
Zwróć uwagę na Keyspace przy użyciu reguł...
W zależności od mocy sprzętu, pójdzie szybciej lub wolniej ;d
47 sekund łamania — wszystkie hashe pękły. Wszystko dzięki OneRuleToRuleThemAll.rule.
Ciąg dalszy nastąpi...
Ciekawe reguły hashcata:
https://contest-2010.korelogic.com/rules.html
https://github.com/cyclone-github/rules
https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules
https://github.com/initstring/passphrase-wordlist/tree/master/hashcat-rules
https://github.com/clem9669/hashcat-rule
https://github.com/nyxgeek/nyxgeek-rules/tree/master/hashcat-rules
https://github.com/xfox64x/Hashcat-Stuffs/tree/master/Rules
https://github.com/webpwnized/byepass/tree/master/rules
https://github.com/hashcat/hashcat/tree/master/rules
https://github.com/praetorian-inc/Hob0Rules
https://github.com/NSAKEY/nsa-rules
https://github.com/rarecoil/pantagrule/tree/master/rules