RootKit – скрытое присутствие

Для достижения этой цели хакер должен инсталлировать потайную дверь, которую сложно обнаружить. Это его главная задача. Хакеры используют различные методы для этих целей, помещая свои инструменты на глубокий уровень взломанных систем и оставляя файлы так, чтобы они не привлекали внимание. Однако, этого не достаточно, так как процессы все еще остаются видимыми, и легко обнаружить любую нежданную программу, которая прослушивает определенный порт, использую netstat для проверки информации об этом порте. Тем не менее, хакеры могут также использовать Root Kit.

Большинство читателей знают, что rootkit в основном является Unix концепцией, переносимой на другие платформы в ее более сложных формах. Это набор инструментов, используемых взломщиком для скрытия его присутствия в атакуемой системе. Обычные цели включают замещение или заражение программ, таких как ps, find, ls, top, kill, passwd, netstat, скрытых каталогов, файлов, и даже их отдельных частей – например, в /etc/passwd. Более того, захват паролей, удаление входов деятельности атакующего, помещение потайных дверей в определенные сервисы (например, Telnet) доступные в любое время без авторизации. Существует множество rootkit в Unix окружении и каждый новый выпуск является более "передовым" в выполняемых ими функциях. Они также доступны для атаки Windows систем – менее сложные, но все еще мощные и современные. Некоторые доступные rootkit решения имеют скрытые или измененные netstat команды, тем самым делая предварительно установленные потайные двери невидимыми, в то время, как они прослушивают какой-либо порт.

Простой скрипт помещается в содержимое Perl строки, компилируется и называется netstat.exe – вот пример простого rootkit. Реальный системный netstat может быть переименован в oldnetstat.exe. Принцип работы нового netstat в том, что он из командной строки будет вызывать реальный netstat (теперь oldnetstat.exe), и перенаправлять его во временный текстовый файл. Затем rootkit ищет в этом файле любую информацию о прослушиваемом порте для ее удаления (в соответствии с процедурой, описанной в коде rootkit). После модификации результаты отображаются на экране, а старый файл удаляется. Этот принцип является простым и эффективным и обеспечивает интересную возможность– он может быть использован для обманных выходных данных, реально выдаваемых другим инструментом, доступным через командную строку – например, tlist или dir. Существует множество программ этого типа, доступных на Web. Те, с которыми я сталкивался, не отображают, например, информацию о прослушиваемых портах, таких как 666, 27374, 12345, 31337 – т.е. хорошо известных портах Троянских коней.

В свое время была рождена идея первого расширенного rootkit для Windows окружения. Автором был Грег Хоглунд (Greg Hoglund), пока развитие этой идеи можно было увидеть на http://www.rootkit.com/ (к несчастью, больше не доступно). Из того, что я знаю, разработка споткнулась после версии 0.44 [9]. Однако, ниже вы найдете описание немного более старой версии, названной 0.40 [10].

Этот rootkit был разработан, как драйвер режима ядра, который выполняется с системными привилегиями в ядре системы. Поэтому, он имеет доступ ко всем ресурсам операционной системы, получая широкое поле для деятельности. Для инсталляции его требуются администраторские разрешения, чтобы простые net start/net stop команды успешно активировали/дезактивировали его.

После того, как rootkit загружен, хакер может скрыть каталоги и файлы на диске жертвы. Этот метод эффективно обеспечивается тем, что скрытый объект имеет префикс имени с _root_ – например, _root_directory_name. Как это работает? Этот rootkit, изменяя ядро, перехватывает все системные вызовы на листинг содержимого диска и все объекты, начинающиеся с последовательности _root_ – являются скрытыми от показа. То же самое применяется к процессу поиска – все фалы и каталоги с приведенной выше последовательностью символов являются скрытыми от поиска.

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

Этот rootkit может также перехватывать все нажатия клавиш на системной консоли. Это может быть вынесено в драйвер клавиатуры и выдавать 'sniffkeys' команды.

Это не последняя возможность описанного rootkit. Его новейшая версия (0.44) предлагает несколько других функций, таких как тяжеловесно-кодовую потайную дверь (Рис. 2), которая позволяет удаленному хакеру соединяться с зараженным компьютером и получать высоко привилегированную оболочку.

Рис. 2 Rootkit потайной двери позволяет хакеру активировать программу наблюдения

Более того, новые реализации предусматривают, например, функцию, которая перенаправляет .EXE файлы на другие программы. Запускается совершенно другой инструмент после того, как rootkit распознал выполнение файла с именем, начинающимся с _root_. Больше никаких подробностей не приводится. В настоящее время все находится на стадии концептуальных испытаний и хакеры не могут использовать эту функциональность.