Форум по операционной системе GNU/Linux и свободному программному обеспечению
Текущее время: 20 июн 2019, 06:08

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: теневые пароли
Непрочитанное сообщениеДобавлено: 11 июн 2019, 17:19 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Речь идёт, естественно о /etc/shadow ...
Код:
root@ACER:/etc# pwd
/etc

root@ACER:/etc# ls -l shadow
-rw-r----- 1 root shadow 1367 мар  8 06:13 shadow

И о содержимом его строк - хешированных паролях пользователей в Linux:
Код:
root@ACER:/etc# cat /etc/shadow
root:$6$QiWwCbrg$ejp.A2/7uvmb4hy13vn.SAyetXiXeIENwSuWkriZHeNzJofLkWfCBkJp6wL1Urle47VcqrIK.7kdexN/qRCUd.:17887:0:99999:7:::
daemon:*:17882:0:99999:7:::
bin:*:17882:0:99999:7:::
sys:*:17882:0:99999:7:::
sync:*:17882:0:99999:7:::
games:*:17882:0:99999:7:::
man:*:17882:0:99999:7:::
lp:*:17882:0:99999:7:::
mail:*:17882:0:99999:7:::
news:*:17882:0:99999:7:::
uucp:*:17882:0:99999:7:::
proxy:*:17882:0:99999:7:::
www-data:*:17882:0:99999:7:::
backup:*:17882:0:99999:7:::
list:*:17882:0:99999:7:::
irc:*:17882:0:99999:7:::
gnats:*:17882:0:99999:7:::
nobody:*:17882:0:99999:7:::
_apt:*:17882:0:99999:7:::
systemd-timesync:*:17882:0:99999:7:::
systemd-network:*:17882:0:99999:7:::
systemd-resolve:*:17882:0:99999:7:::
uuidd:*:17882:0:99999:7:::
avahi-autoipd:*:17882:0:99999:7:::
usbmux:*:17882:0:99999:7:::
dnsmasq:*:17882:0:99999:7:::
messagebus:*:17882:0:99999:7:::
rtkit:*:17882:0:99999:7:::
avahi:*:17882:0:99999:7:::
geoclue:*:17882:0:99999:7:::
colord:*:17882:0:99999:7:::
saned:*:17882:0:99999:7:::
speech-dispatcher:!:17882:0:99999:7:::
pulse:*:17882:0:99999:7:::
lightdm:*:17882:0:99999:7:::
olej:$6$pFRKLvEH$Ciq6AlhkvrqCWOP5kV2ZRXc91niIZp9Q5EmievfbxkdTU/M/F5IT7kpGD5utCcmn66xnSBv7OL4qBR9lhRxLF/:17887:0:99999:7:::
systemd-coredump:!!:17887::::::
sshd:*:17888:0:99999:7:::
nm-openvpn:*:17889:0:99999:7:::
mysql:!:17919:0:99999:7:::
Debian-exim:!:17963:0:99999:7:::


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 11 июн 2019, 17:55 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
И о содержимом его строк - хешированных паролях пользователей в Linux:

Вообще то, с содержимым этих строк пользователи Linux не разбираются, не утруждают себя. И правильно - работает и работает!
Я вот за 30 почти лет самой плотной работы с Linux, зная что это "теневые записи паролей" - никогда не интересовался деталями их представлений ... и утилитами работы с ними.
Но нужда возникла в связи с разборкой в паролями Astra Linux, с невозможностью непосредственного входа (терминал) в сеанс root.
Код:
olej@astra:~$ uname -a
Linux astra 4.19.0-1-generic #astra1 SMP Wed Mar 20 12:59:21 UTC 2019 x86_64 GNU/Linux

Код:
root@astra:/etc# cat shadow
root:!:18056:0:99999:7:::
daemon:*:18056:0:99999:7:::
bin:*:18056:0:99999:7:::
sys:*:18056:0:99999:7:::
sync:*:18056:0:99999:7:::
games:*:18056:0:99999:7:::
...
fly-dm:!:18056::::::
Debian-exim:!:18056:0:99999:7:::
dnsmasq:*:18056:0:99999:7:::
...
libvirt-qemu:!:18056:0:99999:7:::
hplip:*:18056:0:99999:7:::
avahi:*:18056:0:99999:7:::
olej:$6$/Fx7EP5H$HjJTlrqtWI2m74FdQpg0YmE8fP5vkMo18O1a0XS.cp87GtdtVu3LZbRtxhuy.ZHCpgzZVmgAkaAsNfOqO9mSb1:18056:0:99999:7:::
vboxadd:!:18056::::::

Как легко видеть, здесь во 2-м поле (поле пароля) root стоит '!' - вход с таким паролем заблокирован. В отличие от '*' в этой позиции - вход с таким именем запрещён - '!' похоже (IMHO) нововведение нескольких последних лет ... потому что в публикациях порядка 2006 года он нигде не упоминается.
А заблокированный пароль/имя можно разблокировать.

P.S. Вообще то, все дела с /etc/shadow, даже на просто посмотреть, можно выполнять только с правами root - остальным здесь делать нечего:
Код:
root@astra:~# ls -l /etc/shadow
-rw-r----- 1 root shadow 1139 Июн 10 18:43 /etc/shadow

Вопрос: а как попасть в root 1-й раз, чтобы начать там что-то делать с root ("проблема курицы и яйца" ;-) )?
А вот так (вспоминаем):
Код:
olej@astra:~$ sudo -i
[sudo] пароль для olej:
root@astra:~# whoami
root


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 11 июн 2019, 18:33 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
А заблокированный пароль/имя можно разблокировать.

Заблокированный пароль - это тот, которому предшествует '!'.
Разблокировка делается командой passwd (см. passwd --help).
Но в данном случае это не сработает:
Код:
root@astra:/etc# passwd -u root
passwd: разблокировка пароля приведёт к появлению беспарольной учётной
записи. Вы должны задать пароль с помощью usermod -p для разблокировки учётной записи пользователя.

root@astra:/etc# cat shadow | grep root
root:!:18056:0:99999:7:::

Разблокировка может быть сделана сразу непосредственно присвоением пустому паролю непустого значения.
Но я сделаю по-другому:
Код:
root@astra:/etc# usermod -p ''  root

root@astra:/etc# cat shadow | grep root
root::18057:0:99999:7:::

И получаем беспарольный разблокированный вход:
Код:
olej@astra:~$ su -
root@astra:~# whoami
root

Для root это не лучшая идея ;-) , но ... а). у меня это виртуальная машина и б). в порядке экспериментов это годится.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 00:26 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Теперь о строках (пользователях) со значащими паролями:
Код:
olej:$6$pFRKLvEH$Ciq6AlhkvrqCWOP5kV2ZRXc91niIZp9Q5EmievfbxkdTU/M/F5IT7kpGD5utCcmn66xnSBv7OL4qBR9lhRxLF/:17887:0:99999:7:::

Здесь 2-е поле между разделителями ':' - хешированное значение пароля.

Поля хешированного значения разделяются '$'.
Здесь 1-е поле = 6 - метод хеширования
Методы можем посмотреть так:
Код:
root@ACER:/etc# mkpasswd -m help
Доступные методы:
sha512crypt     SHA-512
sha256crypt     SHA-256
md5crypt        MD5
descrypt        standard 56 bit DES-based crypt(3)


2-е поле = pFRKLvEH - это salt (соль), строка с которой и хешируется наш пароль

И, наконец, 3-е поле - это хешированное значение, с которым и сверяется хеш (с salt) вводимого вами пароля. Обратная задача: зная salt и результирующее хешированное значение - не решаемая, таким образом пароль не хранится нигде в системе и не восстанавливаем!

Теперь, как выглядит это хешированное значение для разных алгоритмов хеширования (я беру значение пароля asdf51):
Код:
root@ACER:/etc# mkpasswd -m sha-512 --salt=pFRKLvEH asdf51
$6$pFRKLvEH$Ciq6AlhkvrqCWOP5kV2ZRXc91niIZp9Q5EmievfbxkdTU/M/F5IT7kpGD5utCcmn66xnSBv7OL4qBR9lhRxLF/

- это ровно то значение, котрое показано в начале сообщения.
Но здесь может быть и:
Код:
root@ACER:/etc# mkpasswd -m sha-256 --salt=pFRKLvEH asdf51
$5$pFRKLvEH$8UiUCHTWJQKYT9L5ZO9w5xmabohIu6zra1g7CP3fd./

Код:
root@ACER:/etc# mkpasswd -m md5 --salt=pFRKLvEH asdf51
$1$pFRKLvEH$CyFIOFF6nLEaq4H4Zkhis0

Код:
root@ACER:/etc# mkpasswd -m descrypt --salt=pFRKLvEH asdf51
Неверная длина соли: 8 байт при ожидаемой 2.

root@ACER:/etc# mkpasswd -m descrypt --salt=pF asdf51
pFcjREOAymk7I


P.S. Указывать пароль для хеширования последним параметром команды mkpasswd - не очень хорошая идея (явно выписывать пароль).
Для всех алгоритмов это можно (лучше) делать так:
Код:
root@ACER:/etc# mkpasswd -m md5 --salt=pFRKLvEH
Пароль:
$1$pFRKLvEH$CyFIOFF6nLEaq4H4Zkhis0


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 00:44 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Экспериментирую...

Создаю нового пользователя freak с паролем 12345:
Код:
root@ACER:/etc# adduser freak
Добавляется пользователь «freak» ...
Добавляется новая группа «freak» (1001) ...
Добавляется новый пользователь «freak» (1001) в группу «freak» ...
Создаётся домашний каталог «/home/freak» ...
Копирование файлов из «/etc/skel» ...
Новый пароль :
Повторите ввод нового пароля :
passwd: пароль успешно обновлён
Изменение информации о пользователе freak
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
   Полное имя []:
   Номер комнаты []:
   Рабочий телефон []:
   Домашний телефон []:
   Другое []:
Данная информация корректна? [Y/n] y

Код:
root@ACER:/etc# cat /etc/shadow | grep freak
freak:$6$bERj3kkuLv5Rq1jj$8L0s5hd4C6HkwjL/s.sIg1gm5BCsrh4vU/r3WO.ifei7q/hI6p9bAsBy1jrjRupe/M/CUDfz/FtcZBq44.yq31:18058:0:99999:7:::

Проверяем:
Код:
root@ACER:/etc# mkpasswd -m sha-512 --salt=bERj3kkuLv5Rq1jj 12345
$6$bERj3kkuLv5Rq1jj$8L0s5hd4C6HkwjL/s.sIg1gm5BCsrh4vU/r3WO.ifei7q/hI6p9bAsBy1jrjRupe/M/CUDfz/FtcZBq44.yq31

Это та же строка!
Код:
olej@ACER:~$ su freak -
Пароль:

freak@ACER:/home/olej$ whoami
freak

freak@ACER:/home/olej$ cd ~

freak@ACER:~$ pwd
/home/freak


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 00:51 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
Проверяем:

Меняю алгоритм:
Код:
root@ACER:/etc# usermod -p '$5$bERj3kkuLv5Rq1jj$hfoZgPn7yYbZHhc9E13TiFkm6JLdzJah/On4RZtkZ/C' freak

root@ACER:/etc# cat /etc/shadow | grep freak
freak:$5$bERj3kkuLv5Rq1jj$hfoZgPn7yYbZHhc9E13TiFkm6JLdzJah/On4RZtkZ/C:18058:0:99999:7:::

Код:
olej@ACER:~$ su freak -
Пароль:

freak@ACER:/home/olej$ whoami
freak


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 00:57 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
Меняю алгоритм:

Ещё раз меняю алгоритм:
Код:
root@ACER:/etc# mkpasswd -m md5 --salt=bERj3kkuLv5Rq1jj 12345
Неверная длина соли: 16 байт при ожидаемой 8.

root@ACER:/etc# mkpasswd -m md5 --salt=12345678 12345
$1$12345678$M1o7XeamKvTv64m7bK9e30

root@ACER:/etc# usermod -p '$1$12345678$M1o7XeamKvTv64m7bK9e30' freak

root@ACER:/etc# cat /etc/shadow | grep freak
freak:$1$12345678$M1o7XeamKvTv64m7bK9e30:18058:0:99999:7:::

Код:
olej@ACER:~$ su freak -
Пароль:

freak@ACER:/home/olej$ whoami
freak


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 01:01 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
Меняю алгоритм:

Ещё раз меняю алгоритм:
Код:
root@ACER:/etc# mkpasswd -m descrypt --salt=XX 12345
XXj6IcTHu4zJQ

root@ACER:/etc# usermod -p 'XXj6IcTHu4zJQ' freak

root@ACER:/etc# cat /etc/shadow | grep freak
freak:XXj6IcTHu4zJQ:18058:0:99999:7:::

Код:
olej@ACER:~$ su freak -
Пароль:
freak@ACER:/home/olej$ whoami
freak


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 01:14 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Olej писал(а):
Создаю нового пользователя freak с паролем 12345:
Код:
root@ACER:/etc# adduser freak
...


Убираем следы экспериментирования...
Код:
root@ACER:/etc# deluser freak
Удаляется пользователь «freak» ...
Предупреждение: в группе «freak» нет больше членов.
userdel: user freak is currently used by process 19412
/usr/sbin/deluser: Работа «/sbin/userdel freak» завершилась с кодом ошибки 8. Завершение работы.

Это неудача - в одном из терминалов остался логиненным freak...
Код:
root@ACER:/etc# ls -a /home/freak/
.  ..  .bash_history  .bash_logout  .bashrc  .profile

root@ACER:/etc# cat /etc/passwd | grep freak
freak:x:1001:1001:,,,:/home/freak:/bin/bash

root@ACER:/etc# cat /etc/group | grep freak
freak:x:1001:

Но пользователь freak уже удалён из группы freak!
Закрываю все терминалы, где залогинен freak...
Код:
root@ACER:/etc# deluser freak
Удаляется пользователь «freak» ...
Предупреждение: в группе «freak» нет больше членов.
Готово.

root@ACER:/etc# cat /etc/passwd | grep freak
root@ACER:/etc#

Всё!
Нет такого пользователя...


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
 Заголовок сообщения: Re: теневые пароли
Непрочитанное сообщениеДобавлено: 12 июн 2019, 01:18 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11870
Откуда: Харьков
Всё это кино с генерацией хешированных значений для паролей внятно описано:

- Генерация хеша для /etc/shadow в Debian
Цитата:
вторник, 15 ноября 2011 г.


- Ручная генерация содержимого shadow файла на примере Debian 6 Squeeze
Цитата:
пятница, 7 октября 2011 г.


- Защита с помощью пароля в Linux: файл /etc/shadow
Цитата:
21.02.2015


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.182s | 17 Queries | GZIP : On ]