Пароли являются основным критерием безопасности большинства систем. Если речь идет о Linux, знание пароля root дает вам полный контроль над машиной. Пароли служат мерой безопасности для BIOS, входа в систему, дисков, приложений и многого другого.
Считается, что Linux – одна из самых защищенных от взлома операционных систем, и в целом это так. Однако мы обсудим некоторые уязвимости и возможности использования Linux-системы.
На протяжении всей статьи мы будем использовать RHEL Linux в качестве примера для проверки и взлома безопасности нашей собственной машины.
Отказ от ответственности
Информация, представленная здесь, предназначена только для образовательных целей. Несанкционированный доступ к компьютерным системам является незаконным и неэтичным. Всегда убеждайтесь, что у вас есть разрешение на проведение любых испытаний систем безопасности.
Как получить доступ к серверу Linux без Root-доступа
Когда Linux-машина запустится, нажмите любую клавишу, чтобы прервать процесс загрузки, и вы увидите меню GRUB.

Нажмите e для редактирования, перейдите к строке, начинающейся с kernel, и добавьте rd.break
в конец строки (после пробела), заставляя ее запускаться в режиме аварийного пользователя и тем самым запрещая входить на стандартный уровень выполнения.

После добавления rd.break
в конец строки нажмите Ctrl + X или F10 для загрузки с измененными параметрами ядра в аварийный пользовательский режим.

После перехода в режим аварийного пользователя вы попадете в приглашение оболочки root, где вам нужно перемонтировать корневую файловую систему в режим чтения-записи и перейти в среду sysroot.
mount -o remount,rw /sysroot chroot /sysroot
Далее воспользуйтесь командой passwd
, чтобы сбросить и подтвердить новый пароль root.
passwd

Если приведенная выше команда не работает и вы не получаете никакого результата, это означает, что ваш SELinux находится в режиме принудительного выполнения. Вам необходимо отключить его, прежде чем продолжать.
setenforce 0
Затем выполните команду passwd
, чтобы изменить пароль.
passwd
На этом этапе вы успешно сбросили пароль пользователя root. Осталось только перемаркировать все файлы с точными контекстами SELinux.
touch /.autorelabel
Наконец, введите exit и выйдите из системы, чтобы запустить процесс перемаркировки SELinux.
exit
Обычно этот процесс занимает несколько минут, после чего система перезагрузится и предложит вам войти в систему под именем пользователя root с новым паролем.

Взломать GRUB оказалось на удивление легко, не так ли? Представьте себе панику, если бы кто-то сделал это с вашим сервером. Теперь давайте узнаем, как защитить наш Linux-сервер от несанкционированных модификаций с помощью однопользовательского режима.
Защита паролем однопользовательского режима в Linux
Чтобы защитить паролем однопользовательский режим*, необходимо произвести специальные настройки для предотвращения несанкционированного доступа, что особенно важно для обеспечения безопасности системы, так как однопользовательский режим может предоставить неограниченный доступ к учетной записи root.
Чтобы обеспечить защиту паролем в Single User Mode, необходимо изменить файл rescue.service
.
sudo vi /usr/lib/systemd/system/rescue.service
Найдите строку, которая начинается с ExecStart
. Если в ней нет команды sulogin
, вам нужно добавить или изменить ее, чтобы она выглядела следующим образом.
ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue

После внесения изменений необходимо убедиться, что конфигурация настроена правильно.
grep sulogin /usr/lib/systemd/system/rescue.service
Вывод должен подтвердить наличие команды sulogin
в строке ExecStart
.

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

Взлом системы Linux без использования однопользовательского режима
Итак, вы, возможно, чувствуете себя лучше, зная, что ваша система защищена. Однако это верно лишь отчасти. Хотя это правда, что ваш Linux не может быть легко взломан с помощью однопользовательского режима, есть и другие способы, которыми его можно взломать.
В предыдущем шаге мы изменили ядро, чтобы перейти в однопользовательский режим. В этот раз мы будем редактировать ядро с помощью другого параметра.
В предыдущем процессе мы добавили параметр 1
в ядро для входа в однопользовательский режим, но в этот раз мы добавим init=/bin/bash
, чтобы загрузиться в приглашение bash напрямую.

Вы снова получили доступ к системе, а приглашение подтверждает, что взлом прошел успешно.

Теперь при попытке изменить пароль root с помощью команды passwd
, как и в первом способе, мы столкнулись со следующим.

Причина в том, что корневой раздел / смонтирован как доступный только для чтения, поэтому смена пароля не могла быть сохранена. Решением является перемонтирование корневого раздела с правами на чтение и запись.
mount -o remount,rw / passwd
Теперь снова попробуйте изменить пароль root.

Ура! Вы снова получили успешный доступ к системе Linux. Может показаться, что систему легко использовать, но это не так. Главное – правильно настроить систему, чтобы повысить ее безопасность.
Защита паролем загрузчика GRUB
Оба описанных процесса включают в себя настройку и передачу параметров ядру. Чтобы повысить безопасность вашего Linux-компьютера и сделать его более уязвимым для взлома, вам следует предотвратить модификацию ядра при загрузке.
Этого можно добиться, установив пароль на загрузчик, а именно на GRUB (обратите внимание, что LILO – это другой загрузчик для Linux, но он здесь не рассматривается).
Чтобы защитить паролем загрузчик GRUB, необходимо сгенерировать зашифрованный пароль с помощью следующей команды.
grub2-mkpasswd-pbkdf2

Затем отредактируйте файл конфигурации пользовательского меню GRUB.
vi /etc/grub.d/40_custom
Добавьте следующие строки, заменив <encrypted_password>
на зашифрованный пароль, созданный в предыдущем шаге.
set superusers="root" password_pbkdf2 root <encrypted_password>

Обновите конфигурацию GRUB, выполнив команду:
grub2-mkconfig -o /boot/grub2/grub.cfg

Перезагрузите систему и в процессе загрузки нажмите e для редактирования меню GRUB. Вам будет предложено ввести имя пользователя (root) и пароль, которые вы настроили ранее.

Если вы ввели правильный пароль, вы сможете продолжить редактирование параметров GRUB.

Теперь вы можете быть уверены, что ваша система полностью защищена и не подвержена взлому, однако игра еще не закончена.
Вам лучше знать, что вы можете включить rescue mode, чтобы удалить и изменить пароль с помощью загрузочного образа.
Просто вставьте установочный CD/DVD в привод и выберите Rescue Installed System или используйте любой другой загрузочный образ, смонтируйте HDD и отредактируйте файл 40_custom, чтобы удалить строку с паролем, перезагрузитесь, и вы снова вошли в систему.
Заключение
Это руководство было написано для того, чтобы ознакомить вас с фактами и рассказать о том, как защитить свою систему. itshaman.ru и автор этой статьи настоятельно не рекомендуют использовать это руководство в качестве основы для эксплуатации чужих систем.
Ответственность за участие в подобной деятельности лежит исключительно на читателе, и ни автор, ни itshaman.ru не несут ответственности за подобные действия.
Комментарии (0)