- 0x00 Предисловие
- 0x01 Введение
- 0x02 Сохранить формат пароля пользователя под Linux
- /etc/passwd:
- eg.
- /etc/shadow:
- Замечания:
- eg.
- 0x03 Общие инструменты и методы для взлома хэша пароля пользователя
- 1、John the Ripper
- (1) словарь взлома
- (2) грубое растрескивание:
- 2、hashcat
- (1) Взлом словаря:
- (2) грубое растрескивание:
- 3. Интернет-сайт
- 4、mimipenguin
- 0x04 Резюме
- /etc/shadow – HowTo: Generate Password Hash in Linux
- Generate Password Hash for /etc/shadow
0x00 Предисловие
В системе Linux пароль пользователя будет зашифрован и сохранен в файле /etc/shadow Каковы методы шифрования и методы взлома паролей? В этой статье предпринята попытка организовать эту часть, представить соответствующие базовые знания, протестировать общие методы и помочь вам получить более интуитивное понимание этого.
0x01 Введение
Эта статья представит следующее:
- Формат сохранения пароля пользователя в Linux
- Метод шифрования пароля пользователя под Linux
- Общие инструменты и методы для взлома хэшей паролей пользователей
0x02 Сохранить формат пароля пользователя под Linux
Информация о пароле Linux сохраняется в двух файлах, а именно: /etc/passwd с /etc/shadow
/etc/passwd:
Обычные права пользователя могут быть просмотрены
Сохраните информацию о пользователе, каждая строка представляет пользователя, каждая строка через двоеточие: разделена на семь частей
- имя пользователя
- Пароль, х означает, что пароль сохранен в / etc / shadow
- UID, 0 представляет root
- GID с указанием группы
- Описательная информация, затем полное имя, номер комнаты, рабочий телефон, домашний телефон и др.
- Домашний каталог пользователя
- Тип оболочки по умолчанию
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 может просматривать
Сохраните зашифрованный пароль и информацию о пароле пользователя, каждая строка представляет пользователя, каждая строка через двоеточие: разделена на девять частей
- имя пользователя
- Зашифрованный пароль
- Последний раз пароль менялся (всего дней с 1970.1.1)
- Минимальное количество дней между двумя сменами пароля, если 0, ограничений нет
- Максимальное количество дней между двумя сменами пароля, которое указывает количество дней, по истечении которых срок действия пароля пользователя истекает.
- За сколько дней предупредить пользователя о том, что срок действия пароля истечет
- Через сколько дней после истечения срока действия пароля отключить этого пользователя
- Дата истечения срока действия пользователя (всего дней с 1970.1.1), если 0, пользователь доступен постоянно
- Хранить
Замечания:
Описание параметров можно получить через тень человека
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: представляет специальные символы, то есть! «# $% & ‘() * +, — ./:;?@[]^_ `
() ~? a: означает все символы, т.е.? l? u? d? s? b: означает шестнадцатеричное, то есть 0x00-0xff
Успешно взломал хеш, результат таков
3. Интернет-сайт
- https://hce.iteknical.com/ Платформа распределенных вычислений HCE, вам нужно использовать очки
- 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.