October 20, 2020

Определяем метод хеширования

Типы хэша:

MD5

Длина: 32 символа.

c4ca4238a0b923820dcc509a6f75849b

Применяется в phpBB v2.x, Joomla версии ниже 1.0.13, а также во многих других форумах и CMS.

Алгоритм: соответствует функции md5() языка PHP.

SHA-1

Длина: 40 символов.

356a192b7913b04c54574d18c28d46e6395428ab

Применяется во многих форумах и CMS.

MD5(phpBB3)

Длина: 34 символа.

$H$9123456785DAERgALpsri.D9z3ht120

Применяется в phpBB 3.x.x.

Описание: хэш начинается с сигнатуры $H$, затем идет один символ (чаще всего это символ '9' или '7'), затем идет соль (8 случайных символов, в нашем примере солью является строка "12345678"), а затем – непосредственно хэш.

Алгоритм: фактически это цикл на 2048 вызовов алгоритма MD5.

MD5(Wordpress)

Длина: 34 символа.

$P$B123456780BhGFYSlUqGyE6ErKErL01

Применяется в Wordpress.

Описание: хэш начинается с сигнатуры $P$, затем идет один символ (чаще всего это символ 'B'), затем идет соль (8 случайных символов, в нашем примере солью является строка "12345678"), а затем – непосредственно хэш.

Алгоритм: фактически это цикл на 8192 вызовов алгоритма MD5

MySQL5

Длина: 40 символов.

*E6CC90B878B948C35E92B003C792C46C58C4AF40

Применяется в новых версиях MySQL.

Алгоритм: SHA-1(SHA-1($pass))

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

md5($pass.$salt)

Длина: 32 символа.

6f04f0d75f6870858bae14ac0b6d9f73:1234

Соль: 16,32 символа

Применяется в WB News, Joomla версии 1.0.13 и выше.

md5($salt.$pass)

Длина: 24 символа.

f190ce9ac8445d249747cab7be43f7d5:12

Соль: 2 символа.

Применяется в osCommerce, AEF, Gallery и других CMS.

DES(Unix)

Длина: 13 символов.

IvS7aeT4NzQPM

Применяется в Linux и др. подобных ОС.

Описание: первые 2 символа – это соль (случайные символы, в нашем примере солью является строка "Iv"), а затем – непосредственно хэш.

MD5(Unix)

Длина: 34 символа.

$1$12345678$XM4P3PrKBgKNnTaqG9P0T/

Применяется в Linux и др. подобных ОС.

Описание: хэш начинается с сигнатуры $1$, затем идет соль (до 8 случайных символов, в нашем примере солью является строка "12345678"), еще один символ $, а затем – непосредственно хэш.

md5(md5($pass))

Длинна: 32 символа

28c8edde3d61a0411511d3b1866f0636

Применяется в e107, DLE, AVE, Diferior, Koobi и других CMS.

md5(md5($pass).$salt)

Длина: 32 символа.

6011527690eddca23580955c216b1fd2:wQ6

Соль: 3,30 символов

Применяется в vBulletin, IceBB.

md5(md5($salt).md5($pass))

Длина: 32 символа.

81f87275dd805aa018df8befe09fe9f8:wH6_S

Соль: 5,8 символов.

Применяется в IPB.

md5(md5($salt).$pass)

Длина: 32 символа.

816a14db44578f516cbaef25bd8d8296:1234

Применяется в MyBB.

Domain Cached Credentials

Длина: 32 символа.

Admin:b474d48cdfc4974d86ef4d24904cdd91

Применяется для кэширования паролей домена Windows.

Алгоритм: MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))

MD5(APR)

Длина: 37 символов.

$apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.

Применяется в Linux и др. подобных ОС.

Описание: хэш начинается с сигнатуры $apr1$, затем идет соль (до 8 случайных символов, в нашем примере солью является строка "12345678"), еще один символ $, а затем – непосредственно хэш.

Алгоритм: фактически это цикл на 2000 вызовов алгоритма MD5.

MySQL

Длина: 16 символов.

606717496665bcba

Применяется в старых версиях MySQL.

Описание: хэш состоит из двух DWORD'ов, каждый из которых не превышает значения 0x7fffffff.

RAdmin v2.x

Длина: 24 символа.

5e32cceaafed5cc80866737dfb212d7f

Применяется в программе Remote Administrator v2.x.

Алгоритм: пароль дополняется нулями до длины 100 байт и вся эта строка хэшируется алгоритмом MD5.

md5($salt.$pass.$salt)

Длина: 32 символа.

a3bc9e11fddf4fef4deea11e33668eab:1234

Применяется в TBDev.

md5($salt.md5($salt.$pass))

Длина: 32 символа.

1d715e52285e5a6b546e442792652c8a:1234

Применяется в DLP.

sha1(strtolower($username).$pass)

Длина: 40 символов.

Admin:6c7ca345f63f835cb353ff15bd6c5e052ec08e7a

Применяется в SMF

Программы:

Программы для определения типа хешей.

Hash Analyzer 1.0

HASH IDENTIFIER

Madleets Hash Identifier

--------------------------------------------------

Программы для брута хешей.

PasswordsPro - использует CPU.

Hashcat - использует GPU.

Extreme GPU Bruteforcer - использует GPU.

BarsWF - использует CPU/GPU.

RainbowCrack - использует GPU.

Online Reverse Hash Tool - онлайн проверка по сервисам.

--------------------------------------------------------------

Сайты с онлайн расшифровкой хешей.

hashkiller.co.uk

hashcracking.ru

cmd5.ru

md5.rednoize.com

FAQ

Если я могу быстро вычислить хэш от своего пароля, то почему я не могу быстро сделать обратную операцию – вычислить пароль из хэша?

Любой алгоритм хэширования фактически представляет собой подсчет контрольной суммы от исходного текста. При этом используются необратимые математические операции над исходным сообщением, такие как логические операции AND, OR и др. Например, даже если в выражении "X AND Y = Z" мы знаем Y и Z, то мы никогда не сможем по ним точно восстановить исходное значение X (максимум, что мы сможем – это рассчитать область возможных значений X, удовлетворяющих данному равенству). Вторая же причина, почему невозможно абсолютно точно вычислить исходный пароль на основе хэша – это коллизии.

Что такое коллизии?

Так как область всевозможных хэшей в любом алгоритме хэширования является величиной конечной и определяется размером хэша (к примеру, для алгоритма MD5 количество возможных хэшей составляет 2128 или 3.4*1038 вариантов), а количество исходных сообщений для хэширования – величина бесконечная, то очевидно, что существуют такие исходные сообщения, которым соответствует один и тот же хэш. Такие исходные сообщения и называются коллизиями.

Что такое соль?

Соль (или "salt", по англ. "соль") – это несколько случайных символов, которые являются уникальными для каждого пользователя и используются при хэшировании паролей, что существенно затрудняет восстановление таких паролей. Очень часто хэши и алгоритмы, в которых используется соль, называют "солеными"

Почему атака на соленые хэши такая медленная?

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

Почему у некоторых типов хэшей скорость атаки совсем маленькая – всего несколько паролей в секунду?

В этих алгоритмах пароли многократно хэшируются в цикле одним и тем же алгоритмом – например, 2000 раз алгоритмом MD5 или 5000 раз алгоритмом SHA-1. Очевидно, что это колоссально снижает скорость атаки на хэши, а если они еще и соленые, то скорость атаки на несколько хэшей становится совсем мизерной.

Я восстанавливаю пароль к хэшу уже долгое время, но никак не могу его найти, почему?

Т.к. математически невозможно вычислить из хэша пароль, то пароли приходится подбирать, генерируя хэш от каждого проверяемого пароля и сравнивая его с исходным хэшем. Поэтому нужно пробовать разные атаки на хэш и желательно с разными настройками. Иначе (к примеру) можно искать пароль полным перебором с алфавитом a...z и никогда его не найти, т.к. исходный пароль состоит из цифр. Разумеется, ваш хэш может быть и от действительно сложного пароля (к примеру, "tGEa+.4W\Z$C") – к сожалению, восстановить такие пароли нереально.

Что такое "словари" и где их взять?

Словарь – это текстовый файл, в котором находятся возможные пароли пользователей (одна строка файла – один пароль). Это могут быть как часто используемые пароли ("admin", "master" и др.), так и пароли из нужного диапазона символов ("11111"..."99999", к примеру), которые можно сгенерировать плагином "Генератор словарей".На данной странице доступно несколько десятков мегабайт подобных словарей, состоящих из реальных паролей пользователей. Так же вы можете скачать словари с интернета.

При атаке по словарю программа выдает сообщение, что атака закончена, хотя словарь был обработан не полностью. Почему?

Причина в том, что в словаре имеется какой-то служебный символ, который программа воспринимает как конец файла (EOF) и заканчивает свою работу. К примеру, это может быть символ с ASCII-кодом 0x1F, который добавляется командой COPY после объединения нескольких файлов в один. Таким образом, рекомендуется предварительно очистить все используемые словари от подобных символов, а также от пустых строк и другой лишней информации – все это позволяет сделать плагин "Генератор словарей".

"Таблицы замены символов" в гибридной атаке по словарям – что это такое?

Данные таблицы (*.KBT-файлы) представляют собой текстовые файлы, в которых можно указать – какие символы проверяемых паролей должны быть заменены на другие символы. Эта возможность обычно требуется пользователям из тех стран, которые имеют на клавиатуре 2 раскладки символов – английскую и свою национальную. В этом случае пароли на своем языке могут быть набраны в английской раскладке клавиатуры и наоборот – английские слова набраны национальными символами. В дистрибутиве программы находится файл "Russian.kbt", в котором представлены такие таблицы для пользователей с русской раскладкой клавиатуры.

Таблица определения по длину хеша.

4 символа

CRC-16: длинна: 4 цифры, мал.буквы <g

CRC-16-CCITT: длинна: 4 цифры, мал.буквы <g

FCS-16: длинна: 4 цифры, мал.буквы <g

8 символов

ADLER32: длинна: 8 цифры, мал.буквы <g

CRC-32: длинна: 8 цифры, мал.буквы <g

CRC-32B: длинна: 8 цифры, мал.буквы <g

GHash-32-3: длинна: 8 цифры, мал.буквы <g

GHash-32-5: длинна: 8 цифры, мал.буквы <g

9 символов

Elf-32: длинна: 9 цифры

13 символов

DES (Unix): длинна: 13 мал.буквы, бол.буквы, цифры, /, .

16 символов

MySQL: длинна: 16 цифры, мал.буквы <g

24 символа

Haval128 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

MD4 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

MD2 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

MD5 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

RipeMD128 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

SNEFRU128 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

Tiger128 (Base64): длинна: 24 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

28 символов

Haval160 (Base64): длинна: 28 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

SHA-1 (Base64): длинна: 28 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

RipeMD160 (Base64): длинна: 28 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

Tiger160 (Base64): длинна: 28 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

32 символа

MD5: длинна: 32 цифры, мал.буквы <g

DCC: длина: 32 цифры, мал.буквы <g

Haval128_3: длина: 32 цифры, мал.буквы <g

Haval128_4: длина: 32 цифры, мал.буквы <g

Haval128_5: длина: 32 цифры, мал.буквы <g

Haval128 (HMAC): длина: 32 цифры, мал.буквы <g

Haval192 (Base64): длина: 32 цифры, мал.буквы, бол.буквы, + ,/,.

MD2: длинна: 32 цифры, мал.буквы <g

MD2 (HMAC): длина: 32 цифры, мал.буквы <g

MD4: длина: 32 цифры, мал.буквы <g

MD4 (HMAC): длина: 32 цифры, мал.буквы <g

MD5 (HMAC): длина: 32 цифры, мал.буквы <g

RipeMD128: длина: 32 цифры, мал.буквы <g

NTLM: длина: 32 цифры, мал.буквы <g

RipeMD128 (HMAC): длина: 32 цифры, мал.буквы <g

SNEFRU128: длина: 32 цифры, мал.буквы <g

Tiger128: длина: 32 цифры, мал.буквы <g

SNEFRU128 (HMAC): длина: 32 цифры, мал.буквы <g

Tiger128 (HMAC): длина: 32 цифры, мал.буквы <g

Tiger192 (Base64): длина: 32 цифры, мал.буквы, бол.буквы

md5(md5($pass)): длина: 32 цифры, мал.буквы <g

md5(md5($pass).$salt): длина: 32 цифры, мал.буквы <g

md5(md5($salt).md5($pass)): длина: 32 цифры, мал.буквы <g

Windows-LM: длина: 32 цифры, бол.буквы <G

Windows-NTLM: длина: 32 цифры, бол.буквы <G

34 символа

MD5 (Unix): длина: 34 $1$P2lE.rGp$SYCpUzBZjWRGKyMe/MbU00

начинаеться на $1$, 12 символов слева от $

37 символов

MD5 (APR): длинна: 37 $apr1$ZSc84vgF$YiKqBzqnUskAPKeDWlN8/0

начинаеться на $apr1$, 15 символов слева от $ цифры, мал.буквы, бол.буквы.

40 символов

SHA-1: длина: 40 цифры, мал.буквы <g

Haval160: длина: 40 цифры, мал.буквы <g

Haval160_3: длина: 40 цифры, мал.буквы <g

Haval160_4: длина: 40 цифры, мал.буквы <g

Haval160_5: длина: 40 цифры, мал.буквы <g

Haval160 (HMAC): длина: 40 цифры, мал.буквы <g

Haval224 (Base64): длина: 40 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

MySQL v5.x: длина: 40 цифры, мал.буквы <g

RipeMD160: длина: 40 цифры, мал.буквы &llt;g

RipeMD160 (HMAC): длина: 40 цифры, мал.буквы <g

SHA-0: длина: 40 цифры, мал.буквы <g

SHA-1 (HMAC): длина: 40 цифры, мал.буквы <g

SHA224 (Base64): длина: 40 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

Tiger160: длина: 40 цифры, мал.буквы <g

Tiger160 (HMAC): длина: 40 цифры, мал.буквы <g

44 символа

SNEFRU256 (Base64): длина: 44 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

Haval256 (Base64): длина: 44 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

RipeMD256 (Base64): длина: 44 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

SHA256 (Base64): длина: 44 цифры, мал.буквы, бол.буквы, + ,/,., окончание =

48 символов

Tiger2: длина: 48 цифры, мал.буквы <g

Tiger192: длина: 48 цифры, мал.буквы <g

Tiger192 (HMAC): длина: 48 цифры, мал.буквы <g

Haval192: длина: 48 цифры, мал.буквы <g

Haval192_4: длина: 48 цифры, мал.буквы <g

Haval195_5: длина: 48 цифры, мал.буквы <g

Haval192 (HMAC): длина: 48 цифры, мал.буквы <g

56 символов

Haval224: длина: 56 цифры, мал.буквы <g

Haval244_3: длина: 56 цифры, мал.буквы <g

Havan244_4: длина: 56 цифры, мал.буквы <g

Haval224 (HMAC): длина: 56 цифры, мал.буквы <g

RipeMD320 (Base64): длина: 56 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

SHA224: длина: 56 цифры, мал.буквы <g

SHA224 (HMAC): длина: 56 цифры, мал.буквы <g

60 символов

Blowfish: длина: 60 цифры, мал.буквы, бол.буквы, /,.

начинаеться на $2a$, 7 символов слева от $

64 символа

GOST R34.11-94: длина: 64 цифры, мал.буквы <g

Haval256_5: длина: 64 цифры, мал.буквы <g

Haval256: длина: 64 цифры, мал.буквы <g

Haval256_3: длина: 64 цифры, мал.буквы <g

Haval256_4: длина: 64 цифры, мал.буквы <g

Haval256 (HMAC): длина: 64 цифры, мал.буквы <g

Haval256_3: длина: 64 цифры, мал.буквы <g

PANAMA: длина: 64 цифры, мал.буквы <g

RipeMD256: длина: 64 цифры, мал.буквы <g

RipeMD256 (HMAC): длина: 64 цифры, мал.буквы <g

SHA256: длина: 64 цифры, мал.буквы <g

SHA256 (HMAC): длина: 64 цифры, мал.буквы <g

SHA384 (Base64): длина: 64 цифры, мал.буквы, бол.буквы, + ,/,.

SNEFRU256: длина: 64 цифры, мал.буквы <g

SNEFRU256 (HMAC): длина: 64 цифры, мал.буквы <g

80 символов

RipeMD320: длина: 80 цифры, мал.буквы <g

RipeMD320 (HMAC): длина: 80 цифры, мал.буквы <g

88 символов

WHIRLPOOL (Base64): длина: 88 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

SHA512 (Base64): длина: 88 цифры, мал.буквы, бол.буквы, + ,/,., окончание ==

96 символов

SHA384: длина: 96 цифры, мал.буквы <g

SHA384 (HMAC): длина: 96 цифры, мал.буквы <g

128 символов

SHA512: длина: 128 цифры, мал.буквы <g

SHA512 (HMAC): длина: 128 цифры, мал.буквы <g

WHIRLPOOL: длина: 128 цифры, мал.буквы <g

WHIRLPOOL (HMAC): длина: 128 цифры, мал.буквы <g

Whirlpool-0: длина: 128 цифры, мал.буквы <g

Whirlpool-1: длина: 128 цифры, мал.буквы <g

Whirlpool-2: длина: 128 цифры, мал.буквы <g