Linux глазами хакера
Шрифт:
3.3.2. Забытый пароль
Что делать, если вы забыли пароль, или хакер проник в систему и изменил его? Действительно, ситуация не из приятных, но все решаемо. Если у вашей учетной записи есть доступ к файлу /etc/shadow, то можно заняться его редактированием, а если нет, то посмотрим, как получить доступ с загрузочной дискеты.
Загрузившись с дискеты, вы должны войти в систему как root и подключить тот жесткий диск (или раздел диска), на котором находится папка /etc. Для этого нужно
Теперь директория /mnt/restore (желательно, чтобы она существовала до выполнения команды) указывает на главный раздел вашего жесткого диска, а файл паролей находится в каталоге /mnt/restore/etc/shadow. Откройте этот файл в любом редакторе и удалите пароль администратора root (просто сотрите весь текст между первым и вторым знаком двоеточия). В моем случае получилось:
Теперь обычным способом загружайте систему и в качестве имени пользователя вводите имя root. У вас даже не спросят пароль, потому что он пустой. Не забудьте поменять пароль, иначе это будет опасно для жизни. Это как электрику работать под высоким напряжением без средств защиты ☺.
Для смены пароля вы должны набрать команду
3.3.3. Модули аутентификации
Аутентификация на основе двух файлов /etc/passwd и /etc/shadow немного устарела и предоставляет нам слишком скудные возможности. Разработчики ядра ОС Linux стараются исправить ситуацию с помощью добавления новых алгоритмов шифрования, но все эти попытки чисто косметические, а нам необходимо кардинальное изменение.
Абсолютно новое решение для реализации аутентификации предложила компания Sun — Pluggable Authentication Modules (РАМ, подключаемые модули аутентификации).
Преимущество модульной аутентификации заключается в том, что не требуется перекомпиляция программы для их использования. Существуют модули для основных методов аутентификации, таких как Kerberos, SecureID, LDAP и др.
Конфигурационные файлы для каждого сервиса, который может использовать РАМ, находятся в директории /etc/pam.d. В большинстве случаев вам не придется создавать эти файлы вручную, потому что они устанавливаются во время инсталляции программы из RPM-пакета. Но вы должны знать их структуру, чтобы можно было изменить какие-то параметры в случае необходимости.
Каждая строка в конфигурационном файле состоит из четырех полей, разделенных пробелами:
□ тип модуля — может принимать одно из следующих значений:
•
•
•
•
□ флаг — определяет параметры модуля. Здесь можно использовать три значения:
•
•
•
□ полный путь к файлу модуля;
□ аргументы модуля.
Рассмотрим пример конфигурационного файла для FTP-сервиса, который находится в файле /etc/pam.d/ftp.
Это и все, что вам необходимо знать. Остальное берет на себя программа сервиса без нашего вмешательства.
3.4. Процессы
Для того чтобы эффективно управлять своим компьютером, вы должны досконально изучить свой сервер и работающие на нем процессы. Взломав ваш сервер, злоумышленник постарается запустить на нем какую-либо программу, которая незаметно будет выдавать хакеру права root в системе. Таких программ в сети великое множество, и к ним относятся различные троянские программы.
Процесс — это программа или ее потомок. При запуске программы создается новый процесс, в котором и работает код. Каждая программа должна функционировать с определенными правами. Сервисы, которые активизируются при старте системы, обладают правами root или nobody (без прав). Программы, которые выполняются из командной строки, наделены правами запустившего пользователя, если не указан SUID- или SGID-бит, при котором программа имеет права владельца.
Существует два основных типа процессов — фоновый (background) и центральный (foreground). Центральный процесс для определенного терминала может быть только один. Например, запустив по команде ls программу man для просмотра помощи, вы не сможете выполнять другие команды, пока не выйдете из программы man.
У тех, кто знаком с программой Midnight Commander, может возникнуть вопрос — а как же тогда работает МС и одновременно в нем можно выполнять команды? Ответ прост, процессы могут порождать другие процессы. То же происходит и в МС, но если его закрыть, то закроются и все порожденные процессы.