На чтение 2 мин Опубликовано 12.08.2017
Приложение John the Ripper или Джон Потрашитель мы уже рассматривали в статье, в составе Kali Linux.
1. Извлечем хэш из Windows
Диспетчер учетных записей (SAM) – файл базы данных в Windows 10/8/7/XP, который хранит пользовательские пароли в зашифрованном виде, который в свою очередб расположен в следующем каталоге:
C:Windowssystem32config
Первая вещь, которую мы должны сделать – заполучить хэши пароля от файла SAM.
Просто загрузите бесплатное программное обеспечение PwDump7 и разархивируйте его на вашем локальном PC.
Откройте командную строку.
Переместитесь в папку, где вы извлекли приложение PwDump7, и затем вводите следующую команду:
# PwDump7.exe > d:hash.txt
Как только вы нажмете [ Enter ] PwDump7 получит хэши паролей системы и сохранит их в файл d:hash.txt.
2. Взлом пароля с John the Ripper
Поскольку вы видите, что хэши пароля все еще нечитабельны – мы должны взломать их используя John the Ripper.
John the Ripper – один из самых популярных инструментов взламывания пароля, который может работать на Windows, Linux и Mac OS x.
Просто загрузите бинарники для Windows John the Ripper и распакуйте содержимое.
Откройте командную строку и смените каталог, куда распаковали John the Ripper и затем выполните:
# john --format=LM d:hash.txt
Теперь мы можем увидеть связки пароль + логин для пользователей Windows.
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
John the Ripper — это программа для взлома паролей, которая умеет подбирать пароли к множеству типу файлов: архивы, офисные документы, умеет взламывать хеши сетевых протоколов и многое другое.
John the Ripper — это утилита командной строки, поэтому её использование требует навыков работы в командной строке, а также знание опций John the Ripper.
Johnny — это графический интерфейс для John the Ripper, который облегчает использование популярного взломщика паролей.
Программа John the Ripper является портативной, для её установки достаточно распаковать скаченный архив с этой программой. Johnny также является портативной программой, распространяемой в файле установщике. Для работы Johnny требуется John the Ripper, то есть нужно установить обе программы.
Установка этих программ простая, но при этом для брут-форса пароля John сможет использовать только центральный процессор, но не сможет использовать видеокарту. Взлом пароля на видеокарте в разы быстрее, чем на центральном процессоре, поэтому хотелось бы добавить поддержку графической карты, тем более, что это в принципе возможно.
Данная инструкция покажет, как установить John the Ripper и Johnny в Windows чтобы можно было взламывать пароли на видео карте.
Сначала установите Cygwin — простой зайдите на официальный сайт https://www.cygwin.com/, скачайте файл setup-x86_64.exe и установите. Если что-то непонятно про Cygwin, то все подробности смотрите в статье «Как начать знакомство с командами Linux: Cygwin».
Со страницы https://github.com/openwall/john-packages/releases/tag/jumbo-dev скачайте файл winX64_1_JtR.7z.
Распакуйте содержимое этого архива в папку C:cygwin64homeИМЯ-ПОЛЬЗОВАТЕЛЯ, например, у меня пользователь MiAl, поэтому я распаковываю в папку C:cygwin64homeMiAl. Обратите внимание, что создавать папку и копировать в неё файлы нужно от имени обычного пользователя, поскольку во время своей работы John the Ripper будет пытаться записать данные в .pot файл в той же папке, где запущена программа. Если вы скопировали папку JtR в файловом менеджере с повышенными правами, то эта папка будет принадлежать Администратору и записать в неё что-либо или поменять права на неё невозможно.
Теперь в папке C:cygwin64homeИМЯ-ПОЛЬЗОВАТЕЛЯJtRrun найдите cygOpenCL-1.dll и переименуйте его в cygOpenCL-1.dll.bac.
Затем в папке c:WindowsSystem32 найдите файл OpenCL.dll и скопируйте его в папку C:cygwin64homeИМЯ-ПОЛЬЗОВАТЕЛЯJtRrun.
Затем в папке C:cygwin64homeИМЯ-ПОЛЬЗОВАТЕЛЯJtRrun переименуйте файл OpenCL.dll в cygOpenCL-1.dll.
Далее эту же самую процедуру нужно повторить для файла в папке C:cygwin64bin. То есть в папке C:cygwin64bin найдите cygOpenCL-1.dll и переименуйте его в cygOpenCL-1.dll.bac. Затем в папке c:WindowsSystem32 вновь найдите файл OpenCL.dll и скопируйте его в папку C:cygwin64bin. Наконец в папке C:cygwin64bin переименуйте файл OpenCL.dll в cygOpenCL-1.dll.
Чтобы вы понимали, для чего мы всё это делаем, посмотрите на скорость взлома на центральном процессоре:
И на скорость взлома на видеокарте, которая стала доступна благодаря показанным выше действиям с подменой файлов:
Откройте консоль Cygwin для выполнения команд.
Запустите тест установки::
~/JtR/run/john --test=0
Запустите бенчмарк вашей системы:
~/JtR/run/john --test
Установка Johnny в Windows с поддержкой видеокарты (OpenCL)
Откройте Cygwin – мы будем компилировать Johnny из исходного кода.
Установите apt-cyg:
curl https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg install apt-cyg /bin
Смотрите также: apt-cyg — apt для Cygwin
Установите зависимости:
apt-cyg install gcc-g++ git libQt5Core-devel make libQt5Gui-devel libGL-devel xorg-server xinit
Скачайте исходный код и скомпилируйте программу:
git clone https://github.com/shinnok/johnny && cd johnny export QT_SELECT=qt5 qmake-qt5 && make -j$(nproc)
По умолчанию X сервер не запущен в Cygwin, запустите Cygwin/X:
startxwin &
Нажмите Enter, чтобы увидеть приглашение командной строки.
Установим значение переменной DISPLAY:
export DISPLAY=:0.0
Теперь вы можете запустить Johnny:
./johnny
Запустите Johnny, перейдите во вкладку Settings и укажите файл до исполнимого файла john.exe, например /home/MiAl/john/run/john.exe.
Скриншот сделан в Windows после успешного взлома пароля на видеокарте с помощью Johnny.
Инструкции по использованию ищите на страницах-карточках данных программ:
- John the Ripper
- Johnny
Связанные статьи:
- Как сбросить забытый пароль Linux в WSL (58.5%)
- KeePass (57%)
- KeePassXC (57%)
- Как перенести пароли LastPass в Bitwarden (57%)
- Как защитить архив паролем (55.8%)
- Как в Linux на WSL открыть файл Windows (RANDOM — 52.7%)
John the Ripper is password cracking software used by penetration testers and cyber security experts. It is completely free. In starting it was only made for Unix operating system but now it can be used on several other platforms also like windows, mac, etc. It was first released in 1996 by OpenWall. Its latest version is 1.9.0 which was released in 2019. It has the ability to crack passwords and also it automatically detects the hash type if passwords are saved in a hash rather than plain text, it combines a number of strategies to crack passwords. It is mainly used to perform dictionary attacks and brute force attacks on any system or application.
Installing John the Ripper on Windows:
Follow the below steps to install John the Ripper on Windows:
Step 1: Visit the official website of John the ripper using any web browser.
Step 2: There are two options available for windows one is 1.9.0-jumbo-1 64-bit Windows and the other is 1.9.0-jumbo-1 32-bit Windows. Click on the one as per your system configuration. Let’s take the one for the 64-bit operating system. Downloading of the executable file will start shortly. It is a small 21.1 MB file that will hardly take a minute.
Step 3: Now check for the zip file in downloads in your system and extract it.
Step 4: After extraction, a new folder will be seen on the desktop, open it.
Step 5: Below folders are inside the extracted folder.
Step 6: Cut/Copy these folders and go to C drive, make a new folder named JohnTheRipper and paste these folders into this new folder named John the Ripper.
Step 7: Now go inside the run folder.
Step 8: Type cmd on as shown in the below image and press enter.
Step 9: The command prompt will open with the current folder.
Step 10: Type dir for listing all files and folders.
Step 11: Now look for john.exe.
Step 12: Type john and press enter, it will show the version of john the ripper so it is working correctly.
Congratulations!! At this point, you have successfully installed John the Ripper on your windows system.
John the Ripper is password cracking software used by penetration testers and cyber security experts. It is completely free. In starting it was only made for Unix operating system but now it can be used on several other platforms also like windows, mac, etc. It was first released in 1996 by OpenWall. Its latest version is 1.9.0 which was released in 2019. It has the ability to crack passwords and also it automatically detects the hash type if passwords are saved in a hash rather than plain text, it combines a number of strategies to crack passwords. It is mainly used to perform dictionary attacks and brute force attacks on any system or application.
Installing John the Ripper on Windows:
Follow the below steps to install John the Ripper on Windows:
Step 1: Visit the official website of John the ripper using any web browser.
Step 2: There are two options available for windows one is 1.9.0-jumbo-1 64-bit Windows and the other is 1.9.0-jumbo-1 32-bit Windows. Click on the one as per your system configuration. Let’s take the one for the 64-bit operating system. Downloading of the executable file will start shortly. It is a small 21.1 MB file that will hardly take a minute.
Step 3: Now check for the zip file in downloads in your system and extract it.
Step 4: After extraction, a new folder will be seen on the desktop, open it.
Step 5: Below folders are inside the extracted folder.
Step 6: Cut/Copy these folders and go to C drive, make a new folder named JohnTheRipper and paste these folders into this new folder named John the Ripper.
Step 7: Now go inside the run folder.
Step 8: Type cmd on as shown in the below image and press enter.
Step 9: The command prompt will open with the current folder.
Step 10: Type dir for listing all files and folders.
Step 11: Now look for john.exe.
Step 12: Type john and press enter, it will show the version of john the ripper so it is working correctly.
Congratulations!! At this point, you have successfully installed John the Ripper on your windows system.
Время прочтения
6 мин
Просмотры 30K
На данный момент хэш можно вскрыть пятью способами: грубый перебор (брутфорс), подбор по словарю, по словарю с правилами (гибридная атака), rainbow таблицы (радужные таблицы) и криптоатака. Сами хэши можно разделить на обычные хэши, и хэши с солью (salt, «затравка»). Эта статья посвящена программам john и mdcrack. На их примере, также рассмотрим основные методы для реализации брутфорса.
john
John the Ripper password cracker предназначен для вскрытия различных типов хэшей, которые применяются во множестве ПО и ОС, от MySQL до OpenBSD. В программе реализованы возможности: брутфорс пароля, подбор пароля по словарю и гибридная атака. А также signle и external способы подбора пароля, специфичные для этой программы. О всех способах будет рассказано ниже.
В программе имеется возможность восстанавливать процесс подбора после его прерывания.
Одной из особенностей программы является тот факт, что при вскрытии большого количества паролей «за раз», велика возможность того, что они вскроются быстрее, чем бы вскрылись по отдельности. А также инкремент пароля производится «интеллектуально», о чём будет сказано ниже.
В программе имеются два ограничения: john может вскрывать хэши только с солью — для вскрытия обычных хэшей вам потребуется соответствующий патч или готовая спец. сборка программы; можно брутфорсить пароль длиной не более 8-ми символов (но при атаке по словарю такого лимита нет).
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-овский препроцессор правил.
Вы можете скачать некоторые очень полезные словари с сайта passwords.ru
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 -s qwertyuiopasdfghjklzxcvbnm -S 7 c8e5b031cee3fe69955e63f8c5e11509.
После этой команды создастся «сессия», и если вы прервёте перебор, дайте команду mdcrack (без параметров) для возврата к прерванной сессии. Для удаления сессии, дайте команду mdcrack -d.
По завершению или после прерывания работы программы, она выдаёт информацию о производительности компьютера (среднее количество хэшей в секунду).
Флаг -W используется для создания файла предварительно рассчитанных пар pass:hash. Для чтения такого файла используется флаг -R. Для более быстрой работы чтения/записи используется флаг -F.
Флаги -b и -e используются для указания challegne-значения. В некоторых протоколах передачи данных, передаваемый хэш пароля шифруется (вычисляется хэш от передаваемого хэша). Пароль, на который он шифруется в данном контексте называется challegne.
Стоит отметить, что программа mdcrack ищет в хэше коллизии. Дело в том, что одному хэшу может соответствовать несколько паролей (но вероятность этого очень мала), причём разной длины. Если пользователь задал пароль из 9 символов, при подборе такого пароля может выясниться, что другой, более короткий пароль, к примеру из двух символом, имеет точно такой же хэш. И если его ввести атакуемой системе — он будет воспринят как правильный.
Тематические ссылки
- Статья «Заметки: какой брутер выбрать?»: forum.antichat.ru/showthread.php?t=37651
- Словари для вскрытия хэша, и не только: www.passwords.ru
John The Ripper
, John
for the friends.
Table of Contents
- Introduction
- Installation
- Linux
- Windows
- Word lists
- Basic usage
- Identifying the type of hash
- Cracking Passwords
- Cracking basic hashes
- Cracking Windows Authentication Hashes
- Cracking /etc/shadow Hashes
- Single Crack Mode
- Custom Rules
- Common Custom Rules
- How to create Custom Rules
- Using Custom Rules
- Cracking a Password Protected Zip File
- Cracking Password Protected RAR Archives
- Cracking SSH Keys
- SSH2john
- Cracking id_rsa
- Cracking GPG
- Further Reading
- Resources
Introduction
john
is a password cracker tool that make use of a wordlist or …
This document is based on following the THM room: https://tryhackme.com/room/johntheripper0
Installation
The installation of this software is pretty easy.
Linux
Probably your GNU/Linux
distribution has packaged this for you. Search for john
and install the required package. For example:
# Only search for packages starting with the name of john
apt-cache search ^john
# install the package
sudo apt-get install john
Johnny
The graphical interface for john. See the johnny packages for this. Personally, I don’t like the interface so much and prefer the command line version. The GUI confuse me a lot.
Windows
For Windows, you can download John The Ripper here: https://www.openwall.com/john/k/john-1.9.0-jumbo-1-win64.zip
Word lists
John can make use of wordlist to make a dictionary attack.
Wordlists, like the name say it, is a list of words. Could be names, passwords, filenames and whatever. This goes beyond the scope of this documents and a dedicated documents has been made for this. See the dedicated document: wordlists
Basic usage
John has a build in hash identifier, but isn’t great at this job. So you can try this one:
john --wordlist=/usr/share/wordlists/rockyou.txt somehash.txt
Identifying the type of hash
Before you can start cracking, you need to know what you want to crack. You need to get to know what kind of «protection» is used.
See the dedicated document on how to identify the type of hash.
Cracking Passwords
john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash1.txt
Cracking basic hashes
echo "482c811da5d5b4bc6d497ffa98491e38" > hashfile.txt
hashid -j hashfile.txt
john --format=<format> --wordlist=/usr/share/wordlists/rockyou.txt hashfile.txt
For example:
john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hashfile.txt
Mind the file ~/.john/john.pot
which contains previously cracked passwords. John
does not show already created hashes/passwords. So bad and so strange. For this you need to use the show command and specify the hash or password file like following:
Cracking Windows Authentication Hashes
You can acquire NTHash/NTLM hashes by dumping the SAM database on a Windows machine, by using a tool like Mimikatz or from the Active Directory database: NTDS.dit. You may not have to crack the hash to continue privilege escalation- as you can often conduct a «pass the hash» attack instead, but sometimes hash cracking is a viable option if there is a weak password policy.
echo 5460C85BD858A11475115D2DD3A82333 > ntlm.txt
hashid -j ntlm.txt
john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt ntlm.txt
Cracking /etc/shadow Hashes
Unshadowing
John can be very particular about the formats it needs data in to be able to work with it, for this reason- in order to crack /etc/shadow passwords, you must combine it with the /etc/passwd file in order for John to understand the data it’s being given. To do this, we use a tool built into the John suite of tools called unshadow. The basic syntax of unshadow is as follows:
unshadow [path to passwd] [path to shadow]
Let’s break that down:
unshadow
— Invokes the unshadow tool[path to passwd]
— The file that contains the copy of the /etc/passwd file you’ve taken from the target machine[path to shadow]
— The file that contains the copy of the /etc/shadow file you’ve taken from the target machine
Example Usage:
unshadow local_passwd local_shadow > unshadowed.txt
Note on the files
When using unshadow
, you can either use the entire /etc/passwd
and /etc/shadow
file- if you have them available, or you can use the relevant line from each, for example:
FILE 1 — local_passwd
Contains the /etc/passwd
line for the root user:
root:x:0:0::/root:/bin/bash
FILE 2 — local_shadow
Contains the /etc/shadow
line for the root user:
root:$6$2nwjN454g.dv4HN/$m9Z/r2xVfweYVkrr.v5Ft8Ws3/YYksfNwq96UL1FX0OJjY1L6l.DS3KEVsZ9rOVLB/ldTeEL/OIhJZ4GMFMGA0:18576::::::
Cracking
We’re then able to feed the output from unshadow
, in our example use case called unshadowed.txt
directly into John. We should not need to specify a mode here as we have made the input specifically for John, however in some cases you will need to specify the format as we have done previously using: —format=sha512crypt
john --wordlist=/usr/share/wordlists/rockyou.txt --format=sha512crypt unshadowed.txt
echo > etchashes.txt
john --format=sha512crypt --wordlist=/usr/share/wordlists/rockyou.txt etchashes.txt
Single Crack Mode
So far we’ve been using John’s wordlist mode to deal with brute forcing simple., and not so simple hashes. But John also has another mode, called Single Crack mode. In this mode, John uses only the information provided in the username, to try and work out possible passwords heuristically, by slightly changing the letters and numbers contained within the username.
Word Mangling
The best way to show what Single Crack mode is, and what word mangling is, is to actually go through an example:
If we take the username: Markus
Some possible passwords could be:
- Markus1, Markus2, Markus3 (etc.)
- MArkus, MARkus, MARKus (etc.)
- Markus!, Markus$, Markus* (etc.)
This technique is called word mangling. John is building it’s own dictionary based on the information that it has been fed and uses a set of rules called «mangling rules» which define how it can mutate the word it started with to generate a wordlist based off of relevant factors for the target you’re trying to crack. This is exploiting how poor passwords can be based off of information about the username, or the service they’re logging into.
GECOS
John’s implementation of word mangling also features compatibility with the Gecos fields of the UNIX operating system, and other UNIX-like operating systems such as Linux. So what are Gecos? Remember in the last task where we were looking at the entries of both /etc/shadow and /etc/passwd? Well if you look closely You can see that each field is seperated by a colon «:». Each one of the fields that these records are split into are called Gecos fields. John can take information stored in those records, such as full name and home directory name to add in to the wordlist it generates when cracking /etc/shadow hashes with single crack mode.
Using Single Crack Mode
To use single crack mode, we use roughly the same syntax that we’ve used to so far, for example if we wanted to crack the password of the user named «Mike», using single mode, we’d use:
john --single --format=[format] [path to file]
--single
— This flag lets john know you want to use the single hash cracking mode.
Example Usage:
john --single --format=raw-sha256 hashes.txt
A Note on File Formats in Single Crack Mode:
If you’re cracking hashes in single crack mode, you need to change the file format that you’re feeding john for it to understand what data to create a wordlist from. You do this by prepending the hash with the username that the hash belongs to, so according to the above example- we would change the file hashes.txt
From:
1efee03cdcb96d90ad48ccc7b8666033
To
mike:1efee03cdcb96d90ad48ccc7b8666033
Hash type: raw-md5
echo 7bf6d9bb82bed1302f331fc6b816aada > joker_pass1.txt
echo joker:7bf6d9bb82bed1302f331fc6b816aada > joker_pass2.txt
john --single --format=raw-md5 joker_pass.txt
passwd: Jok3r
Custom Rules
What are Custom Rules?
As we journeyed through our exploration of what John can do in Single Crack Mode- you may have some ideas about what some good mangling patterns would be, or what patterns your passwords often use- that could be replicated with a certain mangling pattern. The good news is you can define your own sets of rules, which John will use to dynamically create passwords. This is especially useful when you know more information about the password structure of whatever your target is.
Common Custom Rules
Many organisations will require a certain level of password complexity to try and combat dictionary attacks, meaning that if you create an account somewhere, go to create a password and enter:
You may receive a prompt telling you that passwords have to contain at least one of the following:
- Capital letter
- Number
- Symbol
This is good! However, we can exploit the fact that most users will be predictable in the location of these symbols. For the above criteria, many users will use something like the following:
A password with the capital letter first, and a number followed by a symbol at the end. This pattern of the familiar password, appended and prepended by modifiers (such as the capital letter or symbols) is a memorable pattern that people will use, and reuse when they create passwords. This pattern can let us exploit password complexity predictability.
Now this does meet the password complexity requirements, however as an attacker we can exploit the fact we know the likely position of these added elements to create dynamic passwords from our wordlists.
How to create Custom Rules
Custom rules are defined in the john.conf file
, usually located in /etc/john/john
.conf if you have installed John using a package manager or built from source with make
and in /opt/john/john.conf
on the TryHackMe Attackbox.
Let’s go over the syntax of these custom rules, using the example above as our target pattern. Note that there is a massive level of granular control that you can define in these rules, I would suggest taking a look at the wiki here in order to get a full view of the types of modifier you can use, as well as more examples of rule implementation.
The first line:
[List.Rules:THMRules]
— Is used to define the name of your rule, this is what you will use to call your custom rule as a John argument.
We then use a regex style pattern match to define where in the word will be modified, again- we will only cover the basic and most common modifiers here:
Az
— Takes the word and appends it with the characters you defineA0
— Takes the word and prepends it with the characters you definec
— Capitalises the character positionally
These can be used in combination to define where and what in the word you want to modify.
Lastly, we then need to define what characters should be appended, prepended or otherwise included, we do this by adding character sets in square brackets [ ]
in the order they should be used. These directly follow the modifier patterns inside of double quotes " "
. Here are some common examples:
[0-9]
— Will include numbers 0-9[0]
— Will include only the number 0[A-z]
— Will include both upper and lowercase[A-Z]
— Will include only uppercase letters[a-z]
— Will include only lowercase letters[a]
— Will include only a[!£$%@]
— Will include the symbols !£$%@
Putting this all together, in order to generate a wordlist from the rules that would match the example password «Polopassword1!» (assuming the word polopassword was in our wordlist) we would create a rule entry that looks like this:
[List.Rules:PoloPassword]
cAz"[0-9] [!£$%@]"
In order to:
- Capitalise the first letter —
c
- Append to the end of the word —
Az
- A number in the range 0-9 —
[0-9]
- Followed by a symbol that is one of
[!£$%@]
Using Custom Rules
We could then call this custom rule as a John argument using the —rule=PoloPassword flag.
As a full command: john --wordlist=[path to wordlist]
--rule=PoloPassword [path to file]
As a note I find it helpful to talk out the patterns if you’re writing a rule- as shown above, the same applies to writing RegEx patterns too.
Jumbo John already comes with a large list of custom rules, which contain modifiers for use almost all cases. If you get stuck, try looking at those rules [around line 678] if your syntax isn’t working properly.
Now, time for you to have a go!
Cracking a Password Protected Zip File
Yes! You read that right. We can use John to crack the password on password protected Zip files. Again, we’re going to be using a separate part of the john suite of tools to convert the zip file into a format that John will understand, but for all intents and purposes, we’re going to be using the syntax that you’re already pretty familiar with by now.
Zip2John
Similarly to the unshadow
tool that we used previously, we’re going to be using the zip2john
tool to convert the zip file into a hash format that John is able to understand, and hopefully crack. The basic usage is like this:
zip2john [options] [zip file] > [output file]
[options]
— Allows you to pass specific checksum options to zip2john, this shouldn’t often be necessary[zip file]
— The path to the zip file you wish to get the hash of>
— This is the output director, we’re using this to send the output from this file to the…[output file]
— This is the file that will store the output from
Example Usage
zip2john zipfile.zip > zip_hash.txt
Cracking
We’re then able to take the file we output from zip2john in our example use case called «zip_hash.txt» and, as we did with unshadow, feed it directly into John as we have made the input specifically for it.
john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt
Cracking Password Protected RAR Archives
We can use a similar process to the one we used in the last task to obtain the password for rar archives. If you aren’t familiar, rar archives are compressed files created by the Winrar archive manager. Just like zip files they compress a wide variety of folders and files.
Rar2John
Almost identical to the zip2john
tool that we just used, we’re going to use the rar2john
tool to convert the rar file into a hash format that John is able to understand. The basic syntax is as follows:
rar2john [rar file] > [output file]
rar2john
— Invokes the rar2john tool[rar file]
— The path to the rar file you wish to get the hash of>
— This is the output director, we’re using this to send the output from this file to the…[output file]
— This is the file that will store the output from
Example Usage
rar2john rarfile.rar > rar_hash.txt
Cracking
Once again, we’re then able to take the file we output from rar2john in our example use case called «rar_hash.txt» and, as we did with zip2john we can feed it directly into John..
john --wordlist=/usr/share/wordlists/rockyou.txt rar_hash.txt
Cracking SSH Keys
Okay, okay I hear you, no more file archives! Fine! Let’s explore one more use of John that comes up semi-frequently in CTF challenges. Using John to crack the SSH private key password of id_rsa
files. Unless configured otherwise, you authenticate your SSH login using a password. However, you can configure key-based authentication, which lets you use your private key, id_rsa, as an authentication key to login to a remote machine over SSH. However, doing so will often require a password- here we will be using John to crack this password to allow authentication over SSH using the key.
SSH2John
Who could have guessed it, another conversion tool? Well, that’s what working with John is all about. As the name suggests ssh2john
converts the id_rsa
private key that you use to login to the SSH session into hash format that john
can work with. Jokes aside, it’s another beautiful example of John’s versatility. The syntax is about what you’d expect. Note that if you don’t have ssh2john
installed, you can use ssh2john.py
, which is located in the /opt/john/ssh2john.py
. If you’re doing this, replace the ssh2john command with python3 /opt/ssh2john.py
or on Kali, python /usr/share/john/ssh2john.py
.
ssh2john [id_rsa private key file] > [output file]
ssh2john
— Invokes the ssh2john tool[id_rsa private key file]
— The path to the id_rsa file you wish to get the hash of>
— This is the output director, we’re using this to send the output from this file to the…[output file]
— This is the file that will store the output from
Cracking id_rsa
Example Usage
ssh2john id_rsa > id_rsa_hash.txt
Example Usage on Kali
python /usr/share/john/ssh2john.py id_rsa > id_rsa_hash.txt
Cracking
For the final time, we’re feeding the file we output from ssh2john, which in our example use case is called «id_rsa_hash.txt» and, as we did with rar2john we can use this seamlessly with John:
john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt
Cracking GPG
gpg2john
…
Further Reading
Thank you for completing this room on John the Ripper! I hope you’ve learnt a lot along the way. I’m sure by now you understand the basic principles and the pattern that there is to using John with even the most obscure supported hashes. I’d recommend checking out the Openwall Wiki here for more information about using John, and advice, updates or news about the tool.
Resources
- https://www.openwall.com/john/doc/EXAMPLES.shtml
John The Ripper — полное руководство
Я уже не раз в своих статьях, посвященных безопасности сетей, говорил о том, что администратору необходимо выявлять наличие нестойких паролей в своей системе. Именно из-за того, что пользователи выбирают слабые пароли, и производится много незаконных вторжений в, кажется, сильно защищенную систему. В данной статье речь пойдет о программе John The Ripper, позволяющей расшифровывать пароли пользователей в системах Unix. Я не хочу утверждать, что эта статья целиком посвящена администраторам. Наоборот, я адресую эту статью в первую очередь обычным пользователям. Именно их часто одолевает лень разобраться в какой-либо программе полностью. Порой они даже не догадываются о том, сколько полезных функций заложено программистами. Используя все настройки, принятые по умолчанию, они запускают программу без каких-либо аргументов, пытаясь добиться от нее максимального результата в кратчайшие сроки. В сложных программах такого практически не бывает, поэтому зачастую программа «забрасывается» до лучших времен либо используется не на полную катушку. В администрировании такая халатность может привести к серьезным последствиям. Поэтому я и решил сделать подробное руководство по программе John The Ripper, как одной из лучших расшифровщиков паролей для Unix систем.
Для того чтобы использовать программу John The Ripper, вам понадобится копия файла с паролями. Очень часто у пользователей, заглянувших впервые в файл etc/passwd либо же etc/shadow, появляется слишком много вопросов. Сейчас я постараюсь кратко объяснить, как же устроен файл etc/passwd . В этом файле находится список всех пользователей. Для каждого пользователя отведена отдельная строка, которая описывает его учетную информацию. Рассмотрим на примере формат одной из таких строк:
root:qVbsxDKZ7lKxA:0:0:root:/root:/bin/bash .
В этой строке поля разделены двоеточиями. Эта строка разбивается на следующие части. root, в нашем случае, — это имя пользователя, т.е. его логин в системе; qVbsxDKZ7lKxA — это закодированный пароль пользователя root. Всего различных способов кодирования пароля 4096, так что очень маловероятно, что если у двух разных пользователей одни и те же пароли, то и в зашифрованном виде они будут выглядеть одинаково. 0, который следует сразу же за зашифрованным паролем, — это входной идентификационный номер пользователя. Обычно первые 100 идентификационных номеров зарезервированы для административных целей, так что желательно, чтобы идентификационные номера пользователей были больше 100, да и к тому же для каждого пользователя уникальными. Следующим за идентификационным номером пользователя идет идентификационный номер группы пользователя. Это создано из-за того, что большинство групп состоят более чем из одного пользователя, поэтому пользователи, принадлежащие к одной группе (идентификационные номера группы у пользователей равны), могут иметь общие файлы. Таким образом, доступ к таким файлам будет разрешен только членам этой группы и никому другому (кроме пользователя root, конечно:). Имена и номера групп должны быть определены в файле etc/group . За идентификационным номером группы следует место для комментария, обычно там указывается полное имя пользователя, однако здесь может располагаться любая другая информация. /root — это начальный каталог пользователя. /bin/bash — оболочка пользователя, принимаемая по умолчанию. Вот и весь формат файла. Таким образом, для каждого отдельного пользователя отведена одна строка, что, на мой взгляд, очень удобно для системного администратора.
Теперь приступлю к описанию самой программы. Сначала, вы должны получить копию файла паролей. Если вы, воспользовавшись правами root’a, получили файл, содержащий так называемые теневые (shadow) пароли, то вам понадобится преобразовать этот файл в нормальный вид, выполнив следующую команду: unshadow /etc/passwd /etc/shadow > passwd.1 . Таким образом, получится файл ‘ passwd.1′, содержащий зашифрованные пароли пользователей, который нам в дальнейшем и понадобится для расшифровки. Если вы собираетесь расшифровывать AFS или NT пароли, то вам необходимо для этого использовать программу ‘unafs’, входящую в поставку John The Ripper, или cкачать утилиту PWDUMP (ftp://samba.anu.edu.au/pub/samba/pwdump/), соответственно. Предположим, что вы получили файл паролей, ‘passwd.1’, и хотите начать его расшифровку. Самый легкий способ состоит в том, чтобы использовать заданный по умолчанию порядок режимов расшифровки. Для этого необходимо выполнить следующую команду: john passwd.1 . В результате John The Ripper начнет расшифровку с режима ‘single crack’, затем будет использован режим ‘wordlist’, и, наконец, вы дойдете до последнего режима работы программы под названием ‘incremental mode’. Для увеличения скорости расшифровки при помощи подбора паролей по словарю рекомендуется воспользоваться большим словарем паролей, т.к. словарь, поставляющийся с самой программой, невелик. Если у вас есть такой словарь, то вам необходимо в файле john.ini отредактировать строку, указывающую на применение другого словаря. Например, если словарь с паролями носит название ‘passwordlist’, то в файле john.ini вам необходимо найти строку ‘Wordfile =’ и написать следующее: Wordfile = ~/passwordlist .
Теперь, когда вы получили некоторое количество расшифрованных паролей, они будут сохранены в файле john.pot . Для того чтобы их просмотреть, выполним следующую команду: john -show passwd .1. Если список учетных записей становится все больше и больше, не помещаясь на экране, то вы можете использовать переадресацию вывода. Для тех, кто не знает, что это такое, поясню. Используя символ ‘>’, вы можете перенаправить результаты выполнения команды сразу в файл. Далее, вы можете обратить внимание на то, что если в файле учетных записей находятся записи о блокировании доступа к шеллу, то у вас есть возможность заставить John’a игнорировать эти учетные записи. Если предположить, что блокированный доступ к шеллу носит название ‘/etc/expired’, то запустим программу со следующими опциями: john -show -shells:-/etc/expired passwd.1 . Для краткости можно также использовать сокращенный путь, который будет соответствовать любому пути, например, ‘/any/path/expired’: john -show -shells:-expired passwd.1 . Если у вас появилось желание проигнорировать какую-либо другую оболочку, например, ‘/etc/newuser’, то внесем в нашу команду небольшие изменения: john -show -shells:-expired, newuser passwd.1 . Тут следует заметить, что, начиная с версии 1.4, синтаксис программы немного изменился в лучшую сторону. Теперь вы можете сокращать команды.
Как и в любой другой системе, взломщик пытается получить наивысшие привилегии в системе. В ОС Unix такой учетной записью является root или же любая другая учетная запись, имеющая идентификатор 0. Для того чтобы проверить, расшифровался ли такой пароль, выполняем команду: john -show -users:0 passwd.1 . Если таких файлов с паролями у вас не один, а несколько, то для того, чтобы просмотреть все файлы, вы можете обойтись одной лишь командой: john -show -users:0 passwd.* . Если вам понадобилось узнать расшифрованный пароль какого-либо пользователя, например root’a, выполним следующее: john -show -users:root passwd.1 . И, наконец, для просмотра всех расшифрованных паролей пользователей, принадлежащих к привилегированным группам, нам поможет команда: john -show -groups:0,1 passwd.1 .
Однако же, если вы хотите использовать какой-нибудь из режимов расшифровки в отдельности, например ‘single crack’, авторы этой программы также предусмотрели это и включили в свой продукт выбор различных режимов. В нашем случае команда будет выглядеть следующим образом: john -single passwd.1 . Я уже говорил о том, что синтаксис программы изменился, поэтому результат выполнения команды: john -si passwd.1 будет таким же, как и результат выполнения предыдущей команды. Если у вас имеется сразу несколько файлов с зашифрованными паролями, то вам поможет следующая команда: john -single passwd.1 passwd.2 или даже john -single passwd.*, что во многих случаях сокращает запись исполняющихся команд.
Допустим, что после использования режима ‘single crack’ у вас расшифровались не все пароли. Следующим шагом к раскрытию всех зашифрованных паролей вы можете применить более мощный режим расшифровки — подбор паролей по словарю. Однако этот метод будет хорош для угадывания паролей лишь тех пользователей, которые не позаботились как следует о своей безопасности и выбрали в качестве своего пароля легко подбираемое слово. Поэтому мы будем использовать опцию wordlist: john -w:words.lst passwd.1 . Для любителей наглядности предлагается использовать длинный синтаксис параметров: john — wordfile=words.lst passwd.1 . Однако то же самое можно записать и кратко: john -w=words.lst passwd.1 . Для атаки перебора паролей по словарю, используя специальные правила, нужно в командной строке написать следующее: john -w:words.lst -rules passwd.1 . Но данный метод работает медленнее, чем атака по словарю без использования опции ‘rules’, однако это повышает ваши шансы расшифровать большинство слабых паролей, чтобы не тратить время на их расшифровку впоследствии. Поэтому я рекомендую не пренебрегать данной опцией.
Теперь рассмотрим следующий пример. Допустим, у вас набралось много паролей пользователей, которые не имеют доступ к шеллам, и вы не желаете тратить время на подбор паролей к их учетным записям. Вы можете указать john’y, чтобы тот не подбирал пароли для таких пользователей: john -w:words.lst -rules -shells:sh, csh, tcsh, bash passwd.1 . Этот вариант перебора работает во всех режимах. Хочу заметить, что для взломщика, атакующего систему, пароли пользователей, не имеющие доступа к шеллам, представляют наименьшее значение, поэтому основной упор он будет делать именно на пользователей с доступом к шеллам, ну и, конечно же, на суперпользователя — root’a. Подобно всем другим режимам взлома паролей, для того, чтобы как можно быстрее расшифровать все файлы, вам необходимо при расшифровке использовать сразу все файлы с паролями: john -w:words.lst -rules passwd.* . При этом вы сэкономите уйму времени, потому как если в одном файле на взлом пароля root’a у вас может уйти много времени, то при использовании сразу несколько файлов шансы на быструю расшифровку увеличиваются за счет одновременного подбора паролей сразу ко всем пользователям. Ну, а далее все зависит только от скорости вашего процессора.
Так же как и в предыдущих режимах взлома, у вас присутствует возможность расшифровки каких-то отдельных паролей. Следующая команда производит расшифровку всех root’ов (универсальный идентификатор 0) во всех файлах паролей: john -w:words.lst -rules -users:0 passwd.* . Для альтернативы, если вы не желаете тратить впустую время на расшифровку ваших собственных паролей, будучи уверенным в том, что они не взламываемые: john -w:words.lst -rules -users:-root, solar passwd.* . Иногда полезно разбить ваши файлы паролей на две части, которые впоследствии можно будет расшифровывать в отдельности: john -w:words.lst -rules -salts:2 passwd.* и john -w:words.lst -rules -salts:-2 passwd.* .
В результате это приведет к попыткам John’a взломать два или более паролей как можно быстрее, а затем уже после этого программа будет пробовать расшифровать все остальные пароли. Общее количество времени, потраченное на взлом, будет относительно тем же, но у вас появляется возможность получить некоторые пароли раньше, поэтому в результате расшифровки вы уже можете не нуждаться в подборе остальных. Например, John подобрал пароль для суперпользователя root. При этом вы достигли максимальных привилегий, потому как все, что могут делать обычные пользователи, может делать root. Однако ни у кого, кроме него, не существует таких высоких полномочий (если в системе только один суперпользователь с уникальным идентификатором 0). Пароли других пользователей могут понадобиться только лишь в том случае, если вход в систему под именем root запрещен. Тогда вам нужно будет добыть пароль какого-нибудь пользователя. Под ним зайти в систему, а уже после этого, зная пароль пользователя root, попытаться поднять свои привилегии до рутовских.
Наиболее мощный режим расшифровки в программе John The Ripper называется «incremental». Для того чтобы начать перебор зашифрованных паролей в таком режиме, вы можете просто выполнить следующую команду: john -i passwd.1 . В результате выполнения этой команды John будет использовать заданные по умолчанию возрастающие параметры режима, которые определены в файле john.ini в разделе [Incremental:All] . В файле конфигурации, снабженном John’ом, эти параметры должны использовать все 95 символов и пробовать все возможные длины пароля, от 0 до 8. (Нулевой длиной пароля автор программы считает хэш, представляющий собой пустую строку, поскольку такие пароли тоже иногда могут попадаться). Не следует ждать того, что перебор всех возможных паролей закончится в разумное время, так как если пароль действительно стойкий, то подобрать его на обычном компьютере не реально.
В некоторых случаях, для повышения быстродействия, необходимо использовать некоторые другие предопределенные возрастающие параметры режима и только расшифровывать более простые пароли, с ограниченным количеством набором символов. Следующая команда будет пробовать подбирать пароль, используя только 26 различных символов, т.е. мы будем использовать все маленькие латинские буквы от ‘a’ до ‘z’. Возможные комбинации паролей будут варьироваться от от ‘а’ до ‘zzzzzzzz’: john -i:alpha passwd.1 . Опять же, вы можете расшифровывать только учетную запись root’a и использовать некоторые другие возможности John’a с использованием режима ‘incremental’. Эта команда попробует расшифровать все учетные записи с универсальным идентификатором 0 во всех файлах паролей, имеющих расширение ‘pwd’: john -i -users:0 -salts:2 *.pwd . Если вы получили файл паролей, в котором много паролей уже расшифрованы, при этом большинство из подобранных паролей являются уникальными, то вы могли бы сгенерировать новый файл символов, основанный на символах только из этого файла паролей: john -makechars:custom.chr passwd.1 . Тогда вы сможете использовать полученный файл для режима ‘incremental’. Кроме этого, вы можете использовать некоторые предопределенные фильтры слов при создании файла символов, в результате этой команды программа будет пробовать подобрать более простые слова для расшифровки паролей: john -makechars:my_alpha.chr -external:filter_alpha passwd.1 .
Если ваш файл john.pot стал достаточно большим, то вы могли бы использовать этот файл для создания нового файла символов:
john -makechars:all.chr
john -makechars:alpha.chr -external:filter_alpha
john -makechars:digits.chr -external:filter_digits
john -makechars:lanman.chr -external:filter_lanman
В примере, показанном выше, John запишет поверх старых файлов с символами новые файлы, которые сгенерируются и будут основаны только на файле john.pot (John The Ripper использует именно этот файл для генерации всех возможных символов, если вы не укажете для этого какой-нибудь другой файл с паролями). Обратите внимание, что фильтры слов, используемые в этом примере, предопределены в конфигурационном файле john.ini и поставляются для вашего же удобства вместе с программой.
Наконец, если вы захотите, то можете отправить всем пользователям, которые имеют слабые пароли, письмо, в котором сообщите им о необходимости замены выбранного пароля. Однако поступить так не всегда хорошая идея, потому как, к великому сожалению, большое количество людей просто игнорируют такую почту.
Теперь рассмотрим файл конфигурации программы John The Ripper. Предположим, что вы обратили внимание на то, что в некоторых файлах паролей большинство пользователей в качестве паролей используют имена для входа в систему с некоторыми изменениями, а именно, они прибавляют к концу логина символы ‘?!’. Тогда вы можете сделать новое правило для режима ‘single crack’ и разместить его в самом начале конфигурационного файла:
[List.Rules:Single]
$? $!
Если вы генерируете новый файл символов (его генерацию я описал выше), вы должны будете также это указать в файле john.ini в разделе, относящемуся к режиму ‘incremental’. В самом простом случае это может выглядеть следующим образом:
[Incremental:Custom]
File = custom.chr
где ‘Custom’ может быть заменено любым именем. Это заставит John’a использовать только те символы, которые были в подобранных паролях. Для того чтобы указать John The Ripper’y на то, чтобы он при расшифровке использовал и другие символы, вам необходимо в конфигурационном файле записать следующую строку: Extra =! @#$% . В результате записанные после знака ‘=’ символы будут добавляться при расшифровке паролей, но программа будет считать возможность их появления наименее вероятной. Если же вы хотите удостовериться в том, что вместе с вашими дополнительными символами John будет использовать все 95 символов, то вам необходимо записать следующее: CharCount = 95 . Записанная строка подскажет программе выдать предупреждение, если не все из 95 символов будут находиться в полученном файле возможных символов. Тем не менее, вы можете ограничить число различных символов, участвующих в расшифровке паролей, записав вместо 95 другое число, даже если оно превосходит количество символов в сивольной таблице. Вы можете также использовать CharCount, чтобы ограничить число различных символов, которые будут использованы John’ом, даже если charset файл содержит большее количество символов: CharCount = 25 . Если Вы не использовали какие-нибудь фильтры при генерации файлов символов, то установка маленького значения CharCount просто не будет использовать редкие символы при переборе. Для того чтобы установить рамки возможной минимальной и максимальной длин, вам необходимо воспользоваться нижеприведенными строками : MinLen = 6, MaxLen = 8 . Установка значений ‘MinLen’ и ‘MaxLen’ вам может пригодиться в том случае, если в системе используются ограничения на длину возможного пароля, т.е. системный администратор запретил использовать короткие пароли для входа в систему. Однако возможна такая ситуация, когда сам администратор (root) выбрал для конкретного пользователя пароль на свое усмотрение. Причем если вы считаете, что в исследуемой вами системе имеется много коротких паролей, то вы можете установить значение ‘MinLen’ как можно ниже. Это позволит вам сэкономить много времени.
Программу можно найти по адресу: http://www.openwall.com/john/.
Используя, по возможности, весь этот арсенал команд, вы можете в кратчайшие сроки добиться желаемого результата. А значит, и принять меры борьбы со слабыми паролями, обратившись уже к конкретному пользователю с просьбой заменить слабый пароль чем-нибудь более стойким. И напоследок хочу заметить, что за все последствия, к которым может привести использование этой программы, я ответственности не несу.
Евгений Сечко, safeman@mail.ru (c) компьютерная газета
Компьютерная газета. Статья была опубликована в номере 19 за 2001 год в рубрике soft :: безопасность