• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Одно правило, чтобы управлять ими всеми

Взлом пароля является неотъемлемой частью пентестирования, и, за некоторыми исключениями, атаки по словарю / правилу являются преобладающим методом получения этих неуловимых значений в виде простого текста. Взломочные установки дали пентестерам и черным шляпам возможность бросать несколько видеокарт с некоторыми хэшами и достигать феноменальных скоростей, например, в начале этого года система с против хешей NTLM (это более 500 миллиардов хешей в секунду). ). Бойся паролей Windows ... очень бойся.

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

Целевые данные:

В качестве хэш-набора использовался дамп данных Lifeboat. Lifeboat - это сообщество Minecraft, и в январе 2016 года было обнаружено более 7 миллионов данных учетной записи, включая несоленые хеши паролей MD5. Количество хэшей и слабый алгоритм сделали этот дамп основным кандидатом на исследования. Сырые MD5 были извлечены из файла, и после дедупликации hashcat сообщил о чуть более 4,3 миллиона уникальных хэшей.

Словарь и правила:

Популярный словарь rockyou использовался во время тестирования по каждому из следующих правил:
  • best64
  • unix-ninja-leetspeak
  • InsidePro-HashManager
  • InsidePro-PasswordsPro
  • toggles5
  • T0XICv1
  • rockyou-30000
  • d3ad0ne
  • dive
  • generated2
  • d3adhob0
  • hob064
  • KoreLogicRulesPrependRockYou50000
  • v2.dive

Все, кроме d3adhob0, hob064 , и _NSAKEY.v2.dive , включены в hashcat. Хорошее сочетание файлов правил должно позволить нам определить, какие отдельные правила являются наиболее важными, из которых можно создать собственное правило.

Тестирование:

Каждый сеанс начинался со следующей команды, заменяя используемое правило и имена файлов соответственно:

1.png



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

Результаты:

Результаты каждого теста можно найти ниже, показывая сгенерированные пароли-кандидаты из каждого набора правил и взломанный итог / процент.





правилоВсего кандидатовТрещины% Трещины
погружение1.421.219.827.456284308565,64
_NSAKEY.v2.dive1.768.370.620.544278474164,30
generated2933992405632260656560,18
d3ad0ne489063363712258039959,58
RockYou-30000430298880000255742259,05
T0XICv1171129864576235798954,44
InsidePro-HashManager92801125120224734951,89
InsidePro-PasswordsPro44751083520205646747,48
d3adhob0825313251840171258139,54
best641104433792140444932,43
hob064917970944119503227,59
KoreLogicRulesPrependRockYou50000717078740224113785226,27
toggles57089891212875934417,53
unix-Ниндзя-leetspeak4404826201662128014,34
Шанс успеха на спасательной шлюпке



Мы также можем посмотреть на эффективность каждого набора правил, сравнивая успехи с общим количеством протестированных кандидатов. Например, мы можем видеть, что правила d3adhob0 имели четвертый по величине размер кандидата (825 миллиардов), однако взломали только 39,54% паролей. Для сравнения, в правиле InsidePro-PasswordsPro было только 45 миллиардов кандидатов, но оно взломало 47,48% паролей. Последнее правило явно более эффективно!

Существует множество показателей, которые мы здесь не учитываем, поэтому мы не говорим: «никогда не используйте d3adhob0, всегда используйте InsidePro-PasswordsPro ». Это всего лишь наблюдение из этого конкретного теста . Множество других показателей, таких как время, алгоритм, доступные ресурсы, потенциально известные персонажи (где происходят атаки с использованием масок) и т. Д., Необходимо учитывать в зависимости от того, чего вы пытаетесь достичь. Мы выбрали эту настройку, потому что большой набор хэшей, использующий несоленый MD5, обеспечивал лучший баланс скорости / времени.

Распределение эффективности правила можно увидеть ниже.





Тестовое заданиеВсего кандидатовТрещиныДогадки за трещину
hob0649179709441195032768
best6411044337921404449+786
InsidePro-PasswordsPro44751083520205646721761
InsidePro-HashManager92801125120224734941294
unix-Ниндзя-leetspeak4404826201662128070899
T0XICv1171129864576235798972574
toggles57089891212875934493368
RockYou-300004302988800002557422168255
d3ad0ne4890633637122580399189530
generated29339924056322606565358323
d3adhob08253132518401712581481912
KoreLogicRulesPrependRockYou500007170787402241137852630204
_NSAKEY.v2.dive1.768.370.620.5442784741635022
погружение1.421.219.827.45628430854998867
Эффективность на спасательной шлюпке



Таким образом, хотя правило погружения взломало больше всего, оно было наименее оптимальным с точки зрения средних догадок, прежде чем взламывать хэш. Это не обязательно проблема, если у вас есть роскошь времени, но время было бы значительно больше, если бы эти хэши были, например, SHA-256. Кроме того, наиболее эффективное правило, hob064 , взламывает такое же количество хэшей, что и правило KoreLogicRulesPrependRockYou50000 , однако последнее затрачивает на 30 000 предположений больше между каждым взломом.

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

2 (1).png



Это всего лишь фрагмент, поскольку один из наборов правил содержит более 100 000 правил, а другие содержат несколько десятков тысяч. Пара быстро идентифицированных тенденций паролей в приведенном выше примере показывает, что сообщество Minecraft любит заменять « a » на « 4 » ( правило sa4 ), а также использовать заглавные буквы в первой и строчные в остальных ( правило c )! Полный список переключателей правил hashcat можно найти .

Аномалии параллелизма:

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

3 (1).png



В первом тесте было на 7 попаданий больше, чем во втором. Другие правила также сообщали о немного разных числах как здесь, так и в других наборах правил.

Вероятно, это связано с многопоточностью / высоким параллелизмом, что означало, что разные правила создавали одно и то же текстовое значение до обращения к правилу « : » (особенно если учесть, что мы запускаем профиль -w3 !). Например, допустим, пароль был « L3tme1n », а словарь содержит « l3tme1n ». Если правило « T0 » (переключает регистр первого символа) попадает до правила « : », то « T0 » получает точку, эффективно отбирая ее у « : ». В каждом тесте отличающиеся результаты были отмечены как относительно последовательные.

Одно правило, чтобы управлять ими всеми ...:

Отсюда мы выбрали лучшие 25% исполняющих правил из каждого набора, затем удалили их, объединили и определили, оставив нам собственный набор супер-правил, содержащий 51 998 правил. Время, чтобы поставить это через шаги.



правилоВсего кандидатовТрещины% Трещины
OneRuleToRuleThemAll745808362112296071168,36
погружение1.421.219.827.456284308565,64
_NSAKEY.v2.dive1.768.370.620.544278474164,30
generated2933992405632260656560,18
Шанс успеха на спасательной шлюпке







Тестовое заданиеВсего кандидатовТрещиныДогадки за трещину
[...][...][...][...]
OneRuleToRuleThemAll7458083621122960711251902
generated29339924056322606565358323
d3adhob08253132518401712581481912
KoreLogicRulesPrependRockYou500007170787402241137852630204
_NSAKEY.v2.dive1.768.370.620.5442784741635022
погружение1.421.219.827.45628430854998867
Эффективность на спасательной шлюпке



Хотя это и не самое эффективное средство против всех наших тестов (из-за большого количества кандидатов), пользовательское правило взломало на 2,72% (117 626) больше паролей, чем это сделало погружение . Однако наше пользовательское правило было значительно более эффективным, чем погружение, которое заняло второе место по показателям успеха.

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

# Тест 1
Нарушение XSplit, ноябрь 2013 г., 2 983 472 учетных записи, 2 227 270 уникальных хэшей. Несоленый SHA-1.



правилоВсего кандидатовТрещины% Трещины
OneRuleToRuleThemAll745808362112145568265,36
погружение1.421.219.827.456140263662,98
Уровень успеха на Xsplit



Наше пользовательское правило взломало на 2,38% (53 046) больше правил.

# Тест 2

Нарушение Battlefield Heroes, июнь 2011 года. 548 773 аккаунта, 423 623 уникальных хэша. Несоленый MD5.





правилоВсего кандидатовТрещины% Трещины
OneRuleToRuleThemAll74580836211231895875,29
погружение1.421.219.827.45631415074,16
Шанс успеха на полях сражений героев



Наше пользовательское правило взломало на 1,13% (4,808) больше правил.

Подведение итогов:
наше супер-правило вышло на первое место во всех наших тестах, а также в других, на которые мы смотрели. Мы сожалеем, что разочаровали фанатов «Властелина колец» («Одно кольцо, чтобы управлять ими всеми!»), Но, несмотря на название нашего правила, вероятно, никогда не будет одного правила, чтобы управлять ими всеми, как другие атаки, основанные на правилах. не существует, если был. Атаки паролем всегда должны выполняться с учетом всех переменных, в частности, доступного времени, аппаратных ресурсов, размера словаря и алгоритма.

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

Пользовательское правило, которое мы использовали, доступно на github

Источник:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!