Атака на хэши. (практическое руководство)

Discussion in 'Криптография, расшифровка хешей' started by -=lebed=-, 28 Apr 2008.

  1. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Атака на хэши.


    [intro]
    Статья предназначена для участников сервисов hashcracking.info, md5.xek.cc, hash.insidepro.com, в основном для тех кто брутит очереди хэшей (списки хэшей), а так же будет интересна начинающим бруттерам.
    На написание данного материала меня натолкнула недавняя статья автора программы PasswordsPro ("PasswordsPro - Таинственный мир хэшей" https://forum.antichat.ru/thread67547.html) и ввиду ограниченной и не полной информации по практическому применению различных видов атак, а так же для повышения уровня успешного восстановления паролей от хэшей в очередях сервисов, хотел поделится некоторыми советами и рекомендациями. Т.е. указать конкретные этапы атак и их параметры для максимального успеха по восстановлению паролей за относительно короткое время.

    [Простые пароли]

    Давайте определимся с понятием, что собственно такое простые пароли?
    Как правило это пароли, для восстановления которых требуется малое время (будем считать не более суток).
    а) Пароль малой длинны, состоящий из полного набора символов (как правило 1-5)
    б) Пароль большой длинны, состоящий из одного символа (напрмер 11111111111111111111111111111111111)
    в) Пароль малой длинны, состоящий из ограниченного набора симовлов (как правило 6-7 символов строчных или заглавных букв).
    г) Пароль произвольной длинны состоящий из рядом расположенных символов на клавиатуре (необходим словарь таких комбинаций).
    д) Часто используемый пароль, который имеется у Вас в словарях.
    е) Часто используемый модифицируемый пароль, на основе того же словаря часто используемых паролей.
    ж) Пароль, состоящий из двух слов часто используемых паролей (например password12345).

    [Какие виды атак использовать для поиска простых паролей?]
    а) Ну конечно же это сначала предварительная атака.
    б) Атака полным перебором (все символы, длинна 1-5, время атаки <20 мин.);
    в) Атака полным перебором (все цифры, длинна 6-11, время атаки <30 мин.);
    г) Атака полным перебором (все английские строчные 6-7, время атаки <30 мин.);
    д) Атака полным перебором (все английские заглавные 6-7, время атаки <30 мин.);
    е) Атака по Вашим словарям. (Используйте всё что есть, желательно чтоб словари состояли из используемых реально паролей). Время атаки зависит от словаря и как правило, не большое, потому как редко кто имеет большие словари, состоящие из десятков милиардов слов).
    ж) Гибридная атака по словарям с использованием правил замены символов. (время атаки=время предыдущей атаки х колличество правил замены.)
    з) Комбинированная атака по маленьким словарям, часто используемых слов. (я обычно ограничиваюсь комбинацией словаря InsidePro.dic с самим собой, Вы можете использовать и другие простые словари, которые уже идут в комплекте с программой).

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

    [Сложные пароли - быстрый поиск]

    Что такое сложный пароль? Я отвечу просто, все оставшие хэши, которые остались без найденного пароля у Вас в списке, будем считать сложными! )) Атака на сложные пароли может идти очень долго, если использовать простой перебор...
    Давайте подумаем какие же это могут быть пароли?
    - Используется другой алгоритм хэширования
    а) Например md5(md5(pass)), исходный пароль в этом случае представляет собой 128-битный хэш, который кроме как, атакой по словарю (который его содержит) нам не подсилу восстановить (32 символа алфавита 0-0a-f). Что делать? Меняем тип хэша на md5(md5()) и goto [простые пароли]!
    б) Хэш солёный, например md5($pass.$salt) а соли мы не имеем -> комбинированная атака, где один словарь выступает в качестве пароля, а второй сгенирированный словарь - соль, хорошо бы конечно знать хотя-бы длину этой соли, часто используют 4-5 символов);
    в) Хэш солёный, использует более сложный алгоритм предварительного хэширования, например md5(md5($pass).md5($salt)) или md5($pass.md5($salt)) и т.п. К сожалению сервис hashcracking.info не поддерживает пароли больше чем 32 символа, поэтому восстановив такой пароль Вы не сможете добавить его в базу сервиса, хотя возможность восстановления так же есть: генерируем хэши от словарей, генерируем словарь хэшей от соли и используем комбинированную атаку. Вообщем такие ошибки сосикателя (т.е. если он подсунул нам таким образом сгенерированный хэш мы исправить не сможем). Единственная возможность в этом случае воспользоваться дополнительной возможностью сервиса Атака по словарю и указать алгоритм хэширования, но в этом случае Вам нужно так же как и в программе PasswordsPro указать конкретное значение соли.
    в) Хэш MD4 - клиент ошибся адресом, на сервисе hashcracking.info нет поддержки md4 - забиваем (хотя для меня будет полезно пробрутить, чтобы исключить ошибочные хэши из очереди, безусловно то, что и ему в природе имеется соответсвие, т.е. md5(pass1)=md4(pass2) - но нужно ли это нам? Ответ - скорее нет.
    г) Сгенирированный пароль длинной до 8 символов. Тут Вам поможет атака по Rainbow Tables. Сразу скажу, что во-первых их надо иметь в наличии (таблицы) или потратить значительное время на их генерацию. Я сгенерировал для md5 следующие таблицы:
    md5_mixalpha-numeric#1-7_0_5000x100000000_oxid
    md5_numeric#1-12_0_5000x100000000_oxid
    md5_loweralpha-numeric#1-8_0_10000x100000000_oxid - пробив каждого набора таблиц около 96%.
    Заметьте, что многие из атак на простые пароли в этом случае можно исключить, так как диапазоны поиска паролей пересекаются (но не полностью).

    Надо заметить, что на поиск сложных паролей может уйти в n-раз больше времени, чем на поиск простых, в зависимости он колличества используемых алгоритмов хэширования, в случае, если Вы достаточно хорошо к этому подготовлены. (Имеете софт для работы со словарями, Скрипты для генерации хэшей, Радужные Таблицы и т.д.)
    Таким образом, при соответсвующей подготовке, казалось бы очень сложные пароли для кого-то можно отнести условно к "простым" (я имею ввиду затраченное время на взлом).
    Что же делать с оставшимися не расшифрованными паролями?

    [Сложные пароли - Оптимальный поиск]

    Давайте поразмыслим, что бы это у нас могло остаться?
    а) Ну как ранее я указал Выше - другой алгорим хэширования или сложное предварительное хэширование.
    б) Сгененированый программой сложный пароль длинной более 8 символов.
    в) Осмысленный пароль, часто состоящий из цифр и букв и спецсимволов длинной более более 8 символов.
    Как быть с поиском таких паролей?
    В случае а) просто забиваем (желающие могут побрутить md4, что некоторые и делают).
    В случае б) такие пароли без распределённого перебора восстановить очень сложно, потребуется очень много машинного времени. Второй вариант использование гибридных Rainbow Tables, но к сожалению в PasswordsPro нет поддержки таких таблиц, но сам принцип мы можем использовать в комбинированной атаке, но об этом ниже...
    В случае в) нам может обернуться удача, если мы грамотно используем атаки по маске и комбинированную атаку по словарям.
    Часто сложные пароли с длинной 8 и более символов представляют собой осмысленные комбинации цифр, заглавных и строчных букв, спецсимволов. В этом случае нам поможет атака по маске. Какие маски указывать? Давайте подумаем.
    ?*?l?l?l?l?d?d?d?d - возьмём, к примеру такую маску, чем она хороша? Она предназначена для поиска паролей вида ?pass1991 или >Lishp4513, т.е. первый символ пароля у нас любой, далее идут строчные четыре символа и в конце цифры. Таких масок можно придумать кучу, скажете Вы, но всё-таки в пароле просматривается определённая логика. Можно поставить неизвестный символ в середину пароля (между буквами и цифрами - такие тоже встречаются), а можно и в конец. Зачастую от верного пароля нас может отделять всего лишь один символ! И многие зная это именно его и ставят либо в конце/начале либо в середине.
    Т.е. задав логичную маску пароля мы сокращаем диапазон перебора и выуживаем возможные оставшиеся пароли. Вот некоторые, маски, которые я использую:
    Code:
    ?*?l?l?l?l?d?d?d?d длинна 6-9 символов
    ?l?l?l?l?*?d?d?d?d длинна 6-9 символов
    ?l?l?l?l?l?d?d?d?* длинна 9 символов
    
    В случае работы с масками нам может улыбнуться удача, если пароль осмысленно придуман и его длинна 9-10 символов, с большими длиннами растёт время поиска как и в случае атаки полным перебором (это и есть полный перебор по сути, только для каждой части пароля - свой диапазон).

    В случаях б) и в) нам так же может помочь комбинированная атака по специально сгенерированным словарям.
    Что же это за словари? Возмём к примеру любой, достаточного объёма, (1-5 млн. слов) словарь и посчитаем возможные релевантные (часто встречающиеся) комбинации двух, трёх, четырёх символьные в словах из этого словаря и занесём в список. Далее, если такой словарь скомбинировать сам с собой 3-4 раза (возвести в 3-4 степень), то мы получим множество слов исходного словаря + дополнительные, возможно даже реально не существующие слова, но более вероятно используемые. Именно на этом принципе строятся Гибридные Rainbow Tables для программы UDC (она их поддерживает). Данным видом атаки мы сможем найти достаточно сложные пароли длинной 9-16 символов. Какой должен быть исходный словарь для генерации этих словарей? Конечно будет лучше, если он будет состоять из реальных паролей, используемых в интернете. Только предварительно из него надо исключить хэши, которые использованы в качестве пароля - они создадут "помехи" релевантности, так как никакой логики в 32 символьном хэше не просматривается (случайный набор цифр 0-9a-f).

    [Заключение]

    Статья не претендует на оригинальность методов, а содержит практические рекомендации зарегистрированным участникам сервиса hashcracking.info, работающих с программой PasswordsPro и помогающих брутить хэши в очередях сервиса в индивидуальном режиме (не распределённая атака).
    Возможно будет продолжение и я расскажу Вам как "выжать" всё возможное и не возможное из PasswordsPro, про оригинальные, экзотические методы атак, проведя некоторые дополнительные исследования...
    Учитывая тот момент, что поиск простых паролей занимает малое время, и поэтому, в очередях сервиса остаются, как правило, сложные пароли (исключение - добавленные недавно), то рекомендую юзать сразу поиск сложных паролей, используя описаные методы, да и ценность реального простого пароля, который простым перебором брутится менее 30 мин. равна 0. (Скорее всего это пароль какого-нибудь юзверя-ламера, но никак не админа на админку, сервис и т.п.).

    [Приложения]
    Статья автора InsidePro
    Новый метод восстановления паролей (проект UDC)
    [Инструменты]
    Программа для генерации релевантных 2,3,4-х символьных комбинаций из одного большого словаря релевантных слов.
    скачать (http://the-udc.com/smf/index.php?topic=58.0)
    Программа для построения словарей скачать (http://the-udc.com/smf/index.php?topic=38.0)
    Готовые словари из релевантных комбинаций словаря hashcracking.info тут
    Программы для работы со списками словарей тут
    Наборы правил для гибридной атаки по словарям для PasswordsPro: тут
    P.S. Будут дополнения и исправления...
    (с) -=lebed=-
     
    #1 -=lebed=-, 28 Apr 2008
    Last edited: 20 May 2008
    9 people like this.
  2. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    Норма статья спс +1
    Хорошо бы еще ссылки добавил on-line рассшифровки хешей кроме приведенных, вот моя маленькая коллекция)
    http://gibs0n.name/?do=tools
     
    1 person likes this.
  3. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Лебедь, прости, но зачем писать такие статьи? Ты уже просто превращаешься в "генератор статей": вот объясни, неужели человек, добывший эти хеши, не сможет разобраться, как их брутить, а? Статья несёт минимальную полезную нагрузку - и таких статей полно! Ничего нового и интересного не предложено - лучше придумай что-нибудь оригинальное и интересное, а не "лишь бы что-нибудь написать"...

    Надеюсь, ты поймёшь меня правильно ;)
     
  4. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    У каждого может быть своя специализация, хэши можно добыть заюзав банальную скулю, а вот точно определить алгоритм хэширования, используемый в конкретном случае может не каждый, поверь мне, ко мне такие обращаются и иначе не было бы в очереди хэшей от других алгоритмов хэширования если бы все разбирались в хэшах...
    Согласен, что минимальную, написано для кого предназначалась, и что мало нового, собрал всё в одно место, кроме того будет продолжение...
     
  5. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Да в большинстве случаев это просто невозможно!
    http://www.insidepro.com/hashes.php?lang=rus - посмотри, сколько там похожих! Надо всё равно угадывать! Другое дело, что что-то используется чаще, что-то реже... И вообще, на самом деле, когда придумали такое понятие как "хеш", его планировали использовать (и более того - используют) - в других целях! Ну да ладно, это уже из другой оперы.


    Лебедь, оставь возню в песочнице тем, кому она пока ещё нужна,- а ты залезаешь туда и рушишь чужие песочные замки... Или просто хочешь запереть песочницу...
    Зачем?
    По тебе видно, что ты МОЖЕШЬ ПРИДУМАТЬ, написать что-то гораздо более нужное и полезное, а занимаешься пусканием мыльных пузырей...
     
  6. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Нет т.к есть такие люди которые например смотрят в раздел уязвимостей находят сплоит и достают хэши а что с ними делать не знают=)
     
  7. Lancellot

    Lancellot Member

    Joined:
    9 Aug 2006
    Messages:
    138
    Likes Received:
    23
    Reputations:
    7
    хо-хо-хо эти ваши хек сервисы
    кроме "qwerty" могут что нибудь еще сбрутить?
    не вижу смысла делать питсот тысяч этих сервисов всеравно все брутятся passcracking.ru
    статья ниочем, Tanatoz шарит в этой теме ^__^
     
  8. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    У мну есть своя песочница - hashcracking.info и я рассказал как в ней правильно играть, не более того... ;)
     
  9. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Вот таких лучше расстреливать, по-моему...


    -=lebed=-, хе-хе, рекламка:) SEO:) Чёрная раскрутка :p

    И всё-таки я считаю, что статьи нужны не такие...
     
    1 person likes this.
  10. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    - мир меняется, интернет тоже...

    - я и не спорю...
     
    1 person likes this.
  11. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    И вообще, если бы я был модером - удалил бы статью нафик... Притом ради тебя же!! Видно же - можешь объяснять, умеешь писать, умеешь оформлять, а фигнёй пустословишь...
     
  12. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    почему Чёрная, имхо Белая... ;)
    Ну если тебе не нужны, то не значит что всем, я думаю, тем кто начинает только помогать, статья будет полезной, а тому, кто помогать никогда не будет, любая статья по этой теме будет бесполезна...
     
    1 person likes this.
  13. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Что-то я не понял слова "помогать" в твоём контексте...

    И читай внимательнее - я не говорю, что такое не надо, а я говорю, что ТЫ СПОСОБЕН и ТЫ ДОЛЖЕН делать большее...
     
    1 person likes this.
  14. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Извини, но это оффтоп уже полный...
     
  15. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Ну ладно... всё, можешь почистить топик =) Ты мою позицию понял ;)

    PS Как говорится, "за державу обидно" :))
     
    1 person likes this.
  16. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    desTiny зря ты так напал на -=lebed=-. Знаеш на каждую отличную статью всегдна найдется люди которым она не понравиться, также на каждую плохую статью всегда найдутся люди которым она понравиться.

    И в этой статьи своя аудитория. То что для тебя является очевидным для некоторых является новым. Но все же человек старался и он молодец. Пусть аудитория его читателей отличается. И к тому же человек занимается тем чем ему нравиться.

    Твоя фраза о кулхацкеров...
    - Вот таких лучше расстреливать, по-моему...
    А с этим я с тобой согласен :).
     
    1 person likes this.
  17. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Ждите продолжения тогда... всему своё время... ;)
     
    1 person likes this.
  18. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Что-то ты путаешься в показаниях, мистер милиционер :)
    Как я понял твою фразу, ты согласен с тем, что надо расстреливать тех, для кого написана эта статья, так? ;)
     
  19. tmp

    tmp Banned

    Joined:
    10 Mar 2005
    Messages:
    417
    Likes Received:
    32
    Reputations:
    1
    кто то юзал MD5 Toolkit ? Ни как не могу понять как с ней работать. какаие то блок1 и блок2... блок1 выдал мне на хеш Chaining Value for M что с ними делать? ни где нет подробного описания (на русском вообще ни чего). В общем кто знает как с ней управляться коротко намекните плизз. заранее спасибо
     
  20. Nek1t

    Nek1t Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    Нужен словарь для брута на религиозную тематику О_о
     
Loading...