Как зайти под root без пароля

Специалисты по компьютерной безопасности привели довольно известный фокус получения root-доступа без знания пароля, чтобы вновь поднять вопрос: так ли уж безопасен Linux?

Сперва кратко напомним в чем заключается фокус. Включаем компьютер и дожидаемся появления стандартного меню загрузчика GRUB.

Меню GRUB

Нажимаем на клавиатуре клавишу «e» и тем самым переводим GRUB в режим исполнения команд. В появившейся командной строке добавляем в конце цифру «1». Нажимаем «Enter» и затем «b» (boot — загрузка).

Перевод GRUB в командный режим

Цифра «1» передается ядру в качестве параметра, который потом запустит процесс инициализации init 1. В результате, пользователь получает загруженную в однопользовательском режиме ОС с правами суперадминистратора. Остается задать команду passwd для того, чтобы сменить пароль, перегрузиться и стать безраздельным властелином компьютера. Вот и весь фокус.

init 1 загружает ОС в однопользовательском режиме
От такого простого способа получить полный доступ к компьютеру в шоке даже видавшие виды пользователи Windows.

Защититься от такого вмешательства можно установив пароль на GRUB, но эта операция немного запутана и справится с ней далеко не каждый пользователь, не говоря уже о новичках.

Есть и иные способы получить root-доступ, причем их довольно много. Учитывая это, можно ли согласиться с утверждением некоторых энтузиастов, что Linux является одной из самых безопасных операционных систем?

Необходимость ввода пароля в Linux не остановит даже ребенка
Необходимость ввода пароля в Linux не остановит даже ребенка

Дистрибутивы: 

Комментарии

comrade аватар

Можно и не менять пароль, а с LiveCD загрузиться, и что надо прочитать-записать-подменить.

Если есть опасения подобных вмешательств извне, надо линукс на зашифрованный раздел ставить.

Это давно известно: если есть физический доступ к компу, получение прав администратора - дело техники.

уязвимость? или черный ход на случай если забыл пароль root ?
у меня был подобный случай, принесли ноут с kubuntu 10.4 и разумеется пароль администратора никто не знает, тогда спасло то что загрузка в безопасный режим с правами root присутствовала в меню grub.

Я частично согласен с ораторами, что "это не баг, а фича". Но все же лучше закрыть всё паролем. Помню, на работе многие этим баловались, подходили с компу товарища, загружались и прописывали в автозагрузке netcat с башем на каком-нибудь неожиданном порту. А потом устраивали "шутки", типа запуска у соседа порнороликов на всю громкость.

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

Я правильно понял, что этот фокус актуален только в случае непосредственного физического доступа к ПК.
Как любознательный нуб с нетерпением ожидаю от сеньора Помидора how-to о том как защитить паролем GRUB. Заранее премного благодарен.
Ваш постоянный читатель и простой учитель информатики(активно осваивающий ALT "Школьный")

по поводу осваивания школьного линукса могу лишь посочувствовать, а на счет установки пароля на GRUB лучше спросить в ALT сообществе там они точно подскажут.

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

Можно запаролить изменение 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

omg, спасибо огромное!!!
можно это как отдельную статью сделать, чтобы удобно находить было, а то пропадет в комментариях.

Бложик показал фигуру из трех пальцев, но если админы выделят сообщение в отдельную тему - я не против.
Смысла для отдельной статьи не вижу: объем информации маловат.

P.S.: Grubpassом лично не пользовался, поэтому ничего больше за него сказать не могу.

Под такое дело и premium-аккаунт выделить не жалко :)

Требуется пояснение, что потребуется ввести не только сам пароль, но и имя пользователя (root в примере). причём ни пароль, ни имя пользователя никак не связаны с системными. Так же комендую ознакомиться с такой опцией как --unrestricted

А я Вам советую в подобных комментах указывать к какой части поста он относится.

Комментарий про --unrestricted естественно относиться к ручному варианту настройки grub2, а если ещё точнее, то к настройке пунктов меню. Подробнее: gnu.org/software/grub/manual/grub.html#Security

Кстати, пароль можно и в открытом виде задавать: gnu.org/software/grub/manual/grub.html#password

Загрузка в single-user mode присутствует в меню загрузчива по умолчанию.
Хотел написать про /etc/ttys console insecure, предотвращающее беспарольный вход в систему в однопользовательском режиме, но оказалось, что в линуксе такого нет. :)

Комментировать

Filtered HTML

  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.