Cracking Passwords, Взлом паролей

#1 Взлом паролей. Понимание файлов etc/passwd и etc/shadow.

Здравствуйте, дорогие друзья.

В этой статье мы обсудим, как система linux выполняет аутентификацию. Есть два файла, представляющих для нас особый интерес — это etc/passwd и etc/shadow.

ls -l /etc/passwd /etc/shadow

etc/passwd содержит основную информацию о каждой учетной записи пользователя в системе. Давайте посмотрим содержимое файла etc/passwd, открывая его, с помощью команды «less».

less /etc/passwd

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

Первое поле — это имя пользователя для входа в систему.

Первое поле - это имя пользователя для входа в систему.

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

Если это второе поле пусто, пользователю не нужно вводить пароль для входа.

Второе поле - начало эпохи unix

Третье поле — идентификатор пользователя.

Третье поле - идентификатор пользователя.

Положительное целое число, назначенное пользователю, за которым следует идентификатор группы — четвертое поле.

Положительное целое число, назначенное пользователю, за которым следует идентификатор группы - четвертое поле.

Пятое поле — комментарий. Иногда его оставляют пустым.

Пятое поле — комментарий. Иногда его оставляют пустым.

Следующее поле — использование домашнего каталога.

Следующее поле - использование домашнего каталога.

И, наконец, последнее поле — это оболочка по умолчанию, обычно установленная в bin zsh.

И, наконец, последнее поле - это оболочка по умолчанию, обычно установленная в bin zsh.

Если вместо zsh Вы видите, что нет входа в систему или false, это означает, что это системный пользователь, которому не разрешено входить в систему, которая была в формате пароля.

Я выхожу из файла, нажимая на q.

Давайте продолжим и посмотрим на формат etc/shadow. Это команда less etc/shadow.

less etc/shadow

Это файл, в котором хранятся фактические пароли пользователей в зашифрованном формате. На самом деле, есть хэш пароля с дополнительными свойствами, относящиеся к паролям пользователя, такие как даты истечения срока действия пароля. Файл etc/passwd доступен для чтения по словам, а это означает, что любой пользователь может его прочитать, но файл etc/shadow доступен для чтения только учетной записи root.

Давайте глубже посмотрим на содержимое теневого файла. Каждая строка файла содержит 9 полей, разделенных запятыми. Первое поле — это имя пользователя, и именно так строка в теневом файле соединяется с соответствующей строкой в файле паролей.

 Первое поле - это имя пользователя

Второе поле представляет собой пароль. Вся строка между этими двумя столбцами — это пароль.

Второе поле представляет собой пароль. Вся строка между этими двумя столбцами — это пароль.

Затем идут семь полей, связанных с датами истечения срока действия пароля, такими как минимальный и максимальный возраст пароля последнего изменения пароля и так далее. Я не буду углубляться в это, но если Вам интересно, Вы можете найти полное описание из этих полей на странице руководства теневого файла man shadow. Вы найдете здесь полное описание каждого поля.

man shadow
man shadow

Давайте вернемся к теневому файлу, если поле пароля содержит звездочку или восклицательный знак, пользователь не сможет войти в систему, использующую аутентификацию по паролю, и другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя.

root ! bin *

Это случай пользователя root, в последней версии kali linux. Давайте глубже посмотрим на поле пароля. Обычно формат пароля в этом случае установлен в долларах.

Давайте глубже посмотрим на поле пароля. Обычно формат пароля в этом случае установлен в долларах.

В этом случае используемым алгоритмом криптографического хеширования могут быть следующие значения: 1 означает md5, 2a означает blowfish, 2y означает x blowfish, 5 означает sha 256. Затем идет соль этой части, а затем хэш пароля и соль вместе.

Эта часть хэша, вычисленная, с использованием, в данном случае, алгоритма sha-512, который является чрезвычайно сильным алгоритмом. Позвольте мне рассказать Вам несколько слов о соли.

соль

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

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

useradd user1 passwd user1

Пользователь был создан, и давайте установил пароль «test» для проверки пароля user1, и я набирал test два раза.

Аналогичным образом создаем второго пользователя «user2», с тем же паролем «test».

useradd user2 passwd user2

Теперь давайте проверим хэши в теневом файле, я распечатываю последние 10 строк. Это команда «tail etc/shadow».

tail etc/shadow

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

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

Последнее, что я хочу Вам сказать, это то, что эти файлы, passwd и shadow не должны редактироваться вручную. Если Вы знаете, что Вы делаете, всегда используйте комментарий, который предназначен для этой цели.

На этом все. Всем хорошего дня!