Системный маскарад

Юрий Гольцев

Хакер, номер #080, стр. 080-058-1

(uriy.goltsev@rambler.ru)

Создание элементарного неядерного руткита

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

[начало начал]

Для начала, думаю, следует разобраться, что вообще такое rootkit и чем отличается ядерные руткиты от своих non-keel братьев. Если мыслить несколько абстрактно, то rootkit — это средство, позволяющее замаскироваться в системе и удержать максимальные права при активном использовании взломанного компьютера.

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

Сразу скажу, что мы не будем переписывать такие утилиты как ls, ps, netstat для того, чтобы скрыть присутствие руткита в системе. Мы поступим намного проще, хотя и намного не безопаснее — просто заменим эти утилиты скриптами, которые будут обрабатывать передаваемые с консоли параметры, перенаправлять их оригинальной утилите, получать от нее ответ, обрабатывать его и

выводить пользователю этот рафинированный результат.

Первым делом необходимо все проанализировать и понять, с чего начинать работу. Я разделю создание руткита на три этапа:

1) Создание программ, скрывающих файлы руткита

2) Создание программ, скрывающих процессы

3) Написание нескольких скриптов для удобства работы с руткитом

Итак, приступим. Как уже говорилось ранее, я не собираюсь перезаписывать утилиты, присутствующие в системе — я просто перемещу их в папку с неприметным названием вроде /bin/sysctl, оставив на их месте собственные скрипты-оболочки, которые будут управлять работой системных утилит. Разумеется, что такой сценарий не самый незаметный: любая антитроянная система мигом нас запалит. Поэтому надо понимать, что все, о чем я говорю, применимо для слабозащищенных серверов и представляет собой, прежде всего, просто интересную практику.

[начнем программировать]

Начнем с создания программ, скрывающих файлы будущего руткита. То есть нам нужно заменить такие утилиты как ls , dir и du на собственные скрипты-обертки. Начнем с dir и du, поскольку их написание наиболее просто в данной категории.

Содержание  Вперед на стр. 080-058-2
ttfb: 3.6530494689941 ms