Абсолютный ноль

Николай «GorluM» Андреев

Хакер, номер #072, стр. 072-068-1

(gorlum@real.xakep.ru)

Учимся работать с windows в keel mode

Microsoft только и занимается тем, что ограничивает пользовательские приложения Windows в возможностях. Этого нельзя, того нельзя. Что? Хочешь в запущенный экзешник писать? Обломись. А может, ты хочешь, чтобы файрвол твоего трафика не видел? Очень смешно. Казалось бы, Билли и его команда все предусмотрели: вирусы скоро вымрут сами по себе, трояны все поголовно ловятся персональными файрами, теперь уже встроенными в ось. Думаешь, XP - это конец спокойной жизни хакера в форточках? Как бы не так, нулевого кольца у нас никто не отнимет!

Какие еще кольца?

Винда выгодно отличается от ДОСа тем, что целиком и полностью работает в защищенном режиме процессора, который, как тебе наверняка известно, является единственным приемлемым режимом для камня, построенного на основе интеловской 32-битной архитектуры (IA-32). И защищенный режим не назывался бы защищенным, если бы не обладал системой безопасности - некоторыми уровнями привилегий, на каждом из которых процессор был бы чем-то и в чем-то ограничен. Такие уровни привилегий принято называть кольцами защиты, в IA-32 их четыре штуки. Нулевое кольцо – самое привилегированное, в нем отсутствуют всякие ограничения, и делать в нем можно все, что только душе угодно. По идее интеловских мастеров, в нем должно располагаться ядро операционной системы. В первом кольце уже появляются небольшие ограничения, запреты на исполнения некоторых инструкций и т.п. – этот уровень был создан для драйверов. Ring2 - для интерфейса системы и некоторых сервисов, а Ring3 - для пользовательских приложений. И если бы создатели Windows делали все так, как того хотели ребята из Intel, то, наверное, ты бы не читал сейчас этот материал. Microsoft по каким-то хитрым, непонятным простому смертному причинам решила использовать в винде только два режима – нулевой и третий. В Ring0 (keel mode) при этом расположились ядро и все дрова, а в Ring3 (user mode) - сервисы, интерфейс, пользовательские приложения, вирусы, трояны – в общем, все остальное. И если ядро ничем не ограничено, то любая запущенная программа обречена на ущербное существование – в третьем кольце ни привилегированных инструкций не выполнить, ни заглянуть в ядро – ничего действительно полезного хакеру сделать нельзя.

Keel mode же – это просто рай для хакера, в нем можно делать абсолютно все. Можно следить за действиями пользователя так, что ни он, ни любой антивирусный пакет об этом в жизни не узнает. Можно влиять на работу драйверов: скажем, запретить драйверу файловой системы показывать файл с трояном или базу клавиатурных логов пользователю. Можно прозрачно обойти персональный файрвол, писать в запрещенные файлы, работать с портами ввода/вывода – словом, ВСЕ. Можно даже flash-биос на материнской плате заменить отрывком из «Войны и мира» и отформатировать жесткий диск в реальном времени.

Непонятно, как некоторые хакеры могут жить в пользовательском режиме, зная, что есть нулевой уровень привилегий. Ведь в стандартном Ring3 не развернешься - Windows запрещает доступ приложений к верхним двум гигам адресного пространства (в котором, по идее, располагается ядро и все жизненно необходимые структуры), камень не дает пользоваться крутыми инструкциями вроде lgtd или lidt. Со всей ответственностью могу заявить: в user mode жизни нет! Поэтому надо срочно бросать увлечение писать вирусы на Delphi, закупаться учебниками по ассемблеру и тонизирующими напитками и переселяться в ring0.

Содержание  Вперед на стр. 072-068-2
ttfb: 3.7369728088379 ms