Как зайти под root без пароля
Специалисты по компьютерной безопасности привели довольно известный фокус получения root-доступа без знания пароля, чтобы вновь поднять вопрос: так ли уж безопасен Linux?
Сперва кратко напомним в чем заключается фокус. Включаем компьютер и дожидаемся появления стандартного меню загрузчика GRUB.
Нажимаем на клавиатуре клавишу «e» и тем самым переводим GRUB в режим исполнения команд. В появившейся командной строке добавляем в конце цифру «1». Нажимаем «Enter» и затем «b» (boot — загрузка).
Цифра «1» передается ядру в качестве параметра, который потом запустит процесс инициализации init 1. В результате, пользователь получает загруженную в однопользовательском режиме ОС с правами суперадминистратора. Остается задать команду passwd для того, чтобы сменить пароль, перегрузиться и стать безраздельным властелином компьютера. Вот и весь фокус.
От такого простого способа получить полный доступ к компьютеру в шоке даже видавшие виды пользователи Windows.
Защититься от такого вмешательства можно установив пароль на GRUB, но эта операция немного запутана и справится с ней далеко не каждый пользователь, не говоря уже о новичках.
Есть и иные способы получить root-доступ, причем их довольно много. Учитывая это, можно ли согласиться с утверждением некоторых энтузиастов, что Linux является одной из самых безопасных операционных систем?
Необходимость ввода пароля в Linux не остановит даже ребенка
Комментарии
comrade
17 июня, 2013 - 22:26
Можно и не менять пароль, а с LiveCD загрузиться, и что надо прочитать-записать-подменить.
Если есть опасения подобных вмешательств извне, надо линукс на зашифрованный раздел ставить.
Чингачгук
18 июня, 2013 - 00:02
Это давно известно: если есть физический доступ к компу, получение прав администратора - дело техники.
Чингачгук
18 июня, 2013 - 00:42
уязвимость? или черный ход на случай если забыл пароль root ?
у меня был подобный случай, принесли ноут с kubuntu 10.4 и разумеется пароль администратора никто не знает, тогда спасло то что загрузка в безопасный режим с правами root присутствовала в меню grub.
pomodor
18 июня, 2013 - 03:12
Я частично согласен с ораторами, что "это не баг, а фича". Но все же лучше закрыть всё паролем. Помню, на работе многие этим баловались, подходили с компу товарища, загружались и прописывали в автозагрузке netcat с башем на каком-нибудь неожиданном порту. А потом устраивали "шутки", типа запуска у соседа порнороликов на всю громкость.
Кстати, насколько я помню, в один прекрасный момент вышел дистрибутив, в котором это уже не работало. Не помню какой именно.
Чингачгук
18 июня, 2013 - 12:25
Я правильно понял, что этот фокус актуален только в случае непосредственного физического доступа к ПК.
Как любознательный нуб с нетерпением ожидаю от сеньора Помидора how-to о том как защитить паролем GRUB. Заранее премного благодарен.
Ваш постоянный читатель и простой учитель информатики(активно осваивающий ALT "Школьный")
Чингачгук
18 июня, 2013 - 12:44
по поводу осваивания школьного линукса могу лишь посочувствовать, а на счет установки пароля на GRUB лучше спросить в ALT сообществе там они точно подскажут.
Что же касается всех заявлений, что у линукса найдена глобальная уязвимость, то это все пиар реклама мелкомягких. Любые попытки получить удаленный контроль над компьютером с линукс начинаются с "сам скачал, сам собрал, сам запустил" и то не на всех дистрибутивах такое работает, многие руткиты бекдоры и еще куча хлама выходившие под линукс блокируются уже через пару часов и не под каждом дистрибутивом собираются и работают.
omg
18 июня, 2013 - 15:33
Можно запаролить изменение GRUB2 с помощью Grubpass:
Установка:
sudo apt-get install grubpass
Запуск:
sudo grubpass
Создание пароля для GRUB2:
setpassword
Задаем пароль и пользователя. После создания пароля, вас попросят выбрать записи (в меню GRUB2), которые вы хотите защитить паролем. Команды для выбора отображаются там же, вместе с кратким описанием (можно выбрать ALL — все).
Для удаления пароля запускаем grubpass и удаляем пароль командой:
recover
Можно врукопашную:
Создаем пароль:
# grub-mkpasswd-pbkdf2
Enter password:
Reenter password:
Your PBKDF2 is grub.pbkdf2.sha512.10000.2D4EE33EEE342503888D967084246F3CB9328B9A5C731439FD1AD70E3AB7637FA294942A049546CECBFBCFE8582D1F833B92B18C0F124C1003F766259DFB9BD2.86F1A8963F23E588FF3D04F104E9245858CD12BB8F0A9A8B849B61735E8300D33CD399F28A58AB696E2F7F482ABB93C65B8B79342B94C9C2A7A59DA3AF03B8D8
Полученный хэш добавляем в скрипт из которого генерируется конфигурация grub2. Чтобы не было проблем с конфигом при обновлении пакета, создаем отдельный файл /etc/grub.d/05_password:
#!/bin/sh
set -e
cat << EOF
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.2D4EE33EEE342503888D967084246F3CB9328B9A5C731439FD1AD70E3AB7637FA294942A049546CECBFBCFE8582D1F833B92B18C0F124C1003F766259DFB9BD2.86F1A8963F23E588FF3D04F104E9245858CD12BB8F0A9A8B849B61735E8300D33CD399F28A58AB696E2F7F482ABB93C65B8B79342B94C9C2A7A59DA3AF03B8D8
EOF
Правим права и обновляем конфигурацию GRUB2:
# chown root:root /etc/grub.d/05_password
# chmod 600 /etc/grub.d/05_password
# update-grub
Чингачгук
18 июня, 2013 - 15:53
omg, спасибо огромное!!!
можно это как отдельную статью сделать, чтобы удобно находить было, а то пропадет в комментариях.
omg
18 июня, 2013 - 16:16
Бложик показал фигуру из трех пальцев, но если админы выделят сообщение в отдельную тему - я не против.
Смысла для отдельной статьи не вижу: объем информации маловат.
P.S.: Grubpassом лично не пользовался, поэтому ничего больше за него сказать не могу.
pomodor
18 июня, 2013 - 16:47
Под такое дело и premium-аккаунт выделить не жалко :)
Чингачгук
21 июня, 2013 - 00:51
Требуется пояснение, что потребуется ввести не только сам пароль, но и имя пользователя (root в примере). причём ни пароль, ни имя пользователя никак не связаны с системными. Так же комендую ознакомиться с такой опцией как --unrestricted
omg
21 июня, 2013 - 08:32
А я Вам советую в подобных комментах указывать к какой части поста он относится.
Чингачгук
21 июня, 2013 - 08:54
Комментарий про --unrestricted естественно относиться к ручному варианту настройки grub2, а если ещё точнее, то к настройке пунктов меню. Подробнее: gnu.org/software/grub/manual/grub.html#Security
Кстати, пароль можно и в открытом виде задавать: gnu.org/software/grub/manual/grub.html#password
Чингачгук
5 октября, 2016 - 03:20
Загрузка в single-user mode присутствует в меню загрузчива по умолчанию.
Хотел написать про /etc/ttys console insecure, предотвращающее беспарольный вход в систему в однопользовательском режиме, но оказалось, что в линуксе такого нет. :)
Комментировать