Как зайти в ubuntu без пароля и логина

Обновлено: 06.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Если вы не можете войти в систему Linux из-за того, что забыли пароль учётной записи пользователя, то не всё потеряно! Хотя этот пароль нельзя узнать (простыми методами), но его можно сбросить и заменить на новый, данная инструкция расскажет, что делать, если забыли пароль пользователя в Linux.

Как поменять пароль для пользователя Linux

Любые пользователи из группы администраторов (чей аккаунт входит в группу wheel) могут поменять пароль для любого другого пользователя – как для непривилегированных учётных записей, так и для других администраторов, в том числе для root’a. Т.е. если вы забыли пароль root, но помните пароль пользователя, имеющего право на выполнение команд с sudo, то пароль может восстановить командой passwd. Чтобы поменять пароль пользователя root выполните:


Чтобы поменять пароль любого пользователя выполните:

Где вместо имя_пользователя нужно подставить имя учётной записи пользователя Linux.

Что делать если забыт пароль от входа Linux

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

В однопользовательском режиме для входа не спрашиваются учётные данные (логин, пароль), при этом вошедший обладает правами суперпользователя. В данном режиме, используя знакомую команду passwd, есть возможность задать новый пароль.

Алгоритм во всех дистрибутивах Linux схож:

  1. Прерывание работы загрузчика GRUB
  2. Добавление опции загрузки, включающей однопользовательский режим
  3. Возобновление загрузки
  4. Изменение пароля командой passwd
  5. Перезагрузка в обычном режиме

Обратите внимание, что изменения, внесённые на втором шаге (изменение опций загрузки), являются временными – действуют только на одну последующую загрузку. Поэтому при перезагрузке на пятом шаге не нужно ничего предпринимать – система включится в обычном режиме.

Для перемещения в конец строки и в начало строки (на втором шаге) используйте сочетания клавиш Ctrl+a и Ctrl+e.

Хотя алгоритм сброса пароля root схож, но в различных дистрибутивах могут быть свои нюансы, рассмотрим их подробнее.

Примечание для UEFI: Если у вас используется UEFI вместо GRUB, то смотрите также эту статью, в ней рассказано, как изменить опции загрузки в этом случае.

Кстати: если вы хотите защитить систему от смены пароля, описанного в этой статье, смотрите материал «Как защитить загрузчик GRUB паролем».

Сброс пароля в Linux Mint, Ubuntu, Debian, Kali Linux (также должно работать для других производных Debian)

Чтобы прервать загрузку GRUB (первый шаг) во время запуска компьютера нажмите и удерживайте клавишу SHIFT – это работает всегда, даже на Linux Mint, где по умолчанию показ меню GRUB отключён.

Остановите загрузку удерживая клавишу SHIFT при запуске компьютера, вы увидите:


Нажмите клавишу «e» и вы перейдёте к редактированию настроек загрузки:


На экране отсутствует нужная нам строка, пролистните курсорными клавишами вниз и найдите строку, начинающуюся с linux:


Перейдите в конец этой строки, поставьте пробел и допишите:

Должно получиться примерно так (номер ядра может отличаться):


Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.

Вы увидите приглашение оболочки, также обратите внимание, что мы вошли как root, т.е. у нас имеются повышенные привилегии, в том числе на использование команды passwd:


Командой passwd меняем пароль, как можно увидеть, команда passwd завершилась ошибкой:


Чтобы понять причину ошибки, введём команду:


Буквы ro говорят о том, что файловая система смонтирована только для чтения и по этой причине сделанные изменения не могут быть сохранены. Перемонтируем файловую систему:

Как видим, после этого смена пароля прошла успешно:


Для выхода наберите:

Чтобы выключить компьютер выполните:

Или перезагрузите компьютер командой:

Как сбросить пароль в Arch Linux, BlackArch (а также в других производных Arch Linux)

Во время появления меню GRUB нажмите клавишу «a», чтобы остановить загрузку:


Затем нажмите «e» для перехода к редактированию параметров загрузки:


На экране отсутствует нужная нам строка, пролистните курсорными клавишами вниз и найдите строку, начинающуюся с linux.

Перейдите в конец этой строки, поставьте пробел и допишите:

Должно получиться примерно так:


Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.

В Arch Linux файловая система по умолчанию монтируется с правами на запись. Поэтому можно сразу перейти к смене пароля с помощью команды

Для выхода наберите:

Чтобы выключить компьютер выполните:

Или перезагрузите компьютер командой:

Сброс пароля в RHEL/CentOS 7

Кроме необходимости смонтировать файловую систему для запиши, в RHEL/CentOS 7 также имеется особенность, связанная с наличием SELinux.

Во время появления меню GRUB нажмите клавишу «a», чтобы остановить загрузку:


Затем нажмите «e» для перехода к редактированию параметров загрузки:


На экране отсутствует нужная нам строка, пролистните курсорными клавишами вниз и найдите строку, начинающуюся с linux16:


Найдите часть строки

Должно получиться примерно так:


Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.

Проверим права на запись:


Как можно убедиться, права на запись отсутствуют. Перемонтируем файловую систему с правами записи:

Пароль изменён, но дело ещё не закончено. Нам нужно переобозначить контекст SELinux. Если мы не выполним переобозначение всего контекста SELinux, мы не сможем войти используя новый пароль. Для этого:


Для выхода наберите:

Чтобы выключить компьютер выполните:

Или перезагрузите компьютер командой:

Что такое группа wheel в Linux

Применительно к компьютерам, термин wheel относится к учётным записям пользователя с битом wheel – системному параметру, который предоставляет дополнительные специальные системные привилегии, которые позволяют пользователю выполнять команды для служебного пользования, к которым обычные пользователи не могут получить доступ. Этот термин происходит от сленговой фразы big wheel (букв. «большое колесо»), отсылающего на человека с большой властью или влиянием. Он был впервые использован в этом контексте в отношении операционной системы TENEX, позже распространенной под названием TOPS-20 в 1960-х и начале 1970-х годов.

Этот термин был принят пользователями Unix в 1980-х годах из-за движения разработчиков операционной системы и пользователей от TENEX/TOPS-20 к Unix.

Современные системы Unix обычно используют группы пользователей в качестве протокола безопасности для управления правами доступа. Группа wheel – это особая группа пользователей, используемая в некоторых системах Unix для управления доступом к команде sudo, которая позволяет пользователю маскироваться как другой пользователь (обычно суперпользователь).

Что такое однопользовательский режим в Unix

Однопользовательский режим – это режим, в котором многопользовательская компьютерная операционная система загружается в одиночного суперпользователя. Этот режим в основном используется для обслуживания многопользовательских сред, таких как сетевые серверы. Для некоторых задач может потребоваться эксклюзивный доступ к общим ресурсам, например, запуск fsck в сетевом ресурсе. Этот режим также может использоваться в целях безопасности – сетевые службы не запускаются, что исключает возможность внешних помех. В некоторых системах потерянный пароль суперпользователя можно изменить, переключившись на однопользовательский режим. Поскольку при входе в этот решим не запрашивается никакой пароль, это можно рассматривать как уязвимость безопасности.

Unix-подобные операционные системы обеспечивают однопользовательский режим работы либо с помощью уровня выполнения в стиле System V, либо с загрузчиками в стиле BSD, либо с другими параметрами загрузки.

Уровень выполнения обычно изменяется с помощью команды init, уровень выполнения 1 или S будет загружаться в однопользовательский режим.

Параметры загрузчика могут быть изменены во время запуска перед выполнением ядра. В FreeBSD и DragonFly BSD он может быть изменен перед перезагрузкой системы с помощью команды nextboot -o "-s" -k kernel, и ее загрузчик предложит возможность загрузки в однопользовательском режиме. В Solaris команда

приведет к перезагрузке в однопользовательском режиме.

В GRUB 2 нельзя изменить пароль в однопользовательском режиме?

В официальной документации Red Hat мне встретилось утверждение, что в GRUB 2 больше не выполняется сброс пароля в однопользовательском режиме, как это было в GRUB. И что теперь для работы в однопользовательском режиме, а также в аварийном режиме требуется пароль рута. Возможно, это применимо только к последним версиям Red Hat Enterprise Linux, поскольку, как видно из этой инструкции и скриншотов, в GRUB 2 можно изменить пароль в однопользовательском режиме. В документации, на которую дана ссылка, описано два способа сброса пароля root в Red Hat Enterprise Linux на тот случай, если описанный здесь метод не сработал.

image

Сегодня поговорим о том, как мы нашли локальную авторизацию без пароля в Ubuntu, которая, похоже, никогда не будет закрыта. Как всё происходило, читайте под катом.

Одним прекрасным летним вечером автор статьи закрыл крышку рабочего ноутбука с Ubuntu 16.04 Desktop на Unity и отправился домой. Вечер был настолько прекрасен, что я решил взять пару дней отпуска, бросил СМС начальнику, и он меня отпустил.

Как оказалось, не у всех моих коллег этот вечер был таким же прекрасным. У c4n сломался ноутбук, поэтому он попросил одолжить ему мой, но с его жестким диском. Я, конечно, разрешил.

С этого и началось наше увлекательное расследование.

Что произошло?

Утром следующего дня c4n разобрал мой ноутбук и вставил туда свой жесткий диск. Он открыл крышку и увидел вместо начала загрузки своей ОС окно входа в мою систему. Оно было кликабельно, и c4n начал вводить случайные пароли, однако, всё безуспешно. Расстроившись, он нажал на кнопку выключения, и тут произошло чудо.

Вместо перезагрузки компьютера был выполнен успешный вход в мою систему, а также были показаны последние открытые мной программы и документы. Стоит отметить, что документы не просто были показаны, они вполне себе работали! Можно было скроллить по документам и ходить по вкладкам браузера. c4n тут же скинул мне скриншот.

image


На самом деле скриншот был другой. Я, уходя с работы, не оставляю открытый KeePass и сайт компании.

На лицо локальная авторизация без пароля!

Когда я вышел из отпуска, мне стало интересно, что является виной этого явления, всегда ли воспроизводится и всегда ли воспроизводится одинаково, на всех ли системах воспроизводится.

Причины

Как оказалось, виной данного явления было то, что при закрытии крышки мой ноутбук уходил не в гибернацию, а в сон (т.е. оставлял питание на оперативной памяти), а после открытия крышки в оперативной памяти оставалась загруженная ОС и последние файлы, с которыми я работал. ОС ничего не знает о том, что из компьютера вынули жесткий диск, и продолжает работать, пока не понадобится обратиться к жесткому диску.

Почему удаётся пройти авторизацию, для нас осталось загадкой. Мы грешим на работу модулей PAM (Pluggable Authentication Modules), которые, вероятнее всего, не находятся в оперативной памяти, а Ubuntu 16.04 неправильно обрабатывает их отсутствие, но потом поняли, что проблема в чём-то другом.

Всегда ли воспроизводится и всегда ли одинаково?

Наши эксперименты начались с Ubuntu 16.04. Действия были следующие:

  1. Отправляем компьютер в спящий режим.
  2. Вынимаем жесткий диск.
  3. Выводим компьютер из спящего режима.
  1. Компьютер показывает окно входа, вводим случайный пароль => видим окна пользователей перед слипом (все окна рабочие).
  2. Компьютер показывает окно входа, вводим случайный пароль => система говорит, что пароль неверный => однократно нажимаем кнопку питания => видим окна пользователей перед слипом (все окна рабочие).
  3. Компьютер показывает черный экран (по нему бегает курсор), нажимаем случайные клавиши и Enter => видим окна пользователей перед слипом (все окна рабочие).
  4. Компьютер показывает черный экран (по нему бегает курсор), нажимаем случайные клавиши и Enter => ничего не происходит => однократно нажимаем кнопку питания => видим окна пользователей перед слипом (все окна рабочие).

Эксперимент проводился много раз, и все разы удавалось получить доступ к окнам пользователя, т.е. воспроизводимость равна 100%. Это очень круто для такого странного бага. Правда, стоит отметить, что доступны только активные окна, переключиться на свёрнутые окна нам не удалось. Также некоторые окна исчезали спустя время, а иногда наблюдался эффект разлогинивания, но один из четырех способов входа позволял вернуться обратно.

Мы сняли небольшое видео, которое демонстрирует весь процесс атаки.

На всех ли системах воспроизводится?

Условием тестирования было наличие всех последних обновлений на системе. Зачем нам бага, которую давно закрыли?

Для начала было решено проверить воспроизводится ли баг на обычных ПК (не ноутбуках) с Ubuntu 16.04 с Unity. Была теория, что показ окон может быть как-то связан с видеокартой. Поэтому проверка осуществлялась с ПК как с интегрированной, так и с дискретной видеокартой, во всех случаях результат был один и тот же – бага отлично отрабатывает.

Дальше была взята Ubuntu 16.04 с GNOME. И тут нас ждало разочарование: бага не отрабатывала. Иногда, при выходе из слипа, система на полсекунды показывала последние окна (вполне реально заснять на видео), про это исследователи сообщили ещё в 2011 году, и она не закрыта до сих пор.

Дальше мы взяли Arch с Wayland и Xorg — разочарование, не работает. Debian 9 c GNOME и опять разочарование. Также не отработало на новой Ubuntu 18.04 — не удивительно, ведь к этому времени мы уже стали подозревать, что проблема в Unity. Поэтому решили для последних тестов взять Ubuntu 14.04, а еще посмотреть, что произойдёт с Ubuntu 18.04, если поменять оконный менеджер с GNOME на Unity. На Ubuntu 14.04 все хорошо отработало (хотя время жизни окон было значительно меньше, чем на 16.04). На Ubuntu 18.04 с Unity после выхода из слипа система сразу падает, и никакие эксперименты дальше провести нельзя.

Вывод: мы решили, что уязвимы версии Ubuntu с нативно установленной Unity, т.е. версии

  • 10.10
  • 11.04
  • 11.10
  • 12.04
  • 12.10
  • 13.04
  • 13.10
  • 14.04 (протестировано нами)
  • 14.10
  • 15.04
  • 15.10
  • 16.04 (протестировано нами)
  • 16.10 (протестировано нами)
  • 17.04 (протестировано нами)

Почему мы считаем, что это плохо

Уязвимость позволяет получить только локальный доступ к данным, и то не ко всем, а лишь к тем, что открыты в приложениях и развернуты. Однако, это все равно довольно критично, поскольку:

  1. Используемые данные могут быть не сохранены на диск (например, редактируемый документ).
  2. Данные могут находиться в шифрованной домашней директории (например, файлик с паролями).
  3. Данные могут быть на шифрованной флешке.
  4. Данные могут требовать дополнительной авторизации (как в нашем PoC с KeePass).

Скептики скажут, что подобного результата можно легко добиться, проведя cold boot атаку, а результаты буду даже лучше, но как часто кто-то из вас носит с собой термос с парой литров жидкого азота?

Мы решили, что проблема критичная и надо писать в Ubuntu.

Как мы пишем в Ubuntu

image

Попытки переубедить не увенчались успехом. Нас отправили в тотальный игнор на неделю. После чего нам дали разрешение публиковать данное исследование:

image

UPD: 9 июля 2018 года, в 16 часов мы решили сделать багу публичной (спасибо amarao). В обсуждении на launchpad багу подтвердили для Mate 18.04, а не только для Unity. Также сообщество настаивает, что бага существует и её не стоит игнорировать.

При загрузке в Linux сначала запускает менеджер отображения (Display Manager), который просит нас ввести имя пользователя и пароль, и в случае ввода верных данных, он запускает окружение рабочего стола.

Настройка автоматического входа в Linux чуть различается в зависимости от того, какой именно менеджер отображения вы используете. Самые популярные это GDM и LightDM.

То есть настройку входа в Linux без пароля нужно начать с определения, какой именно запущен Display Manager.

Как узнать какой используется менеджер отображения

Для этого выполните команду:

Будет выведена примерно следующая информация:


Информация о менеджере отображения содержится сразу в нескольких местах, например, в первой строке GNOME Display Manager — это полное название GDM.

Таким образом, у меня это GDM. У вас может быть, например, LightDM.

Автоматический вход в GDM

Для включения автоматического входа с GDM, добавьте в файл /etc/gdm/custom.conf

следующие строки (замените имя_пользователя на ваше собственное имя в системе):

Настройка входа без пароля

Если вы ходите, чтобы запрос ввода пароля не появлялся в GDM, тогда добавьте следующую строку в начало файла /etc/pam.d/gdm-password:

Затем добавьте группу nopasswdlogin в вашу систему. Для этого выполните

Теперь добавьте своего пользователя в группу nopasswdlogin:

После этого вам будет достаточно кликнуть на вашем имени пользователя для входа.

Предупреждения:

  • Не делайте это с аккаунтом root.
  • Вы больше не сможете изменить тип вашей сессии при входе в GDM. Если вы хотите поменять ваш тип сессии по умолчанию, вам нужно сначало удалить вашего пользователя из группы nopasswdlogin.

Автоматический вход в LightDM

Для автоматического входа в LightDM откройте конфигурационный текстовый файл /etc/lightdm/lightdm.conf:

Найдите там раздел [Seat:*] (или может называться [SeatDefaults]), а в этом разделе две закомментированные строки:


Если вы не знаете или забыли имя пользователя системы Linux, то вы можете узнать его выполнив в терминале команду:

Если файл lightdm.conf вовсе отсутствует, то создайте его:

Скопируйте в этот файл:

Обратите внимание на директиву autologin-user и имя пользователя, которое идёт за ней – mial. Вам, конечно, нужно заменить это имя на собственное имя пользователя системы.

Теперь откройте файл /etc/pam.d/lightdm-autologin:

Найдите там строку:

и замените её на::

Перезагрузитесь — после этого должен выполняться автоматический вход без ввода пароля.

Если не сработало, для проверки, применяются ли настройки из конфигурационного файла lightdm.conf выполните команду:

Настройка автоматического входа в XFCE

Рассмотрим вариант включения автоматического входа, когда рабочим столом является XFCE, а менеджер отображения — LightDM.

Откройте файл /etc/lightdm/lightdm.conf и отредактируйте (не забудьте раскомментировать) или просто добавьте строки:


В этих строках нужно заменить заполнитель ИМЯ_ПОЛЬЗОВАТЕЛЯ на имя вашего пользователя. Если вы не знаете имя пользователя, то вы можете проверить его командой:

Также нужно создать группу autologin и добавить в неё вашего пользователя:

Решение:
Убрать пароль в seahorse и удалить его с помощью passwd: sudo passwd -d username


А тогда встречный вопрос: Как cделать так, чтобы разблокировалась связка ключей при автоматическом входе?


Убрать пароль в программе seahorse


Если имеется в виду убрать пароль у юзера, то у passwd для этого есть ключ -d



Да, возможно это решит проблему с разблокировкой связки. А как сделать вход без пароля?

sudo apt install nodm


Suntechnic ★★★★★ ( 09.09.19 17:40:59 )
Последнее исправление: Suntechnic 09.09.19 17:41:12 (всего исправлений: 1)


А это таки сработало!



а поиск пробовал использовать

Просто удалить пароль у пользователя.
Можно так же убрать начальный экран (DM) и сделать автоматический вход через xinit. Т.к. если не нужен пароль, то зачем вообще нужен DM?


Сколько раз еще нужно повторить?


Можно так же убрать начальный экран (DM) и сделать автоматический вход через xinit. Т.к. если не нужен пароль, то зачем вообще нужен DM?

Я видимо мало все таки раз повторил :'(

Хорошо, предположим я сделаю как ты сказал. Под каким пользователем мне входить и кто у меня спросит пароль при входе?

Ты слышал о такой ситуации, когда компьютером пользуется не один человек, а скажем 4?

А прикинь если два из них просто юзеры которым лень вводить пароль и два админы, которым пароль необходим. Да, так бывает.

Но в целом совет правильный - оказывается надо просто удалить пароль у пользователя.

Читайте также: