Книга: Linux глазами хакера

14.9.1. Осведомлен, значит защищен

14.9.1. Осведомлен, значит защищен

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

Итак, в чем заключается мой метод? Войдя в систему, хакер всегда оглядывается и старается найти способ укрепиться в системе, чтобы оставаться долгое время незаметным для администратора. Для этого взломщик чаще всего выполняет команды who, su, cat и др. Ваша задача установить на них ловушки. Например, можно изменить код программы su так, чтобы сразу после ее выполнения администратору направлялось письмо.

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

Если вы не умеете программировать, можно обойтись и средствами самой ОС. Допустим, что вы хотите получать сообщения каждый раз, когда выполняется команда who. Взломщик часто выполняет такую директиву, когда входит в систему, чтобы узнать, есть ли там администратор. Определить место расположения программы можно командой:

which who

В результате вы должны увидеть путь типа /usr/bin/who.

Для начала запоминаем права на файл, выполнив команду:

ls -al /usr/bin/who

Для данной программы должны быть права -rwxr-xr-x, что соответствует числу 755.

Теперь необходимо переименовать файл /usr/bin/who в /usr/bin/system_who. Это можно сделать следующей командой:

mv /usr/bin/who /usr/bin/system_who

Меняем права доступа:

chmod 755 /usr/bin/system who

Теперь, чтобы выполнить команду who, нужно использовать имя system_who. Но скопированный файл может стать неисполняемым, поэтому второй командой мы восстанавливаем права.

Затем создаем заглушку для программы who. Это будет файл с именем who, в директории /usr/bin. Когда хакер будет выполнять команду who, то будет запускаться наш файл. Для этого выполним команду:

cat /usr/bin/who

Теперь все команды, вводимые с консоли, будут записываться в файл /usr/bin/who. Наберите две строки:

/usr/bin/system_who
id | mail -n -s attack root@FlenovM

После этого нажмите сочетание клавиш <Ctrl>+<D> и измените права на созданный нами файл /usr/bin/who, установив значение 755.

Выполните команду who. Все вроде нормально, но если проверить почту, то в вашем ящике будет лежать новое письмо с заголовком "attack" (рис. 14.3), и в нем будут находиться параметры (все, что вернет команда id) пользователя, выполнившего команду. Это из-за того, что запустилась не системная команда, а наш файл, который содержит две строки:

? /usr/bin/system_who — сначала запускаем системный файл who, который мы переименовали, чтобы взломщик ничего не заподозрил;

? id | mail -n -s attack root@FlenovM — выполняется команда id, а результат направляется с помощью почтовой программы mail в почтовый ящик root@FlenovM. Ключ -s задает заголовок письма. Ключ -n предотвращает чтение файла /etc/mail.rc. Я рекомендую указывать только эти атрибуты, чтобы на экране не появлялось лишней информации, и взломщик ничего не заподозрил. Хакер не должен знать, что программа отправила администратору какое-нибудь сообщение.


Рис. 14.3. Пример сообщения об атаке

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

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

cat /usr/bin/who

Вот тут и проявляется недостаток использования сценариев — их можно просмотреть. Программы, написанные на языке С и откомпилированные в исполняемый файл, при просмотре обнаруживают абсолютно ни о чем не говорящий мусор.

Оглавление книги


Генерация: 1.244. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз