=========Хеши [Пособие для начинающих] =========
[::.start.::]
Хотел бы предложить Вам своё видение faq по хешам...
Попробуем сначала понять, что такое хеш(хеш-код) и что он из себя представляет.
Выписка из словаря:
Хэш - блок данных фиксированного размера, полученный в результате хэширования массива данных.
Хэширование - преобразования массива данных произвольного размера в блок данных фиксированного размера, служащий (в некоторых случаях) заменителем исходного массива.
Правда что-то сложное?...а ведь не совсем...разбираемся дальше...
Пример. У вас есть форум, в БД которого хранятся пароли всех зарегистрированных пользователей. Не исключено, что в Вашем форуме, например, найдут так называемую скуль (sql-injection), которая позволит злоумышленнику "выполнить произвольные SQL команды в базе данных приложения". В нашем случае достать пароли всех пользователей, а самое главное, админский.
Можно конечно самому найти дырявый отрезок кода, исправить, если есть нужные знания, а если их нет?
Посему, если и ставить форумы, то со "сложными" алгоритмами хешированния данных. Это не закроет дырку в "движке", но это уменьшит шанс злоумышленника сбрутить("рассшифровать") хеш ==> получение админского пароля.
Чтобы выбрать самый надежный вариант, давайте рассмотрим различные алгоритмы хеширования данных:
Название алгоритма - пример
MD4 - 4a4a963e47c7b8a3b355e0e0c90d0aa0
MD4 (HMAC) - 04ce8b342ca8a9d7406cd4897d25679a
MD4 (Base64) - SkqWPkfHuKOzVeDgyQ0KoA==
MD5 (64bit) - d0b506200fc60348
MD5 (128bit - md5($pass)) - 97f44b13955235245b2497399d7a93 - один из часто используемых алгоритмов, применяется в 80% случаев.
MD5 (HMAC) - 62cbf70244d4712b399c6dfb639d64dc
MD5 (Base64) - Qpf0SxOVUjUkWySXOZ16kw==+dU=
MD5 (Unix) - $1$qwe$pBmwBb8acK8LffnIJif6T1
MD5 (APR) - $apr1$qwe$4EO8hVkTlZyQnU0L2dsJB.
MYSQL (64bit) - 5668a61a05d9c04b
MYSQL5 (160bit) - e56a114692fe0de073f9a1dd68a00eeb9703f3f1, также встречается варианты со звездочкой в начале, не стоит путаться, это все тот же mysql5...
SHA-1 (160bit) - 601f1889667efaebb33b8c12572835da3f027f78
SHA-1 (HMAC) - f52c1ee3b7b74c8ced47ae9a8a1891cc49db07e6
SHA-1 (Base64) - YB8YiWZ++uuzO4wSVyg12j8Cf3g=
Domain Cached Credentials - f6f53c5ea599e94a0b5264c283120301
Применяются в php:
md5(md5($pass)) - 63ee451939ed580ef3c4b6f0109d1fd0 - применяется в e107
md5(md5($pass).$salt) - 3b66224a098f5eb18ce1a0bc9628269e - применяется в vBulletin
md5(md5($salt).md5($pass)) - 231b7727e6471d3f22ef56e190a3bf61 - применяется в IPB 2.x.x
sha1($username.$pass) - da39a3ee5e6b4b0d3255bfef95601890afd80709
Рассмотрим на нашем примере.
Надежнее будут хранится в БД пароли форумного движка ]]>IPB]]> 2.x.x (в IPB 1.x простой md5), нежели чем в ]]>phpbb]]>, где простой md5.
В алгоритме md5(md5($salt).md5($pass)) есть так называемая соль (salt - от англ. add salt to sth. сделать что-л. более интересным), которая усложняет подбор пароля. Чем больше символов в salt, тем дольше подбирать пароль. В данном случае она состоит из пяти символов.
А например в алгоритме md5(md5($pass).$salt), который применяется в ]]>vBulletin]]>, соль состоит всего-лишь из трех символов, что означает, что подбор будет более быстрый.
[::.чем подбирать/рассшифровывать/брутить?.::]
На самом деле, подобных программ, которые выполняют эти функции крайне мало.
Из них: ]]>PasswordsPro]]>, ]]>John the Ripper]]>, ]]>Ultimate Distributed Cracker]]>.
Также есть отдельные программы для определенных алгоритмов и целей. MD5Inside (устарел) - только md5, ]]>SAMInside]]> - LM и NT хеши, их подбор (подробнее об аудите паролей в Windows ]]>тут]]>, LCP (L0phtCrack) - также как и SAMInside, с различием, что эта программа сейчас не обновляется, чего нельзя сказать об SAMInside.
Теперь как бы всем этим научиться пользоваться? ) Попробую дать основы как пользоваться PasswordsPro и John the Ripper
[PasswordsPro]
Версия: 2.4.0.1
Платность: 500 руб.
Методы атак: предварительная атака, атака полным перебором, атака по маске, простая атака по словарям, комбинированная атака по словарям, гибридная атака по словарям, атака по предварительно рассчитанным Rainbow-таблицам.
Рассмотрим 3 основных метода:
1. Предварительная - самая быстрая атака, проверяет хеши на простые пароли - "123123", "qweasd" и т.д.
2. Атака полным перебором (англ. Brute force attack - Метод грубой силы) - перебор всех возможных паролей для "расшифровки" хешей.
3. Простая атака по словарям - в этом виде атаки происходит простоая проверка хэшей на пароли из текстовых файлов (словарей)
Хочу сказать сразу, данная программа обладает русским интерфейсом, чтобы его поставить Вам нужно в меню выбрать Service --> Options --> Language.
Для начала попробую сбрутить свой первый хеш.
Попробуем сбрутить такой хеш - 734fb47b8602c93ca0abb0d664a0fc69.
Жмём Alt+Ins, в графе "Имя" чаще всего пишется имя пользователя, хеш которого мы и пытаемся подобрать, оставляем в данном случае поле пустым. В графе "Хэш" вставляем хеш. Графы "Salt" и "Комментарий" оставляем пустыми, а в графе "тип хэша" выбираем MD5 (заранее зная наверняка).
В меню выбираем "Аудит --> Предварительная атака", затем жмём F4 и атака начнётся.
Видим не радостное окно с надписью "Предварительная атака закончена", а пароль так и не подобрали.
Переходим к след. методу. Лично я затем воспользовался бы полным перебором, но нам сначала нужно понять какие конкретные символы перебирать, посему лезим в Сервис --> Настройки, где выбираем "Атака полным перебором".
Давайте немного порассуждаем. Имея небольшой опыт за плечами могу сказать одно, что чаще всего встречаются пароли из "комбинаций соседних клавиш аля qwerty" и числовых. Перейдем к числовым. убираем везде галочки кроме 0...9. Максимальную длину ставим 9...больше не стоит. Нажимаем Ok и начинаем вновь брутить.
Ура! Вот оно окошко "Все пароли найдены!"...2007/10/12 (11:54:05) Найден пароль: "846578".
Видите, не всё так сложно как кажется на первый взгляд, а подобные пароли использует чуть ли не большая часть пользователей интернета.
Если пароль не подобрался, пробуем дальше...Убираем галочки с цифр, ставим на буквы, также меняем максимальную длину на 6...жмём F4...ждём некоторое время. Опять ничего? В таком случае Вам возможно помогут словари.
Скачать их можно тут:
]]>http://advlamer.narod.ru]]>
]]>http://www.insidepro.../download.shtml]]>
]]>http://www.passwords.ru/dic.htm]]>
По началу их Вам будет хватать.
Чтобы провести простую атаку по словарям, мы должны наши словари добавить в базу программы. Делается это в настройках.
Словари очень часто выручают, потому как такой пароль как "computerboy" подобрать легче с помощью словарей, нежели чем полным перебором.
Я думаю этих основ Вам хватит на первое время чтобы "правильно" пользоваться этой программой.
Более подробней об этой программе Вы можете прочитать на ее офиц. сайте - ]]>http://www.insidepro...swordspro.shtml]]>
[John the Ripper]
Версия: 1.7.0.2
Платность: Freeware
Офиц. сайт: ]]>http://www.openwall.com/john/]]>
В народе просто "джоник". Посмотрим что нам скажет википедия. John The Ripper программа, предназначенная для восстановления паролей по их хешам. Основное назначение программы аудит слабых паролей в UNIX системах. Программа также может выполнять аудит NTLM хешей, Kerberos, и др. Существуют реализации под различные ОС.
Многие не любят на нее переходить из-за ее консольного варианта (все нужно делать через cmd - коммандную строку). Нашлись конечно же люди, которые сделали GUI-шный вариант и называется он Foundstone FSCrack, который никому не пришёл по вкусу, посему проект прекратил своё существование.
И опять будем всё рассматривать на реальном примере. Например, на взломанном сайте нам удалось прочесть файл, содержащий список пользовательских учётных записей (в unix), то есть ]]>passwd]]>, который может содержать регистрационное имя, или логин, зашифрованный пароль и т.д.
Например:
root:lZTB0KTrSKy8M:0:0:root:/root:/bin/sh
То, что я выделил это и есть хеши, алгоритм - DES.
Теперь это записываем в текстовой документ и обзываем например pwd.txt, помещаем в папку с джоником.
Теперь рассмотрим методы атак:
1. Single mode - подберет простые пароли, аналог "Предварительной атаке" в PasswordsPro
пример: john-386.exe -single pwd.txt
2. Перебор по словарю.
пример: john-386.exe -w:адрес к словарю pwd.txt
пример: john-386.exe -w:F:\Словари\advlamer-words-russian-translit.txt pwd.txt
3. Брут - не эффективный, но самый простой.
пример: john-386.exe pwd.txt
4. Incremental mode - Самый сильный способ перебора, 95 символов.
пример: john-386.exe -i pwd.txt
пример: john-386.exe -i:alpha pwd.txt - Перебор с использованием 26 символов от 'a' до 'z'
Как запустить и какой именно метод атаки выбрать Вы уже знаете.
Ах да...забыл...если что-то удастся сбрутить, пароли можно посмотреть после завершения атаки - john-386.exe -show pwd.txt. А так они сохраняются в файле john.pot.
Забыл еще напомнить, что не забудьте в каком каталоге/папке Вы работаете. чтобы все мои примеры выполнялись, самый простой вариант это создать в папке вместе с джоником файл *.bat'овский, в котором написать cmd.
[::.end.::]
И хотелось бы напомнить, что хеши именно брутятся, а не расшифровываются. А говорил я так лишь только для того, чтобы Вам было понятней.
Использовались материалы от 1dt.w0lf, Thanat0z, WaPBBS Decrypt Clan, за что им огромное спасибо. Также использовались материалы из Википедии.
Спасибо за внимание.
P.s. Не стесняемся дополнять/сообщать об ошибках и неточностях...это черновой вариант, ну в принципе и законченный...наверное...
© Koller
Pin4eGgg~ добавил 19.08.2008 в 13:13
Список применяемых алгоритмов в форумных движках:
------------------------------------------------------------------------------------ | Название | Алгоритм хеширования | Префикс | Таблица | ------------------------------------------------------------------------------------ | Beehive | md5($pass) | нет | USER | | Intellect Board | md5($pass) | нет | User | | IPB 1.x.x | md5($pass) | si_ | members | | IPB 2.x.x | md5(md5($salt).md5($pass)) | si_ | members_converge | | MercuryBoard | md5($pass) | mb_ | users | | MiniBB | md5($pass) | minibbtable_ | users | | myBB 1.2.x | md5(md5($salt).md5($pass)) | mybb_ | users | | PBLang | md5($pass) | хеш для каждого пользователя хранится в файле /db/members/имя_юзера | | phpbb | md5($pass) | phpbb_ | users | | PhpMyForum | md5($pass) | pmf_ | user | | PunBB 1.2.x | SHA-1 | нет | users | | SMF 1.1.x | sha1($username.$pass) | smf_ | members | | QuickSilver Forum | md5($pass) | qsf_ | users | | UseBB | md5($pass) | usebb_ | members | | Vanilla | md5($pass) | LUM_ | User | | VBulletin | md5(md5($pass).$salt) | нет | user | | VikingBoard | md5($pass) | vboard_ | member | | W-Agora | md5($pass) | [название]_ | users | | YaBB | md5(HMAC) | проверить не удалось |
Источник: hack-team.info