---
# System prepended metadata

title: Взлом паролей.

---

PTCI_6.mp4

# Взлом паролей.
 

 ## Способы атак на парольную защиту:
 
 1. Взлом 
 2. Угадывание, подбор пароля
 3. Стандартные/популярные пароли 
 4. Фишинг

![](https://i.imgur.com/wzA5any.png)


## Брутфорс
**Брутфорс(brute-force)** - взлом "грубой силой". 
#### Виды брутфорса
*  полный 
*  по словарям
*  комбинированный метод

 Второй способ быстрее и эффективнее, первый используется если пароль состоит из того, чего в словарях нет (необычные/генерируемые последовательности).
 
 Бруфторс бывает: 
 
*  онлайн  - брутим что-то что висит в сети.
*  офлайн  - брутим что-то, что уже получили(часто хэши).

## Cловари для брутфорса
---

git clone https://github.com/empty-jack/YAWR.git

git clone https://github.com/danielmiessler/SecLists.git

git clone https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

wget http://scrapmaker.com/data/wordlists/dictionaries/rockyou.txt

---

## Хэш
**Хэш** - математическа функция от некого массива данных. Эта функция возвращает от большого объема данных-последовательность символов, знаков заданной длины. В зависимости от алгоритма может преобразовываться различным образом. 

### Применение хеширования

* для хранения пароля
* для подтверждения корректности массива данных
* в криптовалютах

**Хэш**-необратимая функция. "Захешировав" файл, вернуться к целому файлу без потери информации нельзя.

В большинстве случаев, на машинах хранятся хэши паролей, а не сами пароли. Поэтому, когда вводится пароль, аутенфикация просиходит засчет того, что система сравнивает 2 хэша(введенный и сохраненный), а не сами пароли. Делается это для того, чтобы пароли было не сваровать. 

Взлом заключаается в подборе такой строки, чтобы её хеш совпадал со взламываемым. 

Некоторые из  алгоритмов позволяют такую сситуацию, когда появляется общий хэш для двух исход значений информации - это навывается **коллизией** хэш функций.

### Тип хэша
Различаются длиной, шагами, алгоритмом.
* MD5 - 128 битный, подвержен коллизии
* SHA-1  - 160 битный, подвержен коллизии 
* SHA-256 - 256 битный, используется в SSH, SSL
* NTLM - внутренние по структуре; перекодированный текст, который был хеширован с помощью MD4

![](https://i.imgur.com/b973nIA.png)


## Векторы атаки

1. Dictionary
Простой, распростарненный способ. Берётся список слов и по очереди загружается для сравнивания "попал - не попал".

2. Brute-Force
Берется некая базовая последовательность символов и по очереди подставляется по символу. Этото способ медленнее предыдущего. 

3. Mutated
Смешанная атака путем использования словаря, слов, символов.

4. Rainbow
Основная идея заключается в том, что зараннее генерируется большая таблица хэшей. Длина таблицы может быть коллосальна.
Когда берем хеш, по сути, ищем его с индексами, таким образом потребности генерировать хеши - нет.

![](https://i.imgur.com/dE8cM8l.png)



## Определение типа хэша

* hashid
https://kali.tools/?p=2772

hashid -m <хеш> - сразу показывает режим для hashcat
![](https://i.imgur.com/46TtC0E.png)

Если вводить без "-m", Hashcat Mode показывать не будет
![](https://i.imgur.com/NdA59Mo.png)
 
hashid -j <хеш> - то же для JohnTheRipper

![](https://i.imgur.com/mjOTPdq.png)

Дополнительные возможности ![](https://i.imgur.com/562kVCU.png)

Проверить актуалиную версию HashId можно здесь
https://github.com/psypanda/hashID
![](https://i.imgur.com/9IFPmKb.png)


* определяем вручную:
https://hashcat.net/wiki/doku.php?id=example_hashes

Имея хэш, пытаемся по внешему виду, количеству символов, открывающим символам и структуре, определить название хэша.
![](https://i.imgur.com/05q7YlH.png)
В данном случае - это SHA - 512


* jwt 
JSON Web Tokrns - используется для разлиного вида аутенфикации, авторизации в вебе.
https://jwt.io/
![](https://i.imgur.com/NnzoqBg.png)


### hashcat

Это самый быстрый инструмент по восстановлению паролей, использующий графический процессор.

hashcat -b - Запуск бенчмарка hashcat, меряет, с какой скоростью перебираются пароли.
![](https://i.imgur.com/7lXJh1V.png)

Та же операци, но конкретно со 2 девайсом
![](https://i.imgur.com/urWnMj8.png)
![](https://i.imgur.com/Wo2uqmJ.png)






Запуск:
hashcat [опции]... хеш|файл_хеша|файл_hccapx [словарь|маска|директория]...

-m - тип хеша
-a - режим атаки

![](https://i.imgur.com/gNvTe6A.png)
Найденный хэш сохранен в файле, чтобы его оттуда "вытащить", вызываем команду --show

по словарю -a 0
полный брутфорс по маске -a 3
гибрид словарь + маска -a 6
гибрид маска + словарь -a 7


![](https://i.imgur.com/awvjCT8.png)


Взломанные хеши храняться в файле hashcat.potfile в той же директории, что и Hashcat.

---
### Как составлять маски в Hashcat

Для составления масок используются наборы символов. 
Наборы символов в Hashcat бывают : 
* встроенные наборы символов
* пользовательские наборы символов

В Hashcat встроенными наборами символов являются:

l | abcdefghijklmnopqrstuvwxyz
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
d | 0123456789
h | 0123456789abcdef
H | 0123456789ABCDEF
s | !"#$%&'()*+,-./:;<=>?@[]^_~ и косой апостроф
a | ?l?u?d?s
b | 0x00 - 0xff

Где первая колонка означает условное обозначение набора символов. Для использования в масках, перед данным обозначением необходимо поставить знак вопроса.
Например, ?u означает все заглавные буквы, ?d все цифры.

Допустим, нам известно, что маска состоит из 4 символов, из них первые 2 - заглавные буква, следующие 2 - цифры, тогда маска будет выглядеть следующим образом:
?u?u?d?d

Пример: маска, состоящую из восьми символов, каждый из которых является маленькой буквой.

?l?l?l?l?l?l?l?l

hashcat -m 0 -a 3 <хеш> ?l?l?l?l?l?

#### Маска, если длина пароля неизвестна.

i - Включить режим приращения маски
–increment-min | Число | Начать прирост маски на X, пример использования: --increment-min=4
–increment-max | Числ | Остановить прирост маски на X, пример использования: --increment-max=8

Пример (пароль имеет длину от шести до десяти символов)::
hashcat64.exe -m 0 -a 3 -i --increment-min=6 --increment-max=10 <хеш> ?l?l?l?l?l?l?l?l?l?l

Бывают ситуации, когда известны некоторые из символов пароля. 
Например, нам дан хеш 53ab0dff8ecc7d5a18b4416d00568f02 и нам стало известно, что первыми символами в пароле являются “HackerU”. Тогда эти символы можно указать прямо в маске:

HackerU?l?l?l?l?l?l?l




Пример:
hashcat -m 0 -a 3 -i --increment-min=6 --increment-max=10 <хеш> HackerU?l?l?l

длинные хэши лучше брать из файла, чтобы не было служебных символов, после которых будет возможна ситуация, что половина хеша не читается. 

**!! Длинные хэши лучше брать из файла, чтобы не было служебных символов, после которых будет возможна ситуация, что половина хеша не читается.**




## Онлайн брутфорс

### Patator


**Patator** – это многоцелевой онлайн брут-форсер, с модульным дизайном и гибким использованием.

Patator имеет непривычный синтаксис, чтобы грамотно его использовать нужно изучить доступные примеры.


---
Patator включён в Kali Linux 2.0 из коробки, в версиях ниже и в других системах - устанавливать с Github (утилита часто обновляется, поэтому искать актуальную версию нужно именно тут):

git clone https://github.com/lanjelot/patator.git /usr/share/patator


#### Вызываем модуль:
patator <имя модуля>

Если вызвать без опций - выведет описание модуля и help с примерам использования

#### Использование списков в файлах:

password=FILE0 0=<путь до словаря>
user=FILE1 1=<путь до словаря>

Каждый параметр модуля может быть заменен списком (но не глобальный параметр).
Например, параметр host так же можно подтягивать из файлика, как и любой другой параметр модуля.

#### Фильтрация
Перебор выдает нам статусы авторизации на smtp сервере, однако,  найти в этом списке успешную попытку авторизации будет сложно.

В patator существуют глобальные параметры,
например конструкция -x ignore.

Данная конструкция может фильтровать:
* по размеру ответа (-x ignore:size=57-74),
* по статусу кода ответа (-x ignore:code=200),
* по совпадению строки и регулярному выражению(-x ignore:fgrep=’some text or regexp’)
* и по их комбинациям, например -x ignore:code=500 -x ignore:fgrep=’Internal error’ или ignore:code=200,size=57-74.

#### Управление во время работы:

* Нажмите Enter и он покажет в каком статусе он сейчас
* Во время выполнения брута вы можете ввести h, нажать Enter и он покажет доступные параметры в интерактивном режиме.





#### Доступные модули:

---

ftp_login     : Brute-force FTP
ssh_login     : Brute-force SSH
telnet_login  : Brute-force Telnet
smtp_login    : Brute-force SMTP
smtp_vrfy     : Enumerate valid users using the SMTP VRFY command
smtp_rcpt     : Enumerate valid users using the SMTP RCPT TO command
finger_lookup : Enumerate valid users using Finger
http_fuzz     : Brute-force HTTP/HTTPS
pop_login     : Brute-force POP
pop_passd     : Brute-force poppassd (not POP3)
imap_login    : Brute-force IMAP
ldap_login    : Brute-force LDAP
smb_login     : Brute-force SMB
smb_lookupsid : Brute-force SMB SID-lookup
rlogin_login  : Brute-force rlogin
vmauthd_login : Brute-force VMware Authentication Daemon
mssql_login   : Brute-force MSSQL
oracle_login  : Brute-force Oracle
mysql_login   : Brute-force MySQL
mysql_query   : Brute-force MySQL queries
pgsql_login   : Brute-force PostgreSQL
vnc_login     : Brute-force VNC
dns_forward   : Brute-force DNS
dns_reverse   : Brute-force DNS (reverse lookup subnets)
ike_enum      : Enumerate IKE transforms
snmp_login    : Brute-force SNMPv1/2 and SNMPv3
unzip_pass    : Brute-force the password of encrypted ZIP files
keystore_pass : Brute-force the password of Java keystore files
umbraco_crack : Crack Umbraco HMAC-SHA1 password hashes

---

### Утилиты для создания словарей

* Crunch
* Cewl
* Cupp
* THC - Hydra
* Medusa
* Ncrack

---

Бонус по криптографии.
www.dcode.fr для решения задач по криптографии. Есть возможность найти любой шифр.




