Если человек имеет root-доступ к определенному компьютеру RHEL, смогут ли они получить пароль других пользователей?
Если человек имеет root-доступ к определенному компьютеру RHEL, смогут ли они получить пароль других пользователей?
Ответы:
TL; DR: Нет, пароль хранится в виде хэшей, которые (в общем случае) не могут быть восстановлены.
Linux нигде не хранит текстовые пароли По умолчанию . Они хешируются или иным образом шифруются с помощью различных алгоритмов. Так что, в общем, нет, это невозможно с сохраненными данными.
Если у вас есть пароли, хранящиеся где-то, кроме /etc/passwd
базы данных, они могут быть сохранены таким образом, который позволяет это. htpasswd
файлы могут содержать плохо зашифрованные пароли, а другие приложения могут хранить более слабые хеши или пароли в виде простого текста по разным (обычно плохим) причинам.
Кроме того, пользовательские файлы конфигурации могут содержать незашифрованные пароли или слабо защищенные пароли по разным причинам - извлечение почты из другой службы при извлечении почты .netrc
или простые автоматические действия могут включать пароль
Если пароли хешируются или шифруются с использованием более старого, слабого алгоритма (3DES, MD5), можно было бы достаточно разумно эффективно / дешево решить, каким был пароль, - хотя путем атаки на данные, а не просто обращения преобразования. (например: такие вещи, как http://project-rainbowcrack.com/ или http://www.openwall.com/john/ )
Поскольку вы являетесь пользователем root, вы также можете атаковать пароль пользователя на другом уровне - замените двоичный файл для входа в систему, или sudo, или часть PAM и т. Д., На что-то, что захватит пароль при его вводе.
Так что, в частности, нет, но в целом наличие корневого доступа облегчает получение информации о пользователях через различные побочные каналы.
/etc/shadow
, криптографическая хэш - функция , соль и взлом паролей
В отличие от некоторых других ответов здесь, я бы сказал, что простым ответом на этот и многие другие вопросы, которые заканчиваются словами «если у вас есть root», является ДА.
По сути, root может делать на машине все, что может делать сама система. Система может принять ваш пароль, поэтому root может принять ваш пароль или его собственный вместо вашего с достаточным усилием. Что еще более важно, он может просто изменить ваш пароль или стать вами.
В частности, пароли обычно зашифрованы. Обычно это своего рода так называемый «односторонний» алгоритм, который генерирует число (хеш), которое можно использовать для проверки пароля, но, как правило, не для того, чтобы изменить номер и вернуть пароль снова. Таким образом, это не просто чтение файла, чтобы получить чей-то пароль.
Тем не менее, вы МОЖЕТЕ прочитать историю их оболочки и историю входа в систему, где они, скорее всего, в какой-то момент набрали свой пароль вместо своего имени пользователя, либо напечатали его в оболочке вместо запроса пароля. В этом случае это был бы простой текст. Это очень часто встречается на текстовых терминалах, и я не знаю хороших решений.
Однако, даже если оставить эту проблему в стороне, «одностороннее» шифрование на самом деле не является одним из способов. Существует множество инструментов, которые будут проходить через множество комбинаций парольных фраз, шифруя их одним и тем же односторонним процессом, пока вы не найдете подходящий. Затем они знают пароль, который получит доступ (хотя от имени root они УЖЕ имеют доступ на ЭТОЙ машине).
Хуже того, существуют радужные таблицы, которые являются предварительно вычисленными ответами на вышеуказанный процесс: люди уже сгенерировали оригинальный пароль, который приходит из данного зашифрованного пароля. Используя их, это простой поиск - не требующие много времени попытки взлома.
Опять же, доступ на корневом уровне - это то, что нужно защищать. С этим скомпрометированы вся машина и все, что на ней есть. Пришло время начать все сначала, включая информирование всех ваших пользователей о том, что вашему бизнесу больше нельзя доверять для защиты их конфиденциальности. И да, это может означать выход из бизнеса.
Если у вас есть, root
вы можете запустить взломщик паролей /etc/shadow
(предполагая локальные пароли, а не LDAP или Kerberos и т. Д.). Это может быть неэффективно, если они выбирают надежные пароли, а система настроена на использование надежного хеширования паролей. Но системные пароли не хранятся в открытом виде; пароли напрямую недоступны даже для root
.
Все пароли хранятся в /etc/shadow
файле. Вы можете открыть этот файл, используя root-доступ, и просмотреть hash value
эти пароли для каждого пользователя (даже для пользователя root).
Если у вас нет какого-либо программного обеспечения для расшифровки пароля, вы не сможете преобразовать эти значения хеш-функции обратно в обычный текст.
Но, тем не менее, если у вас есть доступ к пользователю root, вы можете изменить пароль любого обычного пользователя, используя следующую команду, и получить доступ к его учетной записи.
root@localhost$ passwd pradeep
Это попросит вас ввести новый пароль, который вы хотите установить для пользователя pradeep
. Таким образом, вы можете изменить passwd на pradeep.
Теперь вы можете получить доступ из своего аккаунта по:
root@localhost$ su pradeep
Это приведет к переключению на пользователя pradeep, и вы получите терминал, подобный этому:
pradeep@localhost$