Брут-форс веб-форм роутеров
Нам понадобится несколько инструментов. Первый из них — Burp Suite. По приведённой ссылке есть инструкции, в том числе для настройки работы Burp Suite с веб-браузерами — не будем здесь на этом останавливаться, выполните подготовительные действия самостоятельно.
Итак, открываем в веб-браузере интересующий нас роутер:
и убеждаемся, что Burp Suite действительно видит передаваемые данные:
Теперь отправляем заведомо неправильные данные, например, имя пользователя 11111111 и пароль 22222222:
Переходим к анализу в Burp Suite:
Данные отправляются методом POST, на страницу (корневая папка) отправляется HTTP заголовок с кукиз Cookie: _TESTCOOKIESUPPORT=1, передаётся строка вида:
frashnum=&action=login&Frm_Logintoken=0&Username=11111111&Password=22222222
Смотрим ответ, для начала переключаемся на рендер:
Отлично, в ответе содержится слово Error, поищем его в сырых передаваемых данных:
Анализируем обычный ответ, без ввода пароля:
Там также встречается слово Error, то есть его наличие ни о чём не говорит — такой маркер не подходит для брут-форса. Надеюсь, самые внимательные заметили, что в ответе, пришедшем на аутентификацию, найдено два совпадения с Error, а в обычном ответе, только одно. Смотрим ещё раз ответ после попытки аутентификации:
В этом ответе содержится очень характерная строка:
User information is error, please input again.
Словари DirBuster
DirBuster — это многопотоковое Java приложение, предназначенное для брутфорса имён директорий и файлов веб-приложений и веб-серверов. DirBuster пытается найти скрытые каталоги и файлы.
В Kali Linux словари располагаются в директории /usr/share/wordlists/dirbuster/. В BlackArch словари располагаются в директории /usr/share/dirbuster/.
Описание словарей, поставляемых с программой DirBuster
- directory-list-2.3-small.txt — (87650 слов) — Директории/файлы которые были найдены как минимум на трёх разных хостах
- directory-list-2.3-medium.txt — (220546 слов) — Директории/файлы которые были найдены как минимум на двух разных хостах
- directory-list-2.3-big.txt — (1273819 слов) — Все директории/файлы которые были найдены
- directory-list-lowercase-2.3-small.txt — (81629 слов) — Версия не чувствительная к регистру для directory-list-2.3-small.txt
- directory-list-lowercase-2.3-medium.txt — (207629 слов) — Версия не чувствительная к регистру для directory-list-2.3-medium.txt
- directory-list-lowercase-2.3-big.txt — (1185240 слов) — Версия не чувствительная к регистру для directory-list-2.3-big.txt
- directory-list-1.0.txt — (141694 слов) — Оригинальный список без изменения порядка
- apache-user-enum-1.0.txt — (8916 имён пользователей) — Используется для предположения имён пользователей apache на котором включён модуль userdir, основывается на набранных именах пользователей (неупорядоченный)
- apache-user-enum-2.0.txt — (10341 имён пользователей) — Используется для предположения имён пользователей apache на котором включён модуль userdir, основывается на ~XXXXX найденном во время генерации списка (упорядоченный)
На каких данных основаны рекомендации
Многие механизмы для формирования хороших парольных привычек имеют под собой научную базу. К примеру, сотрудники CMU доказали, что лучше увеличить минимальную длину пароля, чем принудительно использовать символы разных классов. Другие исследовательские группы разработали “паролеметры” для оценки паролей на основе больших данных. Отдельные научные работы посвящены словарям паролей.
Но мало конкретных рекомендаций, как комбинировать все эти механизмы и добиваться оптимальной сложности и удобства пароля. По этой причине в CMU провели 2 эксперимента и оценили, как разные комбинации парольных политик защищают от атак и воспринимаются пользователями.
Участникам экспериментов предлагали создать пароль по заданной парольной политике. Сначала ученые разными методами измерили надежность этих паролей. Затем пользователей попросили вспомнить придуманный пароль, а исследователи оценили легкость его запоминания.
Как составляли и проверяли политики
Количество и классы символов. В основе всех политик лежали требования к длине пароля и числу классов: это буквы верхнего и нижнего регистра, цифры и специальные символы. Каждую политику исследователи обозначили формулой вида:
Эта политика требует пароль, который содержит три класса символов из четырех.
Все протестированные политики включали длину пароля не менее 8 символов. Получился примерно такой список политик: 1с8, 3c8, 4c8, 1с10, 1с12, 2с12, 3c12, 1с16.
Проверка по словарю. Требования к символам помогают генерировать более сложные пароли. Но некоторые пользователи могут соблюдать требования и все равно придумать слабый пароль. Например, для политик 4c8 и 1c16 можно создать предсказуемые варианты: 1Password! и passwordpassword. Чтобы этого избежать, политики часто комбинируют с поиском по словарям.
Для словарной проверки нужен список часто используемых, предсказуемых или скомпрометированных паролей, а также сам алгоритм поиска по словарю. Например, можно искать точные совпадения в списке, а можно использовать нечеткий поиск, который найдет совпадения с разницей в регистрах или отдельных символах. Допустим, в словаре есть password. Нечеткий поиск также посчитает “словарными” пароли типа pa$$word или Passw0rd.
В эксперименте использовались словари Xato и Pwned, а также разные алгоритмы поиска:
-
поиск полного совпадения со строками словаря без учета регистра – case-insensitive full-string comparison (cifs);
-
поиск полного совпадения со строками словаря с учетом регистра – case-sensitive full-string comparison (fs);
-
отделение цифр и специальных символов и последующий регистронезависимый поиск точно таких же строк в словаре (strip-cifs);
-
регистронезависимый поиск любых 5-символьных совпадений словарных фрагментов с фрагментами пользовательского пароля (ciss).
В сочетании с разными словарями получились такие варианты для проверки: Pwned-fs, Xato-cifs, Xato-strip-cifs, Xato-ciss и так далее.
Количество попыток перебора. Один из методов оценки надежности пароля – сколько попыток сделает злоумышленник, прежде чем подберет пароль. Для такой проверки используются разные модели, в том числе нейронные сети. Минимальные требования к количеству и частоте попыток зависят от многих факторов, например, используемых средств защиты или характера атаки. В своей работе CMU рассматривают 2 вида атак:
-
при онлайн-атаках хакер может перебирать пароли только при взаимодействии с сервером. Если отрубить доступ, продолжить попытки не получится.
-
при офлайн-атаках хакер может подбирать пароли без обратной связи от сервера, то есть дольше. Это возможно, если у злоумышленников есть краденая база с хэшами паролей.
Для оценки надежности в CMU использовали модели машинного обучения. С помощью базы данных скомпрометированных паролей нейронную сеть обучили предсказывать, какова вероятность подобрать пароль. Степень надежности определяли по количеству необходимых попыток и записывали формулой:
В этом случае считаем пароль надежным, если нейронка не угадала его за 1 млн попыток.
Гипотезы по совместному использованию методов. Исследователи использовали разные комбинации политик, чтобы ответить на вопросы:
-
Как проверка по словарю сочетается с политиками вида 1c8 и 3c8?
-
Как разные варианты проверок по словарю сочетаются с политикой вида 1с8?
-
Насколько разные политики по длине и классам от 1с8 до 3с12 выполняют требование надежности на уровне NN6?
-
Насколько проверка по словарю сочетается с проверкой с помощью нейронных сетей?
-
Насколько успешна проверка надежности на уровне NN8 и NN10 при разных требованиях только к длине пароля?
-
Как проверка по словарю сочетается с разными требованиями к числу классов символов (от 1с8 до 4с8)?
Получилась такая таблица проверки разных условий:
Торрент с 427 000 000 паролей MySpace +6
- 04.07.16 11:20
•
alizar
•
#278066
•
Гиктаймс
•
•
20600
Социальные сети и сообщества, Информационная безопасность
Добрые люди выложили в открытый доступ базу паролей MySpace, которая некоторое время ходила по подпольным форумам и продавалась за большие деньги. Теперь она бесплатна и открыта для всех.
База с 427 миллионами паролей — самая большая коллекция паролей за всю историю утечек с разных сайтов, коих было немало в последние годы.Myspace.com.rar (14,2 ГБ)
Пароль на RAR-архив: KLub8pT&iU$8oBY(*$NOiu
Скачать
SHA1:SHA256:Торрент11 июня 2013 года
- Имён пользователей — 111 341 258
- Аккаунтов со вторым паролем — 68 493 651 (в некоторых аккаунтах указан только второй пароль и не указан первый)
- Общее количество паролей — 472 484 128
отмечаютhomelesspaСамые популярные пароли из базы MySpace
Место | Пароль | Количество |
---|---|---|
1 | homelesspa | 855478 |
2 | password1 | 585503 |
3 | abc123 | 569825 |
4 | 123456 | 487945 |
5 | myspace1 | 276915 |
6 | 123456a | 244641 |
7 | 123456789 | 191016 |
8 | a123456 | 165132 |
9 | 123abc | 159700 |
10 | (POSSIBLY INVALID) | 158462 |
11 | qwerty1 | 141110 |
12 | passer2009 | 130740 |
13 | fuckyou1 | 125302 |
14 | iloveyou1 | 123668 |
15 | princess1 | 114107 |
16 | 12345a | 111818 |
17 | monkey1 | 106424 |
18 | football1 | 101149 |
19 | babygirl1 | 90685 |
20 | love123 | 88756 |
21 | a12345 | 85874 |
22 | iloveyou | 85001 |
23 | jordan23 | 81028 |
24 | hello1 | 80218 |
25 | jesus1 | 78075 |
26 | bitch1 | 78015 |
27 | password | 77913 |
28 | iloveyou2 | 76970 |
29 | michael1 | 75878 |
30 | soccer1 | 74926 |
31 | blink182 | 73145 |
32 | 29rsavoy | 71551 |
33 | 123qwe | 70476 |
34 | angel1 | 70271 |
35 | myspace | 69019 |
36 | fuckyou2 | 68995 |
37 | jessica1 | 67644 |
38 | number1 | 65976 |
39 | baseball1 | 65400 |
40 | asshole1 | 63078 |
41 | 1234567890 | 62855 |
42 | ashley1 | 62611 |
43 | anthony1 | 62295 |
44 | money1 | 61639 |
45 | asdasd5 | 60810 |
46 | 123456789a | 60441 |
47 | superman1 | 59565 |
48 | sunshine1 | 57522 |
49 | nicole1 | 56039 |
50 | password2 | 55754 |
51 | charlie1 | 54432 |
52 | shadow1 | 54398 |
53 | jordan1 | 54004 |
54 | 1234567 | 51131 |
55 | 50cent | 50719 |
Самые популярные почтовые домены из базы аккаунтов MySpace
Место | Почтовый домен | Количество |
---|---|---|
1 | @yahoo.com | 126 053 325 |
2 | @hotmail.com | 79 747 231 |
3 | @gmail.com | 25 190 557 |
4 | @aol.com | 24 115 704 |
5 | @aim.com | 5 345 585 |
6 | @live.com | 4 728 497 |
7 | @hotmail.co.uk | 4 701 850 |
8 | @msn.com | 4 378 167 |
9 | @myspace.com | 4 257 451 |
10 | @comcast.net | 3 275 651 |
11 | @ymail.com | 2 866 796 |
12 | @sbcglobal.net | 2 793 292 |
13 | @hotmail.fr | 2 335 422 |
14 | @web.de | 1 486 602 |
15 | @rocketmail.com | 1 420 819 |
16 | @yahoo.co.uk | 1 384 943 |
17 | @verizon.net | 1 255 478 |
18 | @cox.net | 1 082 304 |
19 | @mail.ru | 1 040 442 |
20 | @hotmail.it | 1 018 406 |
21 | @bellsouth.net | 961 018 |
22 | @gmx.de | 959 852 |
23 | @hotmail.de | 852 256 |
24 | @NONE | 790 159 |
25 | @yahoo.fr | 741 962 |
26 | @att.net | 685 951 |
27 | @earthlink.net | 652 769 |
28 | @hotmail.es | 612 748 |
29 | @yahoo.co.id | 604 816 |
30 | @yahoo.com.my | 601 114 |
31 | @yahoo.com.br | 551 956 |
32 | @charter.net | 548 031 |
33 | @yahoo.de | 543 823 |
34 | @live.fr | 518 523 |
35 | @netscape.net | 510 577 |
36 | @live.co.uk | 502 121 |
37 | @libero.it | 490 151 |
38 | @googlemail.com | 430 112 |
39 | @wp.pl | 401 928 |
40 | @live.com.mx | 397 944 |
41 | @yahoo.es | 389 453 |
42 | @yahoo.co.jp | 351 781 |
43 | @btinternet.com | 349 642 |
44 | @mail.com | 343 346 |
45 | @excite.com | 335 215 |
46 | @yahoo.com.mx | 330 927 |
47 | @qamail.msprod.msp | 328 267 |
48 | @peoplepc.com | 325 192 |
49 | @music.msprod.msp | 324 173 |
50 | @yahoo.ca | 320 579 |
51 | @tmail.com | 314 187 |
52 | @gmx.net | 310 143 |
53 | @netzero.com | 308 410 |
54 | @yahoo.it | 307 122 |
55 | @optonline.net | 306 284 |
LeakedSourceсказалобъявил50 млн человек
Инструменты и словари для онлайн-подбора паролей
Классическим инструментом для онлайн-подбора паролей является утилита командной строки thc-hydra, а для этичных хакеров и администраторов, любящих комфорт, данный функционал с интуитивно понятным интерфейсом имеется в нашем комплексе «Сканер-ВС»:
Также ключевым фактором успешного подбора пароля является доступность хорошо составленных словарей, а вот с этим бывают проблемы. Словари, поставляемые вместе с современными отечественными средствами анализа защищенности не всегда содержат действительно полезные наборы слов. Например, включают стандартный словарь, распространяемый с одной бесплатной утилитой. Решение, конечно, простое, но не очень эффективное. Разве можно представить себе российского пользователя, выбравшего такие пароли, как: soccer, cutiepie, maganda или mustang. Как много в среднем российском городе счастливых обладателей Ford Mustang? Иногда включают замечательный словарь, основанный в основном на паролях, оставляемых по умолчанию, но совершенно забывают про обычных пользователей и их любимые пароли.
Мы решили исправить эту досадную ситуацию и составили свои списки паролей, которые теперь доступны не только пользователям нашего комплекса тестирования защищенности «Сканер-ВС», но и всем желающим на сайте нашего решения в разделе «Пароли»:
Списки паролей:
- TOP-157
- TOP-25
- Числовые последовательности
- Даты
- Клавиатурные последовательности
- Распространенные мужские имена
- Распространенные женские имена
Списки учетных записей:
- Пользовательские мужские: первая буква имени + фамилия
- Пользовательские мужские: первая буква имени + точка +фамилия
- Пользовательские мужские: имя + точка +фамилия
- Пользовательские женские: первая буква имени + фамилия
- Пользовательские женские: первая буква имени + точка +фамилия
- Пользовательские женские: имя + точка +фамилия
Что плохого в последнем обновлении сервиса
Очередной неприятной новостью, которая связана с 1Password, стало недавнее обновление настольного клиента для macOS, Windows и Linux.
Разработчики полностью переписали свое приложение с использованием кроссплатформенного фреймворка Electron. Это значит, что у утилиты больше не будет нативного приложения для той или иной ОС. Вместо этого будет запускаться громоздкий универсальный алгоритм, который плохо учитывает особенности каждой отдельной системы.
На Electron уже работают такие приложения, как Slack, WhatsApp Desktop, Discord и другие. Требовательность к системным ресурсам macOS у этих приложений оставляет желать лучшего.
Так первые пользователи и тестировщики ключевого обновления 1Password 8 на Mac заметили возросшие требования к железу. Утилита “отъедает” больше оперативной памяти, дольше реагирует на команды, а на слабых компьютерах вместе с 1Password на полную мощность запускается и активная система охлаждения.
Пользователи негативно относятся к переходу на Electron, а еще ругают разработчиков за ухудшение интерфейса кроссплатформенного приложения и удаление некоторых удобных возможностей утилиты. На форуме Reddit появляются целые ветки с гневными отзывами и комментариями пользователей, которые долгое время поддерживали продукт регулярной покупкой обновлений.
Больше всего обидно самым старым клиентам 1Password на Mac. Именно с этой платформы начиналось развитие сервиса, а сейчас вместо удобного нативного приложения появится одна из самых глючных и требовательных к железу версий утилиты.
Сомневаюсь, что при указанном выше годовом доходе компании и немалых инвестициях, AgileBits Inc было сложно содержать и развивать отдельные приложения для разных платформ.
Установка и снятие пароля защиты базы данных
Cамоучитель MS Access 2002 в†’ Администрирование баз данных в†’ Установка и снятие пароля защиты базы данных
Чтобы установить пароль для защиты базы данных:
- Закройте базу данных. Если база данных совместно используется в сети, убедитесь, что остальные пользователи ее закрыли.
- Сделайте резервную копию базы данных и сохраните ее в надежном месте.
- В меню Access выберите команду Файл, Открыть (File, Open).
- Выделите файл базы данных.
- Щелкните по стрелке, расположенной справа от кнопки Открыть (Open). В раскрывающемся списке режимов открытия базы данных выделите элемент Монопольно (Open Exclusive). База данных откроется в режиме монопольного доступа.
- Выберите команду Сервис, Защита, Задать пароль базы данных (Tools, Security, Set Database Password).
- В появившемся диалоговом окне введите в поле Пароль (Password) пароль для защиты базы данных с учетом регистра символов.
- Введите пароль еще раз в поле Подтверждение (Verify).
- Нажмите кнопку ОК.
Теперь база данных защищена паролем и всякий раз, когда пользователь будет открывать базу данных, будет отображаться диалоговое окно с требованием ввести пароль. Запомните или сохраните пароль в надежном месте. Если вы забудете пароль, базу данных будет невозможно открыть.
Замечание
Не защищайте базу данных паролем перед ее репликацией, иначе ее нельзя будет синхронизировать с другими репликами.
Если база данных защищена на уровне пользователей, установить пароль для ее открытия может только пользователь, обладающий административными правами. Установка пароля не влияет на систему защиты на уровне пользователя. Эти два способа защиты могут использоваться одновременно. Пароль базы данных сохраняется в базе данных, а не в файле рабочей группы.
Чтобы удалить пароль защиты базы данных:
- Откройте базу данных в режиме монопольного доступа.
- В диалоговое окно Необходимо ввести пароль (Password Required) ведите пароль.
- Выберите команду Сервис, Защита, Удалить пароль базы данных (Tools, Security, Unset Database Password). Появится диалоговое окно Удаление пароля базы данных (Unset Database Password).
- Введите текущий пароль базы данных.
- Нажмите кнопку ОК.
Лучшие программы для взлома паролей
Недавно мы опубликовали статью о надежности паролей, а также паролях, которые используются многими пользователями. Большинство людей используют слабые пароли. Но как убедится, что ваш пароль сильный? Взлом паролей — это неотъемлемая часть цифровой криминалистики и тестирования информационной безопасности.
В этой статье мы собрали лучшие программы для взлома паролей, которые могут использоваться системными администраторами для проверки надежности их паролей. Все утилиты используют различные алгоритмы и применимы к различным ситуациям. Рассмотрим сначала базовую информацию, которая поможет вам понять с чем мы будем иметь дело.
Сколько же времени займет перебор паролей для ВК?
Напомню, что мы перебираем 221 918 520 426 688 (222 триллиона) вариантов пароля.
Поэтому, чтоб узнать сколько мы будем взламывать пароль ВК перебором делим количество на скорость, т.е.
221918520426688 пароля / 7,4 пароля в секунду = 29737081737176сек = 495618028953 мин = 8260300483 часов = 344179187 дней = 942957 лет
Вывод:реальная программа для взлома ВК могла бы подобрать пароль перебором за 94 тысячи лет.
Можно значительно ускорить процесс перебора!
Для этого нужно: 1. Повысить вычислительную мощность. Например, заразить 1.000.000 чужих компов и со всех одновременно брутить ВК (аж смешно) 2. Укоротить брут-словарь до, например, пары тыщ.(по принципу социальной инженерии)
Как сделать брут-словарь?
1. Ручками в программе блокнот (notepad.exe) 2. Прогой «генератор брута» (ссылка внизу статьи)
Этот брут – словарь наполняем реальными вариантами.
Реальные – это такие, которые хоть как-то связано с взламываемым человеком:
— телефоны
(его, его родственников, друзей)Пример
— номера с +7с, 8кой, без 8ки – попадается редко
— даты рождения
(его, его родственников, близких)Пример
— (одной и той же даты) 010118, 01012018, 20180101, 180101 – попадается часто
— Имена любимых, близкихПример
— SashaMaria, MariaIvanova, SaNoMaIv – попадается средне
Название сайта (или фамилия) на другой раскладкеПример
, если набрать слово «vkontakte» на русской раскладке, то получится – «млщтефлеу» — такая схема ну очень часто попадается на всех сайтах.
— лоховской список паролей для брута
(список самых распространенных паролей в сети — ссылка в конце статьи)
Долго ли писать словарь?
Ну, не очень – полчаса за глаза хватит. А кто сказал что будет легко?))
Допустим у нас есть созданный брут словарь и рабочая прога для подбора пароля ВК (либо ручной ввод по словарю).
Возникает одна важная проблема – система защиты сервера.
Собственно помеха её заключается в том, что при слишком частых запросах сервер тупо блокирует (временно) ваш IP. Кроме того, если вы работаете с ВК через стандартную форму ввода (HTMLFORM), то после 3 ей неудачной попытки ВК будет просить ввести капчу.
В старой версии ВК можно было просто перейти на мобильную версию – m.vk.com, теперь же мобильной версии как таковой нет – в 2016 году сделали единый адаптивный дизайн.
Программа для поиска паролей
Используя эти знания, была создана DumpsterDiver, которая в значительной степени была вдохновлена программой TruffleHog (также ищет пароли и ключи основываясь на энтропии строк и регулярных выражений, но только в репозиториях git.
DumpsterDiver — это инструмент для поиска чувствительных данных (паролей, хешей, API ключей, ключей ассиметричного шифрования) в файлах различного типа.
Главные особенности:
- может анализировать любые текстовые файлы
- использует Shannon Entropy для поиска приватных ключей
- может искать по логам git
- распаковывает сжатые архивы (например, zip, tar.gz и т.д.)
- поддерживает продвинутый поиск на основе простых правил (подробности ниже)
- ищет пароли, прописанные в исходном коде или обычных файлах
- полностью настраиваемая, вы можете снизить количество ложных результатов за счёт указания чётких критериев того, что вы ищите
- может искать по регулярным выражениям, поддерживает подстановочные символы
- доступна в качестве образа Docker
- записывает вывод в формат JSON
Как оценивали удобство для пользователей
Теперь перейдем к измерениям удобства. На первом этапе все участники эксперимента должны были придумать пароль в специально разработанном “паролеметре”. Парольная политика выбиралась случайно из всех комбинаций, которые проверяли исследователи.
-
Участники эксперимента получали список рекомендаций, вводили пароль и в реальном времени наблюдали, как меняется индикатор сложности пароля.
-
Как только минимальные требования были выполнены, “паролеметр” давал рекомендации для усиления пароля:
Рекомендации меняются по мере того, как мы добавляем другой регистр и цифры. Запись демо с сайта CMU.
Пока пользователь придумывал пароль, “паролеметр” фиксировал, с какой попытки удалось выполнить требования и сколько времени понадобилось на создание правильного пароля.
-
Все созданные пароли проверяли с помощью нейронных сетей и предсказывали, сколько попыток потребуется для подбора.
-
Через 2 дня ученые просили пользователей принять участие во втором этапе и вспомнить созданный пароль. Если пользователи не отвечали через 5 дней, они выбывали из эксперимента. Для остальной выборки фиксировали долю тех, кому удалось вспомнить пароль. Исследователи анализировали все сопутствующее поведение участников: могут ли они воспроизвести пароль по памяти или записывают его, сколько времени и попыток нужно на воспроизведение.
-
Участников обоих этапов просили заполнить опросник и описать в нем опыт участия в эксперименте: насколько сложно создать пароль, как сильно выбранная парольная политика раздражала пользователя.
Для каждой комбинации условий ученые фиксировали объективные показатели эксперимента: количество участников, долю выбывших на втором этапе, фактическое время создания пароля, фактическое время на воспроизведение пароля, долю успешных попыток подбора пароля. Помимо этого указывались и субъективные ощущения участников из опроса: насколько создание пароля кажется им сложным и раздражающим, насколько легко его вспомнить.
Получилась такая таблица:
Информационная энтропия
- 404e554d243c1a11d13c96b60129504a31b0abd имеет энтропию 3.57.
- ChuckNorriscountedtoinfinitytwentytwice имеет энтропию 3.81.
- 2r9pAuQxUFAstrWhEy4G4WiVx5iJ74Hja5AWgHq9 имеет энтропию 4.67.
wget https://gist.githubusercontent.com/xep624/31e06ff461d05d43505f6c6809eda336/raw/58083dab77bc6a8c2f94351a976124c915ed899a/entropy.py
Пример вычисления информационной энтропии строки BCVjd skd;bNhydfdklkg»lgbn,nbldkjgsd:
python entropy.py 'BCVjd skd;bNhydfdklkg"lgbn,nbldkjgsd' The entropy of a character in a string 'BCVjd skd;bNhydfdklkg"lgbn,nbldkjgsd' is 3.37953229264824 bits
Ещё один пример:
python entropy.py 'abcdefghijklmnopqastuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' The entropy of a character in a string 'abcdefghijklmnopqastuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' is 5.661978179679557 bits
Если строка удовлетворяет упомянутым ниже условиям, то вы можем с высокой долей вероятности сказать, что мы имеем дело с ключом:
- Строка содержит только символы из набора Base64 (другими словами, рассматриваем только строки между не Base64 символами, например между “” или ‘’)
- Длина строки между значениями МИНИМАЛЬНАЯ_ДЛИНА и МАКСИМАЛЬНАЯ_ДЛИНА (например, если МИНИМАЛЬНАЯ_ДЛИНА равна 40, а МАКСИМАЛЬНАЯ_ДЛИНА равна 66 байтам, то мы можем найти AWS Secret key и Azure Shared Key)
- Информационная энтропия одиночного символа строки выше значения ЭНТРОПИЯ (энтропия всех AWS secret keys выше 4.2, а энтропия Azure Share Key всегда выше 5.8)
Эти условия стали основой для автоматизации процесса поиска ключей в любом текстовом файле.
Списки слов от Metasploit
Названия словарей имеют говорящие названия. В основном эти словари предназначены для брут-форса удалённого входа в различные службы, имеются неплохие универсальные словари с именами пользователей и паролями.
tree /usr/share/wordlists/metasploit /usr/share/wordlists/metasploit ├── adobe_top100_pass.txt ├── av_hips_executables.txt ├── av-update-urls.txt ├── burnett_top_1024.txt ├── burnett_top_500.txt ├── cms400net_default_userpass.txt ├── common_roots.txt ├── db2_default_pass.txt ├── db2_default_userpass.txt ├── db2_default_user.txt ├── default_pass_for_services_unhash.txt ├── default_userpass_for_services_unhash.txt ├── default_users_for_services_unhash.txt ├── dlink_telnet_backdoor_userpass.txt ├── hci_oracle_passwords.csv ├── http_default_pass.txt ├── http_default_userpass.txt ├── http_default_users.txt ├── http_owa_common.txt ├── idrac_default_pass.txt ├── idrac_default_user.txt ├── ipmi_passwords.txt ├── ipmi_users.txt ├── joomla.txt ├── keyboard-patterns.txt ├── malicious_urls.txt ├── multi_vendor_cctv_dvr_pass.txt ├── multi_vendor_cctv_dvr_users.txt ├── namelist.txt ├── oracle_default_hashes.txt ├── oracle_default_passwords.csv ├── oracle_default_userpass.txt ├── password.lst ├── piata_ssh_userpass.txt ├── postgres_default_pass.txt ├── postgres_default_userpass.txt ├── postgres_default_user.txt ├── root_userpass.txt ├── routers_userpass.txt ├── rpc_names.txt ├── rservices_from_users.txt ├── sap_common.txt ├── sap_default.txt ├── sap_icm_paths.txt ├── scada_default_userpass.txt ├── sensitive_files.txt ├── sensitive_files_win.txt ├── sid.txt ├── snmp_default_pass.txt ├── tftp.txt ├── tomcat_mgr_default_pass.txt ├── tomcat_mgr_default_userpass.txt ├── tomcat_mgr_default_users.txt ├── unix_passwords.txt ├── unix_users.txt ├── vnc_passwords.txt ├── vxworks_collide_20.txt └── vxworks_common_20.txt
Поиск паролей в исходном коде
Использование энтропии для поиска паролей не очень эффективно, так как это создаёт много ложных сообщений. Поэтому DumpsterDiver использует другой подход для поиска hardcoded (прописанных в файлах исходного кода или настроек) паролей — он проверяет сложность пароля с помощью Passwordmeter. Для настройки этого поиска вы можете использовать следующие опции:
- —min-pass MIN_PASS — указывает минимальную длину пароля для анализа (по умолчанию это 8). Требует использования флага ‘-s’.
- —max-pass MAX_PASS — указывает максимальную длину пароля для анализа (по умолчанию это 12). Требует использования флага ‘-s’.
- —pass-complex {1,2,3,4,5,6,7,8,9} — указывает минимальное значение сложности пароля в диапазоне от 1 (тривиальные пароли) до 9 (очень сложные пароли) (по умолчанию это 8). Требует использования флага ‘-s’.
Например, вы хотите найти сложные пароли (которые содержат заглавные и прописные буквы, специальные символы, цифры и имеют длину от 10 до 15 символов), то вы можете сделать это используя следующую команду:
python3 DumpsterDiver.py -p --min-pass 10 --max-pass 15 --pass-complex 8
Шифрование и хеширование
Шифрование — это обратимое преобразование текста в случайный набор символов.
Хеширование — это необратимое преобразование текста в случайный набор символов.
Разница между этими двумя действиями в том, можем ли мы из случайного набора символов получить исходную строку по какому-то известному алгоритму.
Приведу пример шифрования. У нас есть сообщение:
Зашифруем сообщение по следующему алгоритму: сдвинем каждую букву на 1 в алфавитном порядке, т.е. а превращается в б, г превращается в д, я превращается в а. Так будет выглядеть зашифрованный текст:
Зашифровали. Теперь для расшифровки нужно выполнить обратную операцию, сдвинуть все буквы на 1 символ назад. К слову, этот алгоритм шифрования называется шифр Цезаря (Википедия).
В отличие от шифрования, хеширование не имеет (вернее, не должно иметь) способа «расхешировать» строку обратно:
Стандартные способы защиты
Защита с использованием пароля пользователя
Совсем не обязательно использовать программы, позволяющие определить пароль БД или пользователя. Часто программисты совсем не заботятся о сокрытии пароля в тексте программы. Запустив программу, работающую с защищённой БД необходимо открыть в шестнадцатеричном редакторе WinHex виртуальную память этого приложения. Проведя поиск Unicode строк ‘User ID=’; ‘Password=’; ‘Database Password=’ или ‘pwd=’ можно найти имя пользователя, его пароль и пароль базы данных.
Можно вовсе проигнорировать наличие защиты. Для этого надо воспользоваться AccessRecovery, которая создаёт новый файл без защиты и переносит в него таблицы, запросы, формы, макросы, отчеты и код модулей.
- http://www.taurion.ru/access/20/12
- https://t-tservice.ru/access/kak-sdelat-parol-v-access.html
- http://word-office.ru/kak-sdelat-parol-v-access.html
- https://llscompany.ru/access/access-parol-na-bazu.html
Хакеры находят секретные данные в JavaScript-файлах
- Для отладочных целей.
- Для целей локальной разработки.
- В виде комментариев, предназначенных для тех, кто будет поддерживать проект позже.
meggf
▍Что делать?
- Минифицируйте код. Благодаря этому код обфусцируется. Подобная обработка кода обратима, но благодаря ей можно обойти многие автоматические сканеры, что уменьшает потенциальные возможности атаки.
- Оставляйте в коде только абсолютный минимум ключей и путей к API. В то время как без некоторых из них обойтись не получится, о большинстве из них сказать того же самого нельзя. Оставляйте в коде только те ключи, которым совершенно необходимо в нём присутствовать.
- Понизьте разрешения, связанные с ключами, до абсолютного минимума. Если вспомнить пример с сервисом картографической информации, то можно сказать, что ключи должны быть такими, чтобы с их помощью можно было бы делать только то, для чего они предназначены, и чтобы пользоваться ими можно было бы только там, где они должны использоваться. Удостоверьтесь в том, что эти ключи нельзя использовать для атаки на систему.
- Используйте те же инструменты для автоматического сканирования кода, которые используют хакеры. Включайте их в системы непрерывной интеграции. Особенно это касается средств для поиска строковых паттернов, которые работают очень быстро. Используйте простые инструменты вроде или для поиска строк. Такая проверка кода сродни тестам. Она позволяет убедиться в том, что разработчики не оставляют в коде дыр, которыми может воспользоваться злоумышленник для взлома системы.
- Внедрите у себя практику код-ревью. Всегда полезно, когда кто-то проверяет ваш код. Все автоматические сканеры мира не способны выявить 100% возможных проблем. Код-ревью — это отличный способ повышения качества и защищённости кода.
Поиск паролей на компьютере
В этой инструкции мы узнаем, как искать пароли и ключи в произвольных файлах, когда они могут быть обнаружены в исходном коде программ или в других случаях, требующих индивидуального подхода. Если же вам необходимо решить более типичную задачу, например, извлечь из компьютера все пароли, введённые в веб-браузер или найти типичные чувствительные файлы, то смотрите статьи:
- Как узнать введённые на сайты пароли
- Как узнать, к каким Wi-Fi сетям подключался компьютер и пароли от этих Wi-Fi сетей
- Извлечение всех паролей (веб-браузеры, почтовые программы и пр.) в Windows и Linux
- Структура директорий Linux. Важные файлы Linux
- Аудит безопасности хостинга и других совместно используемых систем на Linux
Конкурсы по хешкрекингу
А где хешкрекер может посоревноваться с другими хешкрекерами в своем умении ломать хеши? Конечно же, на конкурсах! Основные — конкурс Crack Me If You Can, проводимый фирмой KoreLogic в рамках ежегодной конференции DEF CON, и конкурс Hash Runner на ежегодной конференции Positive Hack Days.
Правила этих конкурсов весьма просты — нужно за ограниченное время (как правило, за 48 часов) сломать как можно больше конкурсных хешей и выполнить дополнительных заданий, также связанных с хешами. И так как время сильно ограничено, то на время таких конкурсов хешкрекеры всегда объединяются в команды.
Исторически сложилось так, что с самых первых конкурсов сформировались три основные команды — InsidePro, hashcat и john-users, которые все эти годы стабильно делили меж собой три призовых места в различных комбинациях. Даже по названиям команд уже очевидно, вокруг какого софта или сайта они объединились. В составе каждой из команд есть автор этого софта, и причина этого тоже понятна — на конкурсах всегда встречаются новые или видоизмененные алгоритмы хеширования, и нужно очень быстро модифицировать программу-брутфорсер или добавить в нее новый алгоритм. Тому, кто не имеет возможности быстро (часто за несколько часов или даже минут) перекроить софт под нужные фишки, очень сложно претендовать на приз.
Все отчеты о конкурсах доступны на сайтах команд, а также на сайтах организаторов — например, тут.
Рис. 4. Архивное фото — организаторы конкурса по хешкрекингу на DEFCON 2012
К сожалению, других крупных конкурсов по хешкрекингу нет. Иногда бывают небольшие конкурсы на хешкрекерских форумах, но их размах гораздо меньше. А с другой стороны, многие профессиональные хешкрекеры всегда находятся в «режиме конкурса», так как на форумах периодически размещаются хеши стоимостью в сотни и даже тысячи долларов, поэтому сразу после их опубликования хешкрекеры включаются в борьбу за этот хеш, чтобы обойти других, первому сломать пароль и получить «приз», то есть плату за пароль.
К каким выводам пришли исследователи
-
Наиболее оптимальная парольная политика, по мнению исследователей, – настройка минимальной длины пароля и одновременная проверка пароля с помощью нейронной сети. Лучше всего в экспериментах себя показала политика вида 1c12+NN10: пароль не менее 12 символов с “угадываемостью” не менее 10 млрд попыток. Это обеспечивает достаточную защиту от офлайн-атак и необходимый уровень удобства.
-
Если проверка с помощью нейронных сетей не подходит, то исследователи рекомендуют задавать длину пароля не менее 8 символов и одновременно проверять пароли по словарям. Такая проверка обеспечивает меньшую защиту, но достаточно эффективна против онлайн-атак. При этом, защиту можно усилить, если увеличить минимальную длину пароля.
-
Проверка по словарю будет эффективнее, если использовать методы нечеткого поиска. То есть, лучше включать в поиск не только точные совпадения, но и вариации вроде P@$$w0rd. Если же используется точный поиск, стоит запускать проверку по максимально доступному словарю скомпрометированных паролей.
-
Пользователи испытывают больше неудобства, если им требуется создать пароль с разными классами символов. Если же пользователю нужно только соблюдать длину не менее 8–-16 символов и пройти проверку “угадываемости” пароля, то парольная политика воспринимается как удобная.