Rootkitrevealer не запускается windows 10

Обновлено: 03.07.2024

Rootkit-средство — это набор программных инст­рументов, которые устанавливает нарушитель на компьютер-жертву, причем жертва обычно ничего об этом не подозревает. Обычно хакерам удается устано­вить rootkit-средства, используя слабости «незалатанных» (unpatched) компьютерных систем, или даже полностью укрепленных систем, на которых рабо­тают потенциально уязвимые службы (такие как Microsoft Exchange, SQL Server или Active Directory) без защиты программного или аппаратного меж­сетевого фильтра (firewall). Rootkit-средства являются особенно коварными, потому что проектируются так, чтобы об их инсталляции на компьютер поль­зователя, тот ничего не знал. Методы, которые использует rootkit-средство, чтобы скрыть себя от пользователя могут также сделать его необнаружимым традиционными методами, например, антивирусными или даже антишпион­скими утилитами.

Сканирование компьютера на наличие rootkit-средств

Одним из лучших инструментов обнаружения rootkit-средств является RootkitRevealer компании Sysinternals. Эта утилита может работать как с графическим интерфейсом, так и из командной строки. Учетная запись пользова­теля, которая используется для работы с RootkitRevealer, должна иметь, как минимум, следующий уровень полномочий:

  • создание резервных копий каталогов и файлов;
  • загрузка драйверов;
  • выполнение задач обслуживания тома (Windows ХР и более поздние версии).

Необходимо запускать RootkitRevealer GUI с локальной консоли. Из него можно выполнять сканирование локального компьютера. По умолчанию ус­тановлены следующие необязательные (optional) параметры сканирования:

  • Hide NTFS Metadata Files (Скрывать файлы метаданных NTFS). Этот параметр указывает программе RootkitRevealer, что не нужно выводить стандартные файлы метаданных NTFS, так как эти файлы являются по умолчанию скрытыми от Windows API.
  • Scan Registry (Сканировать реестр). Этот параметр информирует Rootkit- Revealer, о том, что необходимо, кроме файловой системы, просканиро­вать реестр на наличие любых аномалий.

Для выполнения сканирования локального жесткого диска, просто щелк­ните по File | Scan.


Данная статья представляет собой серьезный технический обзор наиболее известных современных программ для борьбы с руткитами (от анг. rootkit), часто используемых для сокрытия присутствия в системе вредоносных программ. В обзоре рассматриваются следующие антируткиты: RootkitRevealer, AVZ (антивирусная утилита Олега Зайцева), Process Hunter, F-Secure BlackLight Rootkit Eliminator, UnHackMe, IceSword, Microsoft Windows Defender и System Virginity Verifier.

Введение

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

В мире операционных систем Microsoft Windows NT фундаментом взаимодействия программ является системный интерфейс Windows API, который включает в себя тысячи функций. Использование измененных системных функций подобно взгляду в кривое зеркало, и именно эту особенность используют rootkit для скрытия своего присутствия. Количество Троянов-невидимок непрерывно растет, что связанно, во-первых, со сложностями обнаружения rootkit, а, следовательно, невозможностью противостояния со стороны классических антивирусных программ, во-вторых, с тем, что написание rootkit является достаточно прибыльным способом зарабатывания денег для троянописателей. Некоторые разработчики современного защитного программного обеспечения обещают нам гарантированное выявление всех rootkit пользовательского режима и режима ядра, предлагая специализированное программное обеспечение для этой цели. Этот обзор не претендует на полноту изложения, но в тоже время сделаем попытку дать справедливую оценку возможностям наиболее известных программ для поиска rootkit. Итак, приступим.

RootkitRevealer

Rootkit, поселившийся на компьютере пользователя, должен оставлять следы своей деятельности - ключи реестра и файлы на диске, которые ему необходимо скрывать, чтобы избежать выявления. Поскольку программы отображают информацию о наличии файлов и ключей реестра, используя интерфейс системных функций (Windows API), скрытие будет заключаться в этом случае в перехвате этих функций и фильтрации значений, которые получит программа. С целью выявления скрытых ключей реестра и файлов Марком Руссиновичем была создана программа - RootkitRevealer.

Ее принцип работы такой: после запуска создается и запускается во временном каталоге исполняемый файл со случайно выбранным именем. В свою очередь, этот исполняемый файл при запуске извлекает и запускает из своей секции ресурсов драйвер ring-0 (RKREVEAL150.SYS). Для поиска скрытых ключей реестра RootkitRevealer осуществляет обработку файлов, полученных путем дампа веток реестра (полученных через ZwSaveKey). В этом можно убедиться, проведя небольшое исследование.

Далее эти файлы обрабатываются и сравниваются со списком, полученным через Windows API. Также осуществляется поиск ключей, содержащих т.н. embedded-null characters (например, такой прием использован в примере от Марка Руссиновича - RegHide). Поиск скрытых файлов осуществляется путем сравнения списка файлов полученного путем вызова API функций со списком файлов полученных через командный интерпретатор с использованием команды DIR.

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

Дело в том, что программ-детекторов скрытых файлов и ключей реестра совсем немного. И совсем несложно составить список таких программ, как RootkitRevealer. Обратите внимание на одну особенность: RootkitRevealer отображает только скрытые файлы и ключи реестра, это и есть главный недостаток.

В качестве примера рассмотрим не очень сложный vanquish rootkit. Этот rootkit пользовательского режима внедряет в каждый создаваемый процесс свою динамическую библиотеку, которая путем сплайсинга (англ. splicing - соединение внахлест) нужных API функций осуществляет их перехват в контексте каждого процесса. Таким образом, каждый процесс при вызове функций API, которые используются для получения ключей реестра и файлов (напр. FindFirstFile, FindNextFile) будет вызывать обработчик из внедренной динамической библиотеки, где будет вызываться настоящая системная функция и отфильтровываться результат, возвращаемый программе. Это позволит скрыть нужные файлы и ключи реестра от всех программ, например explorer, regedit32, кроме rootkit детекторов!

Т.е. если обработчик перехваченной функции получает управление в контексте процесса rootkit детектора, например, RootkitRevealer-а, не составит труда сделать таким образом, что rootkit не будет скрывать никаких файлов и ключей, и rootkit детектор, соответственно, не сможет ничего обнаружить!

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

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

AVZ (антивирусная утилита Олега Зайцева)

По словам разработчиков, программа способна выявлять перехватчики режима ядра и пользовательского режима. AVZ действительно способен находить перехватчики API функций, однако неискушенный пользователь не знает, что существует множество способов этого самого перехвата.

Стоит напомнить, что для перехвата может осуществляться модификация таблиц IAT/EAT, перезапись кода функции системной библиотеки в ее начале (сплайсинг), производиться модификация системных таблиц SSDT, IDT; rootkit может перезаписывать также код системных сервисов режима ядра, вписывая в их начало команду безусловного перехода на собственный обработчик, кроме того может устанавливаться брейкпоинт (опкод CC) в начало перехватываемой функции с перенаправлением отладочного прерывания int 3 на собственный обработчик.

Для перехвата могут также использоваться отладочные DRx регистры процессора. Из всех вышеперечисленных методик AVZ определяет только те, которые чаще всего используют легитимные приложения (антивирусы, firewall и др.), например, перехват через SSDT легко обнаружить, поэтому современный rootkit врядли воспользуется этой техникой.

В тоже время такой перехват осуществляет множество программного обеспечения – от драйверов эмуляторов типа Alcohol 120% до антивирусов и HIPS, например, Kaspersky Internet Security 6.0, проактивная система защиты Safe’n’Sec. AVZ не обнаружит перехват, использующий отладочные регистры, или перезапись в режиме ядра кода системного сервиса. Следовательно, программа только запутает пользователя, указывая на перехват системных функций, осуществленный легитимными приложениями.

Process Hunter by Ms-Rem

Алгоритм работы программы - сравнение списка процессов, полученных различными способами; если находятся отличия - процессу присваивается статус hidden (скрытый). Программа действительно очень хорошо детектирует скрытые процессы, например, для обнаружения FU rootkit достаточно установить флажок «List Handles».

Cкрыть процесс от Process hunter очень сложно, но нужно ли это? На самом деле, в последнее время rootkit не создают своего собственного процесса. В качестве примера можно привести все тот же vanquish rootkit, который представляет собой динамическую библиотеку, которая подгружается в адресное пространство каждого вновь создаваемого процесса. Нередко также происходит заражение системных библиотек, драйверов со скрытием следов (что осуществляется перехватом API функций и подменой результатов проверки подписей и чтения системных файлов). В подобном случае ни один детектор скрытых процессов не сможет ничего обнаружить.

F-Secure BlackLight Rootkit Eliminator, UnHackMe

Данные программы практически ничем не превосходят по своим возможностям RootkitRevealer и Process Hunter, и имеют схожее назначение - поиск скрытых файлов, ключей реестра и процессов.

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

Определить процесс F-Secure BlackLight Rootkit Eliminator и UnHackMe еще проще, поскольку здесь не применены даже элементарные приемы, как в RootkitRevealer – произвольно выбранное имя процесса и изменяющийся размер файла. Еще более задача усложнится тем, что даже если будет выводиться полный список процессов (а, как сказано выше, rootkit может ничего не скрывать, чтобы не допустить обнаружения скрытых элементов), имя процесса вредоносной программы может совпадать с именем одного из системных процессов. Тогда в диспетчере процессов антируткита будет сложно отличить системный процесс от фальш-процесса троянской программы, например, в ОС WinXP зачастую несколько процессов svchost.exe, наличие еще одного врядли привлечет внимание пользователя.

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

Что касается внедрения динамических библиотек и создания удаленных потоков в контексте легитимных процессов, то, несмотря на наличие HIPS (проактивных защит), такая возможность будет до тех пор, пока существуют в системе доверенные процессы и не будет очень жесткого контроля над этими доверенными процессами.

Например, часто вредоносному коду достаточно получить управление в контексте системного процесса winlogon, чтобы получить не контролируемый HIPS-системами доступ на запись в адресное пространство всех остальных процессов и получить полный контроль над инфицированной системой. Для этого можно зарегистрировать динамическую библиотеку в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify. Для обхода контроля записи в реестр можно использовать прямую запись в файл реестра на диске, поскольку доступ к этим файлам заблокирован, осуществлять запись через прямой доступ к диску (используя функцию CreateFile с параметром FileName=\\.\PHYSICALDRIVE0), после чего, используя техники перехвата системных функций скрывать изменения. Фактически, на данном этапе, существующее защитное программное обеспечение необходимого уровня защиты, и контроля над доверенными процессами не обеспечивает.

IceSword

К недостаткам стоит отнести весьма скудную информацию о загруженных драйверах - нет version info, нет проверки подписей, что затрудняет анализ результатов; то же относится и к информации о перехватчиках режима ядра, не выводится информация, которая поможет отличить специализированный софт от троянской программы. В остальном программа не превосходит по своим возможностям AVZ и обнаруживает далеко не все виды перехвата системных функций.

Microsoft Windows Defender

Эту программу врядли можно назвать защитником от rootkit. Во-первых, Microsoft Windows Defender совершенно не способен защищать свой собственный процесс и службу от выгрузки, что под силу обычному вирусу, не говоря про rootkit. Кроме того, можно приостановить процесс программы простым вызовом функции SuspendThread. Последнее еще и навредит пользователю, поскольку при этом заблокируется возможность создания новых процессов.

Во-вторых, несмотря на наличие контроля загрузки драйверов, не контролируется доступ к физической памяти (device\physycalmemory), что позволит троянской программе получить доступ на запись к защищенной памяти ядра, а также выполнить произвольный код в ring-0.

Ко всему этому, Windows Defender не предоставляет абсолютно никаких возможностей для поиска скрытых элементов в системе. Единственное достоинство программы – красивый интерфейс. Исходя из этого, Windows Defender можно назвать скорее жертвой, чем защитником.

System Virginity Verifier

Хороший пример от Джоанны Рутковской. Эта программа позволяет определить перехват API функций, как в пользовательском режиме, так и в режиме ядра путем побайтного сравнения системного файла-образа на диске с его копией в памяти. Например, в случае с vanquish rootkit, будет обнаружено следующее:

Выполнив команду SVV fix /t 2 можно деактивировать перехват vanquish rootkit, после чего станут видимыми все скрываемые им файлы и ключи реестра.

System Virginity Verifier способен выявлять также перехват путем перезаписи кода системных сервисов и установку int 3, и даже модификацию IDT. Однако и здесь могут возникнуть трудности в случае с коммерческими rootkit. Во-первых, обязательно нужно иметь гарантии достоверности информации, полученной при чтении файла-образа системной библиотеки на диске. А для этого необходимо предпринять меры, которые обеспечат чтение и проверку подлинности одного и того же файла на диске, т.е. нужны дополнительные гарантии того, что читается именно тот файл, который прошел проверку подлинности, что является не столь уж простой задачей.

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

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

К сожалению, решить данную задачу весьма непросто, для этого необходимо, чтобы у каждого пользователя был индивидуальный экземпляр защитной программы, который будет сложно детектировать троянской программе-невидимке. Не стоит забывать также, что коммерческий rootkit отличается от demo (AFXRootkit, HackerDefender, vanquish), качеством реализации.

Подавляющее большинство антируткит-программ тестировалось лишь на demo-rootkit, которые практической пользы не имеют, и врядли применяются в реальности, что еще раз подтверждает неэффективность программного обеспечения для борьбы с rootkit. Один из примеров в пользу вышесказанного такой: для обнаружения скрытых файлов на диске антируткит должен анализировать и обрабатывать информацию с HDD посекторно (чтобы не получить эффект «кривого зеркала»). Осуществить это возможно несколькими способами: самый простой - использование CreateFile (\\.\PHYSICALDRIVE0) и ReadFile для чтения секторов, следующий уровень анализа - использование низкоуровневых функций ZwCreateFile, ZwReadFile.

Все три способа могут не дать абсолютно никакого результата, так как в первых двух случаях обход для rootkit выльется перехватом соответствующих API-функций, в последнем - IRP hooking. На более глубокий уровень анализа не способен ни один существующий антируткит. Его суть заключается в использовании машинных инструкций in и out для прямого обращения к контроллеру HDD.

В этом случае обход возможен только в rootkit, написанном специально для этого случая. Есть еще один альтернативный, и вероятно более надежный вариант: программа антируткит составляет список всех файлов и ключей реестра через Windows API, и записывает их в свой лог-файл, возможно, шифрует эти данные. Далее пользователю предлагается сделать загрузочный диск (не важно - flash, CD и т.д.). После этой операции второй этап проверки осуществить, загрузившись со специально подготовленного диска, и путем анализа HDD опять получить список всех файлов, а путем анализа файлов реестра - список ключей реестра (есть сложность, связанная с тем, что при перезагрузке часть ключей и файлов может измениться, и может возникнуть ложное срабатывание). Путем сравнения двух полученных списков можно обнаружить, что скрывается в недрах системы от пользователя. Но, опять же, все это сработает только в том случае, если rootkit не детектирует сканирующую программу и не выдаст для нее на 1-ом этапе полный список всех файлов и ключей. Но, в этом случае, можно смело выводить пользователю список всех программ из автозапуска - список будет полным, также как и список системных файлов.

Выводы

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

Для борьбы с rootkit можно использовать лишь отдельные функции отдельных программ - анализ модификаций системы - System Virginity Verifier от Джоанны Рутковской (особенно радует, что программа анализирует не только перехват через SSDT, но выводит подробный список модификаций кода ядра, включая системные таблицы, MSR SYSENTER, кроме этого доступны исходники программы).

Поиск скрытых процессов - Process Hunter by Ms-Rem (в котором реализованы наиболее широкие возможности для этого), RootkitRevealer только при условии, что у вас персональная версия программы, скомпилированная специально для вас Марком Руссиновичем, поскольку доступных исходников к ней нет.

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

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

Одним из таких инструментов является RootkitRevealer – маленькая утилита, входящая в состав пакета Sysinternals Suite. Даже самый продвинутый руткит не может не оставить хотя бы едва заметный след в системе в виде ключей реестра или файлов на жестком диске.

Во время сканирования RootkitRevealer обрабатывает файлы, извлекаемые путем анализа системного реестра и сравнивает полученные данные с результатами работы API-интерфейсов файловой системы.

Обнаруженные несоответствия могут свидетельствовать о присутствии в системе вредоносных программ – руткитов.

Программа RootkitRevealer


Утилита способна отыскивать большинство постоянных руткитов, включая такие как HackerDefenter, AFX и Vanquish. RootkitRevealerм не требует инсталляции, имеет предельно простой интерфейс и самый минимум функций.

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

Поиск руткитов

При первом запуске программка предложит согласиться с условиями использования, далее откроется маленькое окошко, в котором нужно просто нажать кнопку "Scan". В тот момент, когда RootkitRevealer будет производить сканирование реестра, компьютер может временно перестать откликаться на команды.

По умолчанию, согласно настройкам метаданных NTFS не производится. Если вы хотите проверить эту область, в пункте меню "Options" → "Hide standard NTFS Metadata files" следует снять галочку. После того как утилита проведет сканирование, список возможных проблем будет выведен в главном окне.

Как таковая, функция удаления файлов или ключей реестра в программе отсутствует. RootkitRevealer просто информирует пользователя, показывая причину, по которой элемент попал в список "подозреваемых", размер файла и полный путь к нему от корневой директории.

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

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

Продолжение обзора утилит из пакета Sysinternals Suite буду продолжать, поэтому если интересно рекомендую подписаться на обновления

Здравствуйте, разделил жесткий диск на тома : на одном стоит windows 7 , а на другом linux. В итоге случайно в linux удалил раздел , а именно тот раздел на котором стоит этот linux. После перезагрузки получил вот эту " ересь" :

что делать ? Linux использовать я передумал , хочу обратно в windows. можно как-то удалить этот grub , и загрузить windows? Ноуткуб у меня один , а на загрузочную флешку надеяться нельзя - она пустая)

Средний 5 комментариев

longclaps

hottabxp

CityCat4

hottabxp

Compolomus

Даже стесняюсь спросить, КАК можно случайно удалить раздел. :O
После grub rescue> начни вводить крманды:
ls
Покажет разделы диска в таком виде: (hd0) (hd0,msdos5) (hd0,msdos2).
Тебе надо найти раздел с загрузчиком. Так как ты удалил раздел, попробуй сначала после ls набрать:
set
Если после этого увидишь типа:
cmdpath=(hd0)
prefix=(hd0,msdos3)/boot/grub
root=hd0,msdos3, тебе повезло.
Дальше, вместо msdos3, подставляешь в команды то, что покажет у тебя. Я буду писать . , заменишь на своё.

set boot=(hd0,msdos. )
set prefix=(hd0,msdos. )/boot/grub
insmod normal
normal

И после каждой команды, не забывай нажать Enter, а то мало ли чего. :)
Теперь должен загрузится GRUB, а ты попасть в Винду.
В Винде набери cmd и потом в консоли (или как там она у вас называется):

Читайте также: