---
title: "Wstęp do łamania haseł #3 Reguły"
url: "https://unshade.pl/blog/wstep-do-lamania-hasel-3-reguly"
lang: "pl"
date: "17.11.2022"
author: "Unshade"
---

# Wstęp do łamania haseł #3 Reguły

*Opublikowano: 17.11.2022*

![Example image](/_emdash/api/media/file/01M5A26JT79XTM8D6NC7D467F3.png)

_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 oO`a9`. Do tego dochodzi atak oparty na **regułach**. Mamy też tzw. Toggle-Case Attack – również oparty o reguły.

#### W tym poście skupimy się na ataku słownikowym z użyciem reguł.

## Łamanie haseł przy pomocy reguł

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.

![Example image](/_emdash/api/media/file/01M5A26K9RNZBCNY8EAB9KRZVM.png)

[hashcat wiki](https://hashcat.net/wiki/doku.php)

## Wbudowane reguły

Zacznijmy od przejrzenia reguł, które dostajemy razem z hashcatem — tzw. _built-ins_. To naprawdę przydatna kolekcja.

![Example image](/_emdash/api/media/file/01M5A26KPXGBZ2KGB1QQ96TNK5.webp)

## passphrase-rule

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:

![Example image](/_emdash/api/media/file/01M5A26M0Y8H3QF94YS3ZX9TKB.png)

[passphrase-rule](https://github.com/initstring/passphrase-wordlist)

**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:

![Example image](/_emdash/api/media/file/01M5A26MBQ4C1QXZZMAS8T3XKG.png)

[passphrase-rule](https://github.com/initstring/passphrase-wordlist)

![Example image](/_emdash/api/media/file/01M5A26MQDTTSFVM5GYJ0WBEJM.jpg)

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ł:

- best64
- unix-ninja-leetspeak
- InsidePro-HashManager
- InsidePro-PasswordsPro
- toggles5
- T0XICv1
- rockyou-30000
- d3ad0ne
- dive
- generated2
- d3adhob0
- hob064
- KoreLogicRulesPrependRockYou50000
- v2.dive

Wszystkie oprócz `d3adhob0`, `hob064`, `KoreLogicRulesPrependRockYou50000` i `_NSAKEY.v2.dive` są domyślnie w hashcat.

![Example image](/_emdash/api/media/file/01M5A26N5NRXTFVTVTFT3HKG73.webp)

[one-rule-to-rule-them-all](https://notsosecure.com/one-rule-to-rule-them-all)

W wyniku testów powstała ich własna reguła: OneRuleToRuleThemAll

![Example image](/_emdash/api/media/file/01M5A26NF1HKQRG89MYP0H8KSC.png)

[one-rule-to-rule-them-all](https://notsosecure.com/one-rule-to-rule-them-all)

## Pantagrule

## Umarł król, niech żyje król!

![Example image](/_emdash/api/media/file/01M5A26NT3STA6261CZCESJ8Y2.png)

[pantagrule](https://github.com/rarecoil/pantagrule)

## Czas na łamanie!

[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

```bash
hashcat -m 1000 -a 0 unshade-hash-b2.txt 'rockyou.txt.gz -O  
```

![Example image](/_emdash/api/media/file/01M5A26P54JMYND92EF8VZX157.webp)

![Example image](/_emdash/api/media/file/01M5A26PEMV6Z69ZES8FFNRKFB.webp)

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:

```bash
hashcat -m 1000 -a 0 unshade-hash-b2.txt rockyou.txt.gz -r OneRuleToRuleThem.all -O  
```

rockyou.txt.gz vs rockyou.txt.gz + OneRuleToRuleThemAll

![Example image](/_emdash/api/media/file/01M5A26PQKAK35W8P3AA3Y47YV.png)

Zwróć uwagę na Keyspace przy użyciu reguł...

W zależności od mocy sprzętu, pójdzie szybciej lub wolniej ;d

![Example image](/_emdash/api/media/file/01M5A26Q4JVMQTR0ZZTWXA4Y7C.webp)

## I po wszystkim.

![Example image](/_emdash/api/media/file/01M5A26QGNQ8BXZFRZCZGCW7CZ.webp)

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
