Самое первое, что следует сделать при удачном входе, – это проверить, нет ли сейчас админа в системе. Команда 'who' позволяет узнать всех пользователей, работающих с системой в данный момент. Таким образом, если root уже зарегистрирован, то хакеру лучше уйти. Действовать дальше нужно только в том случае, если root на своем рабочем месте не обнаружен ;-). Следующий этап – разобраться с системой логирования и регистрации пользователей сервера. Я знаю администраторов, которые так опасаются за свой сервер, что создали скрипт, который при входе root в систему сразу отправляет администратору сообщение на мобильник, в котором содержится время входа, IP-адрес, с которого произошла регистрация, и номер виртуальной консоли, на которой работает сейчас суперюзер. Кроме этого, если не будет подтверждена регистрация, то сеанс завершится через определенный промежуток времени! Реализовано это с помощью следующего скрипта: при входе он создает определенный файл, и, если он не будет удален через некоторое время, программа считает, что произошел взлом сервера и скидывает псевдоадмина с терминала, отправляет предупреждение о критической ситуации настоящему администратору на мобильник. Поэтому сразу при входе нужно внимательно изучить содержание домашнего каталога и просмотреть все файлы, отвечающие за регистрацию. Их имена зависят от оболочки-интерпретатора. Затем – изучение лог-файлов и их очистка. Это первые шаги. Я не случайно так подробно описал одну из ловушек администратора – атакующий должен быть готов ко всему и очень хорошо знать атакуемую ОС. Без этого любой админ сможет рано или поздно вычислить и наказать взломщика. При любых действиях в системе следует анализировать результат предельно внимательно.
Даже невинное создание папки в каталоге /tmp может выдать атакующего с потрохами (это очень просто реализуется встроенными средствами аудита ФС).
Поэтому если ты создаешь рабочий каталог для себя, то после окончания сразу удаляй и чисти логи всех операций. Самое главное – это научиться думать, как администратор хоста, причем как грамотный администратор. Если взломщик недооценивает противника, рано или поздно он будет пойман. Поэтому бди!
Никогда не следует менять пароль на учетную запись root. Это самое большое желание малограмотных скрипткидисов. Думая, что, сменив рут-пароль, они заблокируют доступ к серверу законного администратора, они очень глубоко ошибаются. Если админ не сможет с утра войти в систему – Linux не захочет опознать его пароль, то возможны два варианта. Если опыта и знаний немного, то он посчитает, что просто забыл ключ. Если же админ – матерый малый, то он сразу же узреет во всем атаку и будет восстанавливать пароль, параллельно усилив защиту до такого уровня, что любой скрипткиди скорее прохачит общественный сортир, чем его хост ;-). Кстати, процедура восстановления пароля предельно проста: загружаемся с CD или дискеты, монтируем разделы сервера, смотрим /etc/passwd, удаляем запись пароля root, отмонтируем винт, ребутимся в Linux, логинимся с пустым пассом. Таким образом, 10-минутная остановка сервера стоит тебе бессонной ночи и утраты этого сервака – при восстановлении пароля защита будет усилена.
Не рекомендую добавлять пользователей на взломанную систему. Просто очень многие администраторы опасаются за безопасность своего хоста и ставят ловушку на команду «adduser», которая отправляет сообщение на почту всякий раз при создании аккаунта пользователя, да и это еще не все. Некоторые сервера имеют сильную связь с остальными машинами сети: например, хакер взломал Dial-in сервер провайдера, добавил своего пользователя, прописал скрипты, выдержал паузу и захотел попользоваться плодами своего труда. Но не тут-то было: сервер его пускает, но при попытке запуска сессии PPP процесс умирает по тайм-ауту. Причина проста до безобразия – машина, принимающая звонки, не имела на своем хосте базы пользователей! Весь биллинг был на отдельном сервере, который и записывал в логи подозрительные запросы на несуществующего пользователя. После нескольких таких ошибок админ получил письмо с вырезкой лог-файла. И, как следствие, хакер лишился доступа на Dial-in. Поэтому не повторяй чужих ошибок и никогда не добавляй пользователя, не разобравшись, как устроен весь механизм взаимодействия серверов. Не ставь руткитов, не изучив сервер полностью. Это грозит полной утратой аккаунта – ночные проверки безопасности, постоянные лог-анализы, сравнение хеш-функций у основных утилит гарантированно выдадут действия взломщика. Чтобы этого не случилось, изучай систему как можно тщательней. Кроме этого, категорически запрещается убивать процессы сервера. Даже такой вредный и опасный для хакера демон, как syslog, должен крутиться в системе, когда он что-то там делает. Причина банальна – очень часто при остановке критических процессов они перезапускаются, а, если падают и во второй раз, – отправляют сообщение админу на мобильник, в котором приведена информация о том, что случилось, кто и откуда работает в системе, что делает и т.д. Как нельзя убивать чужие сервисы, так нельзя и запускать своих демонов на сервере. Точнее, это делать можно и нужно, но только после установки соответствующих руткитов, которые смогут скрыть активность левых приложений на хосте.
Если взломщик надеется подольше удержать за собой максимальные права на Linux-сервере, то он должен постараться выполнить еще несколько действий. Самое главное – это изучить всю систему и найти «закладки»: программы и скрипты, установленные администратором сервера, предназначенные для поиска и ликвидации взломов. Наиболее популярны для Linux-серверов на сегодня скрипт, который следит за подтверждением входа (следует искать в /root файл конфигурации оболочки пользователя) и скрипты проверки хеш-суммы всех утилит системы. Чаще всего они запускаются с помощью cron от root, поэтому следует внимательно изучать вывод команды crontab. Если не будет найдено никаких подозрительных записей для cron, то взломщику чаще всего необходимо изучить /var/log. Именно этот каталог содержит результаты всех проверок, если они существуют, и в нем легко можно обнаружить отчеты ловушек админа. Просмотрев журнал, следует подумать об установке руткита, если, конечно, на хосте не установлена программа-ревизор. Ну а после успешного инсталла все становится проще: патченые утилиты будут прикрывать тебя и твои процессы в нужный момент, а админ будет спать спокойно, не зная, что его сервера находятся под чужой властью :-). Если же администратор попался грамотный и установил все возможные ловушки-анализаторы, то тут необходимо действовать крайне осторожно.
Учти, что даже банальный запуск mc вызовет изменения времени доступа на некоторых файлах.
Чтобы удержаться на таком защищенном хосте, необходимо быть предельно внимательным, забыть про всякие утилиты-помощники и всегда чистить логи своих действий. Причем обязательно нужно следить за программой-ревизором, то есть перед ее запуском на сервере не должно быть никаких следов действий хакера, как и самого взломщика не должно быть в системе :-). Общеизвестное правило – чем дольше изучаешь систему перед установкой каких-либо своих прог, тем больше шансов воспользоваться этими софтинами в будущем. Так складывается ситуация, что хакер встает на борьбу не только со знаниями админа, но и со всевозможными ловушками, чаще всего написанными крупными IT-специалистами.
Linux был, есть и будет той единственной системой, в которой хакер чувствует себя предельно просто и комфортно. Но пингвин – птица гордая, пока не пнешь, не полетит. Поэтому тем, кто действительно хочет понять всю силу и удобство Linux, прямая дорога в мир source-base дистрибутивов. Только там, пройдя через бессонные ночи, килограммы манов, ты познаешь счастье, которое позволит тебе понимать мир хакеров.