Создать хеш пароля linux

0x00 Предисловие

В системе Linux пароль пользователя будет зашифрован и сохранен в файле /etc/shadow Каковы методы шифрования и методы взлома паролей? В этой статье предпринята попытка организовать эту часть, представить соответствующие базовые знания, протестировать общие методы и помочь вам получить более интуитивное понимание этого.

0x01 Введение

Эта статья представит следующее:

  • Формат сохранения пароля пользователя в Linux
  • Метод шифрования пароля пользователя под Linux
  • Общие инструменты и методы для взлома хэшей паролей пользователей

0x02 Сохранить формат пароля пользователя под Linux

Информация о пароле Linux сохраняется в двух файлах, а именно: /etc/passwd с /etc/shadow

/etc/passwd:

Обычные права пользователя могут быть просмотрены

Сохраните информацию о пользователе, каждая строка представляет пользователя, каждая строка через двоеточие: разделена на семь частей

  1. имя пользователя
  2. Пароль, х означает, что пароль сохранен в / etc / shadow
  3. UID, 0 представляет root
  4. GID с указанием группы
  5. Описательная информация, затем полное имя, номер комнаты, рабочий телефон, домашний телефон и др.
  6. Домашний каталог пользователя
  7. Тип оболочки по умолчанию

eg.

test2:x:1001:1001:test2,11111,111111-11,222222-22,test:/home/test2:/bin/bash 
  • Имя пользователя: test2
  • Пароль сохраняется в / etc / shadow
  • UID 1001
  • GID составляет 1001
  • Описание: Полное имя []: test2 Номер комнаты []: 11111 Рабочий телефон []: 111111-11 Домашний телефон []: 222222-22 Другое []: test
  • Домашний каталог пользователя — / home / test2
  • Оболочкой по умолчанию является / bin / bash

/etc/shadow:

Только пользователь root может просматривать

Сохраните зашифрованный пароль и информацию о пароле пользователя, каждая строка представляет пользователя, каждая строка через двоеточие: разделена на девять частей

  1. имя пользователя
  2. Зашифрованный пароль
  3. Последний раз пароль менялся (всего дней с 1970.1.1)
  4. Минимальное количество дней между двумя сменами пароля, если 0, ограничений нет
  5. Максимальное количество дней между двумя сменами пароля, которое указывает количество дней, по истечении которых срок действия пароля пользователя истекает.
  6. За сколько дней предупредить пользователя о том, что срок действия пароля истечет
  7. Через сколько дней после истечения срока действия пароля отключить этого пользователя
  8. Дата истечения срока действия пользователя (всего дней с 1970.1.1), если 0, пользователь доступен постоянно
  9. Хранить
Читайте также:  Astra linux mount cd rom

Замечания:

Описание параметров можно получить через тень человека

eg.

test2:$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0:17470:0:99999:7. 
  • Имя пользователя: test2
  • Зашифрованный пароль: $ 6 $ C / vGzhVe $ aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7 / OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0
  • Последний раз пароль был изменен (общее количество дней с 1970.1.1 составляет 17470)
  • Интервал смены пароля: без ограничений
  • Максимальное количество дней между сменами пароля: без ограничений
  • Предупредите пользователя, что срок действия пароля истекает за 7 дней
  • Пользователь постоянно доступен

Из примера видно, что зашифрованный пароль имеет фиксированный формат:

id означает алгоритм шифрования, 1 означает MD5, 5 означает SHA-256, 6 означает, что соль SHA-512 означает соль в криптографии, система случайным образом генерирует зашифрованный средний хэш-пароль

0x03 Общие инструменты и методы для взлома хэша пароля пользователя

Поскольку для шифрования паролей в Linux используется Salt, его нельзя взломать с помощью метода «радужной таблицы». Распространенными методами являются взлом словаря и взлом грубой силы.

Общие инструменты для взлома словаря и взлома:

1、John the Ripper

(1) словарь взлома

Kali2.0 объединяет Джона Потрошителя

Файл словаря находится /usr/share/john/password.lst

Используйте собственный список паролей Джона на Kali Linux. Путь /usr/share/john/password.lst

Используйте словарь, чтобы взломать:

john --wordlist=/usr/share/john/password.lst ./shadow 

Можно также использовать другие словари

(2) грубое растрескивание:

Перечислите взломанные пароли в виде открытого текста:

Результаты приведены ниже

2、hashcat

Kali2.0 интегрирует hashcat

Использование файла словаря /usr/share/john/password.lst

Изменить формат хеша: сохранить только $salt$encrypted

test2:$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0:17470:0:99999:7. 
$6$C/vGzhVe$aKK6QGdhzTmYyxp8.E68gCBkPhlWQ4W7/OpCFQYV.qsCtKaV00bToWh286yy73jedg6i0qSlZkZqQy.wmiUdj0 

(1) Взлом словаря:

hashcat -m 1800 -o found1.txt --remove shadow /usr/share/john/password.lst 

-m: хеш-тип, 1800 соответствует SHA-512. Подробные параметры можно найти в таблице:https://hashcat.net/wiki/doku.php?id=example_hashes -o: выходной файл

Успешно взломаны 2 хэша, как показано ниже

(2) грубое растрескивание:

hashcat -m 1800 -a 3 -o found2.txt shadow ?l?l?l?l --force 

Описание параметров: -a: режим атаки, по умолчанию 0, 3 представляет перебор, то есть перебор? L: строчные буквы, т.е. abcdefghijklmnopqrstuvwxyz, 4? L представляет длину взлома перебором 4? U: представляет заглавные буквы , То есть ABCDEFGHIJKLMNOPQRSTUVWXYZ? H: представляет шестнадцатеричные символы в нижнем регистре, то есть 0123456789abcdef? H: представляет шестнадцатеричные символы в верхнем регистре, то есть 0123456789ABCDEF? S: представляет специальные символы, то есть! «# $% & ‘() * +, — ./:;?@[]^_ `

Читайте также:  Alpine linux void linux

() ~? a: означает все символы, т.е.? l? u? d? s? b: означает шестнадцатеричное, то есть 0x00-0xff

Успешно взломал хеш, результат таков

3. Интернет-сайт

  1. https://hce.iteknical.com/ Платформа распределенных вычислений HCE, вам нужно использовать очки
  2. http://www.cmd5.com/ В настоящее время не поддерживает SHA-512

4、mimipenguin

Принцип похож на mimikatz, и пароль в виде открытого текста экспортируется через память

0x04 Резюме

Эта статья знакомит с форматом сохранения пароля в Linux и тестирует два наиболее часто используемых инструмента: John the Ripper и hashcat, используя два метода взлома: словарь и перебор.

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

Источник

/etc/shadow – HowTo: Generate Password Hash in Linux

Linux stores users’ encrypted passwords, as well as other security information, such as account or password expiration values, in the /etc/shadow file.

Someday you may need to edit the /etc/shadow file manually to set or change ones password.

Unlike the /etc/passwd that is readable for everyone, the /etc/shadow file MUST be readable by the ROOT user only.

For this you would have to generate password hash in the format compatible with /etc/shadow .

Cool Tip: Want to create a USER with ROOT privileges? This can be very dangerous! But if you insist… Read more →

There is no need to install any additional tools as it can be easily done from the Linux command line using Python.

Generate Password Hash for /etc/shadow

The $ID indicates the type of encryption, the $SALT is a random (up to 16 characters) string and $ENCRYPTED is a password’s hash.

Читайте также:  Электронная таблица для линукс
Hash Type ID Hash Length
MD5 $1 22 characters
SHA-256 $5 43 characters
SHA-512 $6 86 characters

Cool Tip: Got a hash but don’t know what type is it? Find out how to easily identify different hash types! Read more →

Use the below commands from the Linux shell to generate hashed password for /etc/shadow with the random salt.

Generate MD5 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$1\$%s\$' % randomsalt)" --- $1$YjOzcqrf$Zqx4sx5CQRuEIFCdOLAJV0

Generate SHA-256 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$5\$%s\$' % randomsalt)" --- $5$LgsPuaeR$OCtm.3tpbS/wyOZAIy6dsVNP4x0GyohyGebkIz15e88

Generate SHA-512 password hash:

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$6\$%s\$' % randomsalt)" --- $6$HMpFTkgb$WqzuqMqYbjWsXFrOtvZPo.1gIkH6HiXJGr4QPv.k26jE.3mE.sdf3dds[. ]

Hope these commands will be helpful.

Just don’t forget to replace MySecretPassword with YourSecretPassword.

As you can see, it is really very easy to generate hashes for the /etc/shadow from the Linux command line using Python.

Particularly for the reason that the Python is installed by default on the most Linux distributions.

Источник

Оцените статью
Adblock
detector