Программа для подбора пароля linux
Brute-force (атака полным перебором) – метод решения математических задач, сложность которого зависит от количества всех возможных решений. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.
Рассмотрим инструменты, которые можно использовать для выполнения brute-force атак на SSH и WEB-сервисы, доступные в Kali Linux (Patator, Medusa, Hydra, Metasploit), а также BurpSuite.
Все материалы, предоставленные в рамках данной статьи, предназначены для использования исключительно в учебных целях. Использование материалов в противоправных и противозаконных запрещено.
Brute-force SSH
Для примера возьмем тестовую машину 192.168.60.50 и попробуем подобрать пароль пользователя test по SSH. Мы будем использовать популярные пароли из стандартного словаря rockyou.txt.
Patator
Для подбора пароля средствами Patator используем команду:
Hydra
Для подбора пароля используя Hydra выполним команду:
hydra -V -f -t 4 -l test -P /root/wordlist ssh://192.168.60.50
где:
-V – показывать пару логин+пароль во время перебора
-f – остановка как только будет найден пароль для указанного логина
-P – путь до словаря с паролями
ssh://192.168.60.50 – указание сервиса и IP-адрес жертвы
Medusa
Для подбора пароля с использованием Medusa выполним команду:
medusa -h 192.168.60.50 -u test -P /root/wordlist -M ssh -f -v 6
Metasploit
Произведем поиск инструмента для проведения brute-force атаки по SSH:
search ssh_login и получили ответ:
Для просмотра необходимых параметров, воспользуемся командой show options . Для нас это:
rhosts – IP-адрес жертвы
rport – порт
username – логин SSH
userpass_file – путь до словаря
stop_on_success – остановка, как только найдется пара логин/пароль
threads – количество потоков
Указание необходимых параметров производится через команду "set".
set rhosts 192.168.60.50
set username test
set userpass_file /root/wordlist
set stop_on_success yes
set threads 4
set rport 22
Указав необходимые параметры набираем команду "run" и ждем.
Противодействие
Ограничить количество устанавливаемых соединений с использованием межсетевого экрана. Пример настройки iptables:
-A INPUT -i eth0 -p tcp --dport 22 -m connlimit --connlimit-above 1 --connlimit-mask 32 -j REJECT --reject-with tcp-reset .
Такое правило установит ограничение доступа к SSH для каждого IP-адреса до 1 соединения в секунду, значительно усложнив перебор. Также эффективным решением может быть использование двухфакторной аутентификации (например, используя eToken) или аутентификации с использованием ключевой пары, а также использование ACL на основе IP-адресов.
Brute-force WordPress
Рассмотрим другой пример — подбор пароля окна авторизации веб-формы.
Для примера будем подбирать пароль от учетной записи администратора wordpress.
BurpSuite
Для начала нам необходимо понять, как происходит процесс авторизации. Для этого мы будем использовать BurpSuite. Нам необходимо попробовать авторизоваться с любым паролем и логином, чтобы посмотреть какие запросы проходят через BurpSuite.
Отлично, мы увидели POST запрос для авторизации с ним мы и будем работать.
В BODY указано какой логин и пароль проверялись, а значит, мы можем попробовать самостоятельно подставить нужные нам значения.
Передаем этот запрос в Intruder и там выбираем необходимые параметры для атаки. В пункте Payload Positions тип атаки оставляем sniper, но для проверки оставляем только параметр pwd. Таким образом, при атаке будет изменяться только этот параметр.
Загружаем необходимый словарь и начинаем атаку.
Из поведения веб-приложения мы видим, что неверный пароль возвращает код ответа 200. После перебора словаря, видим, что один из паролей дал ответ с кодом 302 — он и является верным.
Данный метод перебора занимает намного больше времени, чем при использовании Patator, Hydra, Medusa и т.д. Даже с учетом того, что мы взяли небольшой словарь, BurpSuite перебирал словарь около 40 минут.
Hydra
Попробуем подобрать пароль с помощью Hydra.
Как мы уже знаем, при неверной авторизации возвращается код 200, а при успешной – 302. Попробуем использовать эту информацию.
Для запуска используем команду:
hydra -V -f -l admin -P /root/wordlist -t 4 http-post-form://192.168.60.50 -m "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.60.50%2Fwp-admin%2F&testcookie=1:S=302"
Patator
Как мы уже знаем, при неудачной авторизации возвращается код 200, а при удачной – 302. Будем использовать тот же принцип, что и с Hydra:
Запуск производится командой:
Противодействие
Ограничить (усложнить) brute-force атаки на web-приложения можно средствами iptables (по аналогии с SSH) и средствами nginx. Для этого необходимо создать зону лимитов:
.
limit_req_zone $binary_remote_addr zone=req_limits:10m rate=30r/s;
.
и задействовать ее:
location / .
limit_req zone=req_limits burst=10;
limit_req_status 429;
.
>
Такие настройки позволят ограничить количество запросов с одного IP-адреса до 40 в секунду.
Усложнить задачу перебора можно используя следующие методы:
— Применение межсетевого экрана и прочего ПО для ограничения количества обращений к защищаемому сервису. О том, как мы используем машинное обучение для выявления подобных атак (в том числе распределенных), можно почитать в статье.
— Использование средств, препятствующих быстрой проверке корректности ключа (например, Captcha).
Заключение
В данной статье мы поверхностно рассмотрели некоторые популярные инструменты. Сократить риск подбора пароля можно, следуя следующим рекомендациям:
— используйте устойчивые к подбору пароли;
— не создавайте пароли, используя личную информацию, например: дату рождения или имя + дата рождения или мобильный телефон;
— регулярно меняйте пароль;
— на всех аккаунтах применяйте уникальные пароли.
Подобные рекомендации (как и рекомендации по безопасной веб-разработке) мало кто соблюдает, поэтому необходимо использовать различные программные решения, позволяющие:
— ограничить подключение по IP-адресу, или, если это невозможно, ограничить одновременное количество соединений с сервисом (средствами iptables, nginx и прочими);
— использовать двухфакторную аутентификацию;
— выявлять и блокировать подобные атаки средствами SIEM, WAF или другими (например, fail2ban).
Недавно мы опубликовали статью о надежности паролей, а также паролях, которые используются многими пользователями. Большинство людей используют слабые пароли. Но как убедится, что ваш пароль сильный? Взлом паролей - это неотъемлемая часть цифровой криминалистики и тестирования информационной безопасности.
В этой статье мы собрали лучшие программы для взлома паролей, которые могут использоваться системными администраторами для проверки надежности их паролей. Все утилиты используют различные алгоритмы и применимы к различным ситуациям. Рассмотрим сначала базовую информацию, которая поможет вам понять с чем мы будем иметь дело.
Что такое взлом паролей?
В области кибербезопасности и криптографии взлом паролей играет очень важную роль. Это процесс восстановления пароля с целью нарушения или восстановления безопасности компьютера или системы. Итак, почему вам нужно узнать программы перебора паролей? В мирных целях можно использовать взлом паролей для восстановления забытых паролей от онлайн аккаунтов, также это используется системными администраторами для профилактики на регулярной основе.
Для взлома паролей в большинстве случаев используется перебор. Программное обеспечение генерирует различные варианты паролей и сообщает если был найден правильный. В некоторых случаях персональный компьютер способен выдавать миллионы вариантов в секунду. Программа для взлома пароля на пк проверяет все варианты и находит реальный пароль.
Время, необходимое для взлома пароля пропорционально длине и сложности этого пароля. Поэтому рекомендуется использовать сложные пароли, которые трудно угадать или подобрать. Также скорость перебора зависит от криптографической функции, которая применяется для генерации хэшей пароля. Поэтому для шифрования пароля лучше использовать Bcrypt, а не MD5 или SHA.
Вот основные способы перебора пароля, которые используются злоумышленниками:
- Атака по словарю - для атаки используется файл, который содержит список слов. Программа проверяет каждое из слов, чтобы найти результат;
- Атака Bruteforce - можно не использовать словарь, а перебирать все комбинации заданных символов;
- Атака с помощью радужных таблиц - в атаке используются предварительно вычисленные хэши, поэтому она быстрее.
Есть и другие методы взлома паролей, основанные на социальной инженерии, но сегодня мы остановимся только на атаках без участия пользователя. Чтобы защититься от таких атак нужно использовать только сложные пароли. А теперь рассмотрим лучшие инструменты для взлома паролей 2017. Этот список опубликован только для ознакомительных целей и мы ни в коем случае не призываем взламывать чужие личные данные.
Лучшие программы для перебора паролей
1. John the Ripper
John the Ripper - это один из самых популярный инструментов для перебора паролей, доступных абсолютно всем. Он распространяется с открытым исходным кодом и написан на языке программирования Си. Здесь собраны различные методы перебора паролей.
Программа способна перебирать пароли по сохраненному хэшу, и поддерживает различные алгоритмы хэширования, в том числе есть автоматическое определение алгоритма. John the Ripper относиться к набору инструментов для тестирования безопасности от Rapid7. Кроме Linux поддерживается Windows и MacOS.
2. Aircrack-ng
Aircrack-ng - это набор программ для взлома и перехвата паролей от wifi сетей. Программа - одна из лучших, которые используются хакерами. Здесь есть все необходимое для взлома WEP и WPA шифрования, начиная от перехвата хэша, и до получения готового пароля.
Особенно легко поддается взлому шифрование WEP, для преодоления защиты существуют атаки PMS и PTW, с помощью которых можно взломать этот протокол в считаные минуты при достаточном потоке трафика через сеть. Поэтому всегда используйте WPA2 чтобы быть в безопасности. Тоже поддерживаются все три платформы: Linux, Windows, MacOS.
3. RainbowCrack
Как следует из названия, RainbowCrack использует радужные таблицы для взлома хэшей паролей. С помощью уже готовых таблиц утилита очень сильно уменьшает время взлома. Кроме того, есть как графический интерфейс, так и утилиты командной строки.
После завершения этапа предварительных вычислений этот инструмент работает в сотни раз быстрее чем при обычном переборе. Вам не нужно самим создавать таблицы, разработчики уже создали их для LM, NTLM, MD5 и SHA1. Все доступно бесплатно.
Еще один важный момент - это ускорение с помощью GPU. С помощью использования видеокарты вы можете снизить время вычисление пароля еще на несколько порядков. Поддерживаются платформы Windows и Linux.
4. THC Hydra
Этот инструмент помогает исследователям безопасности узнать насколько легко можно получить доступ к удаленной системе. Для расширения функций можно добавлять модули, поддерживается Linux, Windows, Solaris, FreeBSD и MacOS.
5. HashCat
По заявлениям разработчиков - это самый быстрый инструмент для перебора паролей. Он распространяется в качестве свободного программного обеспечения и поддерживает такие алгоритмы: md4, md5, LM, SHA, MySQL, Cisco PIX и Unix Crypt.
Есть версии инструмента для перебора на CPU, а также взлома на основе GPU - oclHashcat и cudaHashcat. Кроме стандартной атаки Bruteforce, поддерживаются атаки по словарю, гибридные атаки по самые, по таблицам, Prince и так далее. Из платформ поддерживаются Windows, Linux и MacOS.
6. Crowbar
Crowbar - это популярный инструмент для тестирования безопасности паролей. Другие программы перебора паролей используют логины и пароли пользователей, но crowbar позволяет перебирать ключи SSH.
Этот инструмент с открытым исходным кодом создан для работы с протоколами, которые редко поддерживаются другими программами. Сейчас поддерживается VNC, OpenVPN, SSP, NLA. Программа может работать на Linux, Windows и MacOS.
7. coWPAtty
Это реализация утилиты для перебора пароля от WPA/WPA2 PSK на основе словаря или радужных таблиц. Использование радужных таблиц очень сильно ускоряет работу утилиты. Стандарт PSK используется сейчас очень часто. Радует только то, что перебрать пароль очень сложно, если он был изначально выбран правильным.
Выводы
В этой статье мы рассмотрели лучше программы для взлома паролей 2017, которые могут использоваться как злоумышленниками, так и системными администраторами для проверки надежности паролей пользователей. Обязательно устанавливайте сложные пароли для своих устройств и аккаунтов, а также если вы системный администратор, следите за безопасностью паролей пользователей вашей компании.
Придумать одновременно красивый, сложный для взлома и легко запоминающийся пароль очень сложно. Например когда мне нужно ввести пароль для новой учетной записи, на ум приходят только элементарные или уже использованные варианты.
Но существуют так называемые генераторы паролей, способные создавать красивые и безопасные пароли по своим алгоритмам. В этой статье я опишу три, на мой взгляд, лучших генераторов паролей для операционной системы Linux.
Генераторы паролей для Linux
1. pwgen
pwgen создает безопасные пароли, которые в то же время очень легко запомнить. Легко запоминаемые пароли не будут так же безопасны как действительно случайные, но это приемлемый уровень риска для большинства случаев. Преимущество запоминающихся паролей очевидно - у вас не возникнет желание записать их или сохранить в электронном виде в небезопасном месте.
Утилита pwgen довольно популярная, поэтому есть в официальных репозиториях большинства дистрибутивов. Для установки в Ubuntu наберите:
sudo apt install pwgen
При запуске pwgen без параметров будет сгенерирован целый список паролей. Просто выберите понравившийся вариант, и очистите терминал чтобы никто не подсмотрел что вы выбрали. Для запуска наберите:
Как только выберете пароль используйте команду clear чтобы очистить вывод. Если вы уверены что никто не смотрит можно заставить программу генерировать только один пароль:
Для создания полностью случайного пароля используйте опцию -s:
Чтобы сделать пароль еще более безопасным можно использовать в нем один специальный символ, например восклицательный знак, кавычка, точка, плюс, минус, равно и т д. Для этого сеть опция -y:
Если вас не устраивает стандартная длина пароля, ее можно изменить опцией -n, генерация паролей linux длиной в десять символов:
Опция -0 - позволяет не использовать цифры, а опция -B - не использовать символы которые можно спутать при печати, например: L и 1, 0 и O.
2. makepasswd
Утилита makepasswd работает аналогично pwgen, однако она не пытается создать пароли которые легко запомнить. Все пароли генерируются случайным образом с акцентом на безопасность.
Для установки в Ubuntu откройте терминал и выполните:
sudo apt install makepasswd
Для создания одного пароля введите:
Для генерации пяти паролей, с минимальным количеством символов 10, наберите:
makepasswd --count 5 --minchars 10
Вы также можете указать символы для генерации пароля. Это может быть полезно при создании пин-кодов. Например для получения четырехзначного пин-кода используйте:
makepasswd --string 1234567890 --chars 4
3. PasswordMaker
Программа Passwordmaker немного отличается от двух предыдущих. Она позволяет сгенерировать пароль linux на основе URL. Первоначально это было расширение для популярных браузеров Internet Explorer и Firefox и т д. Пакет passwordmaker-cli устанавливает консольную версию программы:
sudo apt install passwordmaker-cli
Для генерации пароля нужно указать url и мастер пароль. Утилита на основе этих данных создает уникальный пароль. Например:
В результате мы видим очень даже безопасный но не просто запоминаемый пароль. Если вы снова запустите программу с тем же url и мастер-паролем будет сгенерирован тот же пароль. Это означает что вы можете создать пароль для определенного сайта, который нет необходимости помнить, и не нужно нигде хранить. Перед тем, как сгенерировать этот пароль утилита попросит ввести мастер-пароль, который будет использоваться для генерации, поэтому это безопасно.
Всегда держите ваши пароли в надежном месте и не используйте очевидные варианты такие как password или qwerty.
Оцените статью:
Об авторе
7 комментариев
Себе почти всегда делаю пароли в консоли. Преимущество в том, что для этого мне не нужны никакие пакеты:
echo "mypassword" | md5sum
Чем длиннее (8 символов и более) наш "mypassword", тем безысходнее становится время его вскрытия:)
Если же возникнет опасение, что некий суперхакер возьмется за очень дОООООлгий многопоточный брутфорс моей длинной сигнатуры, то можно повторно вставить (уже ее) вместо исходного "mypassword". Приблизительное время взлома уже такой сигнатуры увеличится тогда в_несколько_порядков. При этом, у нас в запасе всегда будет изначальный пред-пароль "mypassword", по которому в консоли элементарно восстановить свой окончательный пароль в случаях его потери или "забытия":)
p.s.
При попытках хака MD5-сигнатур никогда не будет никакой гарантии получения взломщиком нашего исходного пароля. Дело в том, что алгоритм вычисления сигнатур MD5 односторонний, поэтому хакер сможет получить лишь некоторые_возможные_варианты_пароля и то, затратив на взлом месяцы/годы/века/тысячелетия, как ему повезет:)
Мысль хорошая, пожалуй, возьму на вооружение, т.к. буковки проще запоминать, а пароль из них можно и на смарте сгенерить 😉 вот только изменю чутка, чтоб пароли можно было в открытом виде хранить:
echo "mypassword" | sha512sum | md5sum
или echo "mypassword" | sha512sum | head -c 33 && echo '' или .
Взломщику останется только украсть файл с открытой частью паролей и перебрать пару сотен/тысяч комбинаций за пару-тройку часов для каждого пароля 😀
Современный мир немыслим без интернет-технологий. Практически у каждого пользователя есть множество аккаунтов на различных сайтах и сервисах. Использовать один пароль для всего небезопасно. Далеко не все сайты хранят пароли в зашифрованном виде, если произойдёт утечка данных, то злоумышленники получат доступ сразу к нескольким вашим аккаунтам. Поэтому для каждого аккаунта желательно использовать свой пароль.
Мало кто может запомнить все пароли и логины. В этом случае на помощь приходят менеджеры паролей Linux. Большинство пользователей использует встроенный в браузер менеджер, но это не самый удобный вариант. К тому же браузер не всегда может распознать аутентификацию и предложить сохранение пароля. Отдельные программы будут более предпочтительным вариантом для активных пользователей интернета. Для операционной системы Linux существует немало менеджеров паролей, но хороших и современных вариантов не так много. Как раз о таких и пойдёт речь.
Менеджеры паролей для Linux
Менеджеры паролей на Linux имеют разную степень проработки, доступность кода и схему распространения. Большая их часть бесплатна или же имеет freemium версию, ограничения которой вы вряд ли заметите.
1. KeePassXC
Пожалуй, стоит начать с самого популярного менеджера паролей на Linux – KeePass, а именно его обновлённой и доработанной сообществом версии – KeePassXC. На текущий момент именно она разрабатывается наиболее активно. Если говорить о сохранности паролей, то открытый код действительно имеет значение и гарантирует отсутствие бэкдоров.
По результатам тестов было выявлено, что KeePass не подвержен основным атакам, вроде кейлоггеров и прямому взлому базы паролей.
Для установки KeePassXC можно воспользоваться командой:
sudo apt install keepassxc
2. KeeWeb
KeeWeb – это ещё одно ответвление KeePass. Оно интересно сразу по нескольким причинам. Во-первых, оно имеет современный интерфейс с несколькими темами. Во-вторых, у приложения есть онлайн версия, причём её функциональность практически полностью повторяет возможности десктопной программы. Единственным существенным ограничением является невозможность одновременной работы с базой, открыть можно, а вот сохранить изменения нельзя.
Русский язык доступен через плагины. Пока что большая часть плагинов – это локализации и темы оформления.
3. Bitwarden
Другим популярным менеджером паролей с открытым кодом является Bitwarden. Он не хранит базу локально на компьютере и для работы с программой требуется создание учётной записи. Но это не значит, что хранить в нём пароли небезопасно. Мастер-пароль, или как в данном случае пароль от аккаунта, знаете только вы, а на сервере хранится его хеш-функция. Расшифровать её обратно не представляется возможным, а следовательно, и ваша база принадлежит только вам.
Интерфейс программы заметно выигрывает у KeePass. Ещё можно отметить несколько доступных типов записей и наличие расширений для браузеров.
Bitwarden устанавливается из snap-пакета командой:
sudo snap install bitwarden
4. Encryptr
Если же вам нужен максимально простой менеджер паролей, то обратите своё внимание на Encryptr. Интерфейс имеет всего пару кнопок и строку поиска. Но даже этого достаточно для того, чтобы хранить свои пароли.
Перевода на русский язык у программы нет, но и без этого запутаться очень сложно. Существенным недостатком является система поиска. Он проводится только по значениям Item Name, поэтому к этой позиции стоит подходить со всей ответственностью.
Для установки Encryptr требуется скачать пакет для вашего дистрибутива с официального сайта.
5. Enpass
Enpass позволяет сохранить не только пароли, но и множество другой информации. По сути вы можете воспользоваться заметками, все остальное больше напоминает базу данных. Да, возможно у вас появится необходимость сохранить данные о кредите, страховке и так далее, но скорее всего из дюжины предложенных полей вы воспользуетесь всего двумя-тремя.
Как и в случае с Biwarden вам доступна не только настольная версия программы, но ещё и расширения для браузеров. Это заметно упрощает использование вашей базы для входа на сайты. База хранится локально, но её можно синхронизировать с другими устройствами через облако.
Перед установкой необходимо добавить репозиторий, поэтому потребуется ввести в консоль сразу несколько команд:
6. MYKI
Менеджер паролей MYKI появился не так давно, но это всё же плюс. Он разработан с учётом современных требований и доступных технологий. Аккаунт привязывается к номеру мобильного телефона, а доступ к базе паролей можно получить несколькими способами: в программе, в расширении браузера или же в приложении на смартфоне.
К сожалению, русского языка в приложении нет, но даже без него разобраться в программе не сложно. В наличии имеются расширения для браузеров.
Для установки MYKI следует скачать пакет с программой с официального сайта.
Браузерные расширения
Конечно, вы можете использовать встроенный в браузер менеджер паролей, но гораздо удобнее работать в отдельном расширении. Какие-то из них функционируют самостоятельно, другие требуют наличия установленного на компьютере менеджера. Например, популярный в Windows SafeInCloud тоже имеет расширения для браузера, но работает только совместно с установленным менеджером, которого на Linux нет. Но вы можете установить расширения к вышеперечисленным программам: Bitwarden, Enpass, MYKI. Также стоит присмотреться к самостоятельным расширениям, вроде Lastpass на скриншоте выше.
Выводы
В этой статье мы собрали лучшие менеджеры паролей для Linux. Выбрать менеджер паролей не так сложно. Их не так много, но каждый их них может предложить что-то своё. Хотите получить надёжное локальное хранилище паролей, то KeePassXC или KeeWeb подойдут как нельзя лучше. Нужно кроссплатформенное решение, то MYKI или Bitwarden будут работать на каждом вашем устройстве. И даже для работы в терминале существует менеджер паролей Pass, но работать с базой данных в консоли не так удобно.
Хватает ли вам встроенного в браузер менеджера паролей? Если нет, то какую программу вы выбрали для себя? Расскажите об этом в комментариях.
На данный момент хэш можно вскрыть пятью способами: грубый перебор (брутфорс), подбор по словарю, по словарю с правилами (гибридная атака), rainbow таблицы (радужные таблицы) и криптоатака. Сами хэши можно разделить на обычные хэши, и хэши с солью (salt, «затравка»). Эта статья посвящена программам john и mdcrack. На их примере, также рассмотрим основные методы для реализации брутфорса.
john
John the Ripper password cracker предназначен для вскрытия различных типов хэшей, которые применяются во множестве ПО и ОС, от MySQL до OpenBSD. В программе реализованы возможности: брутфорс пароля, подбор пароля по словарю и гибридная атака. А также signle и external способы подбора пароля, специфичные для этой программы. О всех способах будет рассказано ниже.
Одной из особенностей программы является тот факт, что при вскрытии большого количества паролей «за раз», велика возможность того, что они вскроются быстрее, чем бы вскрылись по отдельности. А также инкремент пароля производится «интеллектуально», о чём будет сказано ниже.
Salt (соль, «затравка») — это метод усложнения вычисления хэша. К примеру, во FreeBSD, при вычислении хэша от пароля, сначала генерируются два случайных символа, которые конкатенируются к паролю, от полученной строки вычисляется хэш, и к полученному хэшу прибавляются эти два символа, давая результирующий хэш.
Для тестирования скорости программы на вашем компьютере, запустите её с флагом '--test'. Результат будет выдан в c/s, т.е. в символах в секунду, а не в h/s (хэш в секунду), как это принято в других программах этого типа. Но каждый следующий символ образует новый пароль. А значит, перебирая, к примеру, 3500 символов в секунду, мы генерируем 3500 новых паролей в секунду. Следовательно, цифры, которые даёт команда john --test — это и есть хэши в секунду.
Для начала работы программы, запишите вскрываемый хэш в файл: user:hash, где user — это любая строка, и hash — вскрываемый вами хэш. Если вам требуется вскрыть сразу несколько хэшей, то нужно записать их всех в один файл. Как сказано выше, велика вероятность того, что так все хэши вскроются быстрее, чем если бы они были записаны в разные файлы по отдельности. Например, создадим файл bla.pass такого содержания:
user1:$1$yHJlM1Y9$lzO5yVj6Drepbz6xje0wq0
user2:$1$RDBUtZMr$z8acZKa5XzY0vQuUwG6Un1
user3:$1$EP5lm7ex$poOrQvYoH78Bc63nhXx1p1
user4:$1$ths1/RY5$CUR32fPoOr/UcjeBpD4fx0
Что бы начать перебор, дайте команду john bla.pass. Программа скажет о количестве загруженных хэшей, о количестве различных salt-ов (в старых unix-системах salt был фиксированным, т.е. одинаковым у всех паролей) и о типе хэшей. Тип хэша может определится не верно. Так, если попытаться вскрыть обычный md5_128bit (без salt), то рассматриваемая в этой статье версия john-а определит этот хэш как NT LM DES, и начнёт подбор пароля, заведомо безрезультатно.
После начала перебора, может пройти вечность до того, как пароль вскроется. Что бы попытаться вскрыть пароль в разумные сроки, у john-а есть целый арсенал различных типов подбора (режимов работы), правил, фильтров и гибкий файл конфигурации. Далее будут коротко рассмотрены режимы работы john-а. Дополнительную информацию читайте в документации к программе.
Итого, john имеет 4 режима работы, т.е. 4 способа вскрытия пароля: single crack, wordlist, incremental и external.
Single crack mode — поиск пароля по косвенным уликам. Первыми кандидатами в пароли становятся имя пользователя, «GECOS», «Full Name» — поля его учётной записи и название домашней директории пользователя. А также используются правила (гибридная атака) для полученных данных, и возможных паролей становиться больше. Но не так много как в прилагаемом к программе словаре. Поэтому это самый быстрый способ. Он завершает свою работу (перебирает все возможные этим способы варианты паролей) за несколько секунд.
В GECOS-поле пользователь может записать дополнительные данные о себе, такие как номер телефона, дату рождения и т.п.
Wordlist — подбор пароля по словарю. Основной словарь весит более чем 600 Mb, распространяется на двух дисках. В нём собраны наиболее употребляемые пароли более чем на 20 языках. Стоит этот сборник паролей 28.25$. Также доступен малый сборник паролей размером 11 Mb. Эффективность этого сборника сомнительна, поскольку он также содержит пароли на более чем 20 языках. У режима wordlist есть «подрежим»: wordlist с правилами (rulets). Это гибридный вид подбора пароля. Набор применяемых правил можно изменять и дополнять своими. Правила описаны в файле конфигурации спецсимволами и специальными флагами, которые читает и обрабатывает john-овский препроцессор правил.
Incremental — грубый перебор, т.е. брутфорс. Настройки перебора хранятся в файле конфигурации. При переборе, программа равномерно распределяет частоту инкремента по длине пароля и набору символов (That's one reason why this mode deals with trigraph frequencies, separately for each character position and for each password length, to crack as many passwords as possible within a limited time). Есть пять подрежимов инкрементного режима: «All», «Alnum», «Alpha», «Digits» и «LanMan». К примеру «Digits» будет перебирать лишь цифры, «Alpha» — лишь строчные латинские буквы. Также есть возможность создания своего подрежима инкрементного режима. Подробнее — в документации.
External — этот режим даёт возможность применять «фильтры», описанные в файле конфигурации на языке Си с использованием четырёх callback-функций. С помощью этого можно написать свой алгоритм перебора. Но несколько основных уже написаны в файле конфигурации, и ими можно пользоваться.
Все режимы можно совмещать. По дефолту (если не указывать режим и ничего не менять в конфигах) программа сначала отработает single-режим, затем попытается подобрать пароль по словарю, прилагаемому к программе (всего лишь 3108 паролей), затем начнёт перебор паролей (перейдёт в инкрементный режим) длиной от 0 до 8 с азбукой в 96 символов (латинские строчные, латинские заглавные, цифры и символы).
Практический совет: пробуйте сначала те режимы и подрежимы, которые заканчивают свою работу (в случае неудачи) быстрее всех. После завершения работы в режимах single, wordlist и wordlist with rulets, вы, вероятно, начнёте брутфорсить пароль в подрежиме «All». Это может оказаться вашей большой ошибкой, которая отнимет у вас слишком много времени. Вместо этого, сначала попробуйте более быстрые подрежимы в порядке возрастания количества символов: «Digits» (10 цифр), «Alpha» (26 латинских строчных букв), «Alnum» (36 символов — буквы + цифры) и т.п. Поскольку пользователи часто используют простые пароли, сперва следует попробовать более быстрые подрежимы инкрементного перебора. Это может значительно сэкономить вам время.
mdcrack
Программа нацелена на достижение максимальной скорости перебора пароля. Версия программы 1.2 имеет открытый исходный код, но поддерживает всего лишь три вида хэшей: MD4, MD5 и NTLM1. Программа версии 1.5 и 1.7 поддерживает большее число хэшей, в том числе и md5_freebsd, но исходный код в открытом виде не предоставляется. Программу mdcrack удобно использовать для брутфорса, когда стандартная сборка программы john вам не подошла, т.е. когда вам необходимо вскрыть хэш без соли (без salt).
Пример вызова программы mdcrack:
После этой команды создастся «сессия», и если вы прервёте перебор, дайте команду mdcrack (без параметров) для возврата к прерванной сессии. Для удаления сессии, дайте команду mdcrack -d.
По завершению или после прерывания работы программы, она выдаёт информацию о производительности компьютера (среднее количество хэшей в секунду).
Флаг -W используется для создания файла предварительно рассчитанных пар pass:hash. Для чтения такого файла используется флаг -R. Для более быстрой работы чтения/записи используется флаг -F.
Флаги -b и -e используются для указания challegne-значения. В некоторых протоколах передачи данных, передаваемый хэш пароля шифруется (вычисляется хэш от передаваемого хэша). Пароль, на который он шифруется в данном контексте называется challegne.
Стоит отметить, что программа mdcrack ищет в хэше коллизии. Дело в том, что одному хэшу может соответствовать несколько паролей (но вероятность этого очень мала), причём разной длины. Если пользователь задал пароль из 9 символов, при подборе такого пароля может выясниться, что другой, более короткий пароль, к примеру из двух символом, имеет точно такой же хэш. И если его ввести атакуемой системе — он будет воспринят как правильный.
Читайте также: