Przedstawiam Wam sposoby używa programów, dzięki którym będziemy mogli łatwo i przyjemnie i czasochłonne (sometimes not) odzyskać zakodowane hasło.
Tak haseł się nie łamie, a odzyskuje się, tytuł ma za zadanie przyciągnąć.
Będziemy się skupiali na ogólnej czynności jaką jest odzyskiwanie zakodowanego hasła, głównie patrząc na funkcję skrótu MD5.
Program się instaluje, potem można przenieść go na pendriva zrobić wersję portable z GUI umożliwiający łamanie wielu rodzai hashy.
1. Hash,
importowany przez program z pliku, u mnie txt, lista hashy w oknie
obok wzięta z forum, może być ich dużo jak widać.
2. Plik z
saltami, zapisane tak samo jak hashe, w pliku, oddzielone
odpowiednikiem znaku n z systemów UNIX
3. Długość
sprawdzanych haseł określamy w liczbach, które sami sobie
wpisujemy.
4. Charset, z którego program buduje hasła także
wpisujemy sami
5. Outfile, plik do którego program zapisuje
wynik, znalezione hasła, niekonieczne bo w czasie działania
programu hashe i znalezione hasła są wyświetlane w oknie działania
programu.
1. Sposoby szukania hasła, o jejku, możesz sobie załadować słownik albo walić brute-forcem, albo tworzyć słownik, albo cośtam jeszcze, sami sobie sprawdzajcie co do czego jest.
1. Lista hashy jest spora. To nie cała lista bo nie lubię nowego painta w Win7 więc screeny zrobiłem nieco więcej niż połowy tego co program oferuje.
Dobra, koniec teorii. Przechodzimy do praktyki, wygląda to tak:
1. Ustawiasz
sobie listę hashy w pliku, dodajesz do niego łącze w programie
2.
Ustawiasz rodzaj ataku, długość hasła
3. Klikasz w ten
większy prostokąt wyglądający jak przycisk
4. wait…
5.
…Profit!
Tak to wyglądało u mnie, do pokazania użyłem pliku ukrytego pod linkiem z cytatu. Cytat stąd.
1.
Zaimportowany
plik z hashami
2. Użyty charset (tak, między z
0 jest
spacja).
3. Znalezione w czasie trzech minut hashe.
4.
Ilość znalezionych hashy.
2.1 + GUI Macie tutaj link to BarsW Luncher (BawsWF 32bit +64bit + GUI), to wersja z GUI, dzięki czemu każdy n00b^^ sobie poradzi z zapuszczeniem łamacza. W lanczerze ustawia się czy mamy system x86 czy x64, czy użyć samego CPU czy GPU+CPU. Program do działania w trybie CPU+GPU wymaga karty graficznej nVidia wraz z zainstalowanym sterownikiem CUDA. Wadą programu jest to, że łamie tylko jeden hash. Hasło do archiwum to domena tego forum.
1. Wklejasz
hash, albo przepisujesz jak wolisz
2. Ustawiasz charset z
którego program łamie hash
3. Minimalna długość hasła
4.
Czym atakować
5. Jeśli masz system x64 to zaznacz to, będzie
trochę szybciej.
W pracy, zmienia hasła z prędkością 127.7 milionów hashy na sekundę (najnowsze karty graficzne GF mają osiągi nawet miliarda!).
Przykład złamanego hasha przez BarsWF
:
Program bardzo FLOPSo-żerny, po włączeniu cracekra ciężo cokolwiek zrobić, włączyć pauzę można zrobić klawiszem Esc, potem wrócić do łamania.
Wyszukiwanie w md5crackerach, pierwsze wyniki z Google:
http://md5crack.com/ http://md5.rednoize.com/ http://www.hashchecker.com/?_sls=search_hash http://bokehman.com/cracker/ http://www.md5decrypter.co.uk/ http://md5hood.com/Możesz sobie je pobrać albo wygenerować. Jest tego tak gęsto w necie, że nie chce mi się opisywać, zresztą widać wszystko na obrazkach. Ja używam do generowania WinRTGen Ostatni na liście.
Tęczowe tablice można samemu wygenerować w rok, albo pobrać w kilka tygodni, nie wiele jest w sieci stron oferujących pobranie tęczowych tablic, jak są linki to przeważnie nikt tego nie seeduje, jednak są w pewnych źródłach do pobrania:
http://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/md5/ http://www.insidepro.com/tables.phpWybieramy sobie rodzaj tablic i zasysamy. Gdy mamy już tęczowe tablice, można przystąpić do łamania has… znaczy odzyskiwania hasła. Stąd pobieramy odpowiadającą nam wersję RainbowCracka.
Gdy mamy już zbudowany lub pobrane tęczowe tablice przystępujemy do użycia ich w celu odkodowania zagubionego hasła.
Użycie RainbowCrack’a:
W tym przykładzie nie zależało mi na złamaniu tych hashy, tylko pokazaniu programu.
Do programu hashe można ładować pojedynczo ręcznie albo masowo dodać plik z listą hashy, tęczowe tablice tak samo ładujemy, w czasie wybierania plików można użyć skrótów klawiaturowych.
Po jakimś czasie otrzymujemy wynik pracy:
statistics
——————————————————-
plaintext found: 0 of 3
total time: 57.91 s
time of chain traverse: 57.42 s
time of alarm check: 0.47 s
time of wait: 0.00 s
time of other operation: 0.01 s
time of disk read: 12.44 s
hash & reduce calculation of chain traverse: 149970000
hash & reduce calculation of alarm check: 958346
number of alarm: 252
speed of chain traverse: 2.61 million/s
speed of alarm check: 2.04 million/s
Potwierdzam też screenem:
Prędkość może nie oszałamia, ale jest to jeden ze skuteczniejszych sposobów odzyskiwania haseł.
Program konsolowy nieco podobny do BarsWF, używa jednak tylko GPU (Bars używa GPU+CPU), i ma większe możliwości (znacznie większe). Może szukać hasła dla MD4, MD5 oraz SHA1, wspiera używanie salt’ów Potrafi używać GPU nVidia i ATI. Sposób używa jest podobny do tego jak obsługuje się programu konsolowe w systemach Linux, instrukcja jest zawarta w pliku readme.htm, będącego w archiwum.
Wyróżnia się tym, że wspiera działanie kilku kart graficznych różnych modeli, a nawet producentów, sam uznaję, że jest to najszybszy brute-forcer.
2. Opcje używania programu:
–sf:<znaki_z_tablicy_ASCII> jest to program działający na zasadznie inkrementacji znaków hasła, więc podajemy hasło, którego użyjemy jako pierwsze do ataku. –salt:<hex> sól dorzucana do łamanego hasła w postaci znaków hex –asalt:<string_salt> jak wyżej z tą różnicą, że sól podajemy w postaci znaków z tablicy ASCII –usalt:<string_Unicode> jak wyżej ale z tablicy znaków Unicode –min:<liczba> minimalna długość hasła, domyślnie 4. –max:<liczba> maksymalna długość hasła, max. 3. –h:<hash> hash, który chcemy odnaleźć
Obsługiwane typy:
md4Budowa charset:
–c: sdepa caps, smalls (default), digits, special, space, all) Pierwsze litery oznaczają znaki, z których będą budowane hasła, sądzę, że nie trzeba tłumaczyć. –u:<znaki> użytkownik sam definiuje zakres znaków –uf:<ścieżka_do_pliku> z zawartym charsetem.Sam zapisuje je w pliku w formacjie bat, używam skryptu windowsowego by za każdym razem nie szukać programu przed cmd.
ighashgpu.exe -t:md5 -c:sd -min:9 -max:9 hash.txtPowyższe można wrzucić do pliku *.bat. Polecenie oznacza:
Znajdź hasło, zakodowane w MD5, od 9 do 9 znaków długie z pliku hash.txt.
Program wieloplatformowy (Linux/OS X/ WIndows), konsolowy bardzo rozbudowany, od prostego łamania hashy, potrafi tworzyć słowniki zgodnie z opisanymi regułami. Rozróżnia wiele hashy(m in. MD5, DES, BSDI, AFS, LM), potrafi je rozpoznać i przejść do ataku. Zajmiemy się podstawowymi możliwościami programu. Zakładam, że każdy potrafi zainstalować ten super-skomplikowany program, oraz że looknął w man john chociaż na chwilę.
Uruchamiamy program z konsoli john test. Polecenie to przeprowadzi benchmark komputera:
Wykonywany w celu sprawdzenia poprawności działania JTR.
$ john -test
Benchmarking: Traditional DES [64/64 BS]… DONE Many salts: 989215 c/s real, 1015K c/s virtual Only one salt: 904913 c/s real, 926910 c/s virtual Benchmarking: BSDI DES (x725) [64/64 BS]… DONE Many salts: 36148 c/s real, 36705 c/s virtual Only one salt: 35901 c/s real, 36349 c/s virtual Benchmarking: FreeBSD MD5 [32/64 X2]… DONE Raw: 8737 c/s real, 8820 c/s virtual Benchmarking: OpenBSD Blowfish (x32) [32/64 X2]… DONE Raw: 571 c/s real, 579 c/s virtual Benchmarking: Kerberos AFS DES [48/64 4K]… DONE Short: 301278 c/s real, 303458 c/s virtual Long: 849023 c/s real, 855954 c/s virtual Benchmarking: LM DES [64/64 BS]… DONE Raw: 6295K c/s real, 6354K c/s virtual Benchmarking: NT MD4 [Generic 1x]… DONE Raw: 8017K c/s real, 8104K c/s virtual Benchmarking: Eggdrop [blowfish]… DONE Raw: 18832 c/s real, 18968 c/s virtual Benchmarking: M$ Cache Hash [Generic 1x]… DONE Many salts: 12782K c/s real, 12905K c/s virtual Only one salt: 4821K c/s real, 4848K c/s virtual Benchmarking: LM C/R DES [netlm]… DONE Many salts: 383391 c/s real, 386215 c/s virtual Only one salt: 371177 c/s real, 373823 c/s virtual Benchmarking: NTLMv1 C/R MD4 DES [netntlm]… DONE Many salts: 548274 c/s real, 551156 c/s virtual Only one salt: 517176 c/s real, 520384 c/s virtual |
Żeby móc zapoczątkować atak na hash, musimy je wrzucić do pliku tekstowego, u mnie nazywa się on hash.txt
Zawartość mojego pliku jest taka:
User1:d6a946959f517e8adaa212fe207f5cc8 User2:507199392f0d0b2550ab260c053af68aPrzed przystąpieniem do działania, należy podać rodzaj hash’a inaczej JTR potraktuje User1:d6a946959f517e8adaa212fe207f5cc8 jako dwa kody, które ma złamać, co jest zbędne.
Do typu hasha dodajemy przedrostek raw (surowy), informuje to program, że plik jest tylko dumpem bazy danych w formacie:
User:hash
dlatego podajemy rodzaj hashy jako raw-MD5
całość wygląda tak:
$ john –format:raw-MD5 hash.txt
agilob@agilob:~$ john –format=raw-MD5 hash.txt Loaded 2 password hashes with no different salts (Raw MD5 [raw-md5]) |
Z charsetem jest tak, że można go zbudować z podanych w pliku tekstowym znaków, albo używać metody brute-force.
Zajmiemy się tą drugą opcją, gdyż jest znacznie skuteczniejsza.
Mamy do dyspozycji możliwości:
alpha – alfabet digits – cyfry lanman – litery, cyfry i kilka najczęściej spotykanych znaków specjalnych, all – wszystkie znaki z tablicy ASCII ścieżka_do_pliku – w pliku zawarty jest charset Wszystkie każdą z powyższych możliwości można użyć do budowania słownika, albo samego ataku. do ataku z użyciem opcji wyboru charsetu używamy: –incremental # albo samo -i jedak uważam, że –incremental jest jakby “czytelniejsze” całość zawrzemy w jednym poleceniu: $ john –format=raw-MD5 –incremental:alpha hash.txtJanek ma możliwość zapisania przerwanej sesji, bez konieczności powtarzania wcześniej wykonywanych prób (jak w BarsWF).
Jeśli czujemy, że atak potrwa długo dodajemy do polecenia:
–session:<nazwa_pliku_z_logiem_sesji>
po przerwaniu pracy decryptera, w katalogu, w którym jesteśmy pojawi się plik o nazwie określonej w poleceniu sesji.
Całość:
$ john –format=raw-MD5 –incremental:alpha –session:sejsa_janka hash.txt
Przywracanie sesji jest jeszcze łatwiejsze. Zamiast <nazwa_pliku_z_logiem_sesji> podajemy wyrazrestore.
$ john –restore:sesja_janka
Powyższe polecenie otworzy plik z logami JTR i będzie kontynuował pracę.