Posted by
Накукрыскин in
Linux,
Быдлокодер on
02 27, 2010 |
3 комментария
Тут намедни делать было нечего и я решил пошариться в структуре ОС. В качестве «подопытного» взял centos на виртуалке. Все началось ещё в грабе. Вот вы думаете — поставили линукс и вы мегазащишены? Ан нет! Стоит получить доступ к самому компьютеру (физический или через kvm) начинается самое интересное. Я не рассматривал варианты использования LiveCD (хотя так ещё проще и уже спасет только пароль на биос, который, ко всему прочему скидывается батарейкой), а хотел использовать что-нибудь интересное.
Как известно Linux начинает загрузку с одного из вариантов, которые описаны в файле /etc/inittab, в котором то и находятся правила, которые будут понятны машине что и как грузить.
Так вот. Есть такая «переменная» init. Она содержит в себе ссылку на программу, которая выполняется сразу же при загрузке системы.
Недолго думая меняем в грабе переменную init=/bin/bash:

И в итоге после загрузки ОС получаем полноценного рута. А там дело техники — запустить програмку passwd для смены пароля на рута, сменить пароль, получить полный доступ к машине.
А после того, как мы выйдем из баша — нам конечно же вылезет kernel panic (да, это ещё и самый простой способ получить эту ошибку). Ибо система просто не знает что ей делать без инита.

«Проблема» решается достаточно просто — установкой пароля на grub (или лило). А часто вы ставили пароль на граб после установки? Могу поспорить — нет. Возможно даже никогда.
Второй вариант — загрузиться в однопользовательском режиме. Тут мы так же получаем привелегированный root доступ до машины. С таким же функционалом. Разве что с ограниченностью по сети, но эту проблему можно очень быстро решить.
Второй хак перекрывается редактированием /etc/inittab с отключением всех ненужных режимов загрузки. А какие способы хака линукса знаете вы?