Содержание статьи
- Что делать в случае заражения?
- Поиск процессов и обезвреживание малвари в памяти
- Охота на невидимок
- Чистим автозапуск
- Восстанавливаем реестр
- Штатные инструменты Windows для восстановления реестра
- Продвинутые методы восстановления реестра
- Береженого MBR бережет
- Фиксим MBR в консоли
- Продвинутые средства для восстановления MBR
- Путь от MBR до UEFI и GPT
- Спасение системных файлов
- Проверка и восстановление системных файлов Windows
- Накатим драйверы по-быстрому
- Фиксим проводник и другие ошибки системы
- Запускаем сеть по-новому
- Восстанавливаем hosts
- Восстанавливаем работу сетевых служб
- Правим маршрутизацию и проверяем порты
- Live CD как спасательный круг
- Live CD от вендоров антивирусного ПО
- Универсальные Live CD сборки
- Как не заразиться: главные советы
- Не используй права локального администратора. Включи UAC
- Следи за обновлениями системы и своевременно накатывай security update
- Прокачай свой браузер
- Что делать с назойливыми окнами?
- Используй секьюрный DNS
- Зачисть подключаемые устройства и победи автозапуск
- Настрой файрвол
- Забудь про вложения и непонятные ссылки
- За что бьют сисопа? За отсутствие бэкапа. Тебя это тоже касается
- Outro
План статьи будет таков: как локализовать заразу, если она все-таки проникла на твою машину, как победить руткиты и как восстановить систему после заражения, если все зашло слишком далеко. В конце статьи мы дадим несколько банальных, но по-прежнему актуальных советов о том, как избежать заражения (с другой стороны, как можно называть банальными советы, соблюдение которых снизило бы количество зараженных машин Сети в десятки раз?).
INFO
Мы вовсе не настаиваем на сносе твоего любимого Internet security, но прочитать статью «На малварь без антивируса» и советы из этого материала очень рекомендуем.
Что делать в случае заражения?
Итак, если у тебя есть подозрение на то, что машина инфицирована, в первую очередь ты должен выполнить несколько действий:
- отключить хост от сети (вытащить UTP-кабель, погасить Wi-Fi);
- вынуть из портов все внешние девайсы (HDD- и USB-устройства, телефоны и прочее).
Все эти действия связаны с необходимостью изолировать нашего пациента от внешнего мира. Отключать хост нужно обязательно и от доступа во внешний мир через интернет и локалку, поскольку малварь практически со стопроцентной вероятностью будет пытаться себя распространить на весь доступный ей сегмент. К тому же если зловред является частью ботнет-сети или содержит компоненты RAT, то он может бездействовать до того момента, как поступит управляющая команда с C&C-сервера из внешней сети. Также это страхует нас и от утечки локальных данных во внешний мир, к примеру через DNS-туннелированные или подобные хакерские фичи. Следуя этой же логике, рекомендуют как можно скорее вытащить все подключенные к пациенту девайсы: к примеру, если это вирус-шифровальщик, то он может просто не успеть добраться до данных на внешних HDD и USB-флешках.
INFO
Хардкорным читателям советуем прочесть наш цикл статей про реверсинг малвари. Малварь в руках хакера, вооруженного статьями из этого цикла, пожалеет о том, что появилась из-под пера вирмейкера. 🙂
Ты можешь еще услышать совет сразу выключить зараженный компьютер. Здесь неоднозначно. С одной стороны, это может приостановить разрушительные действия зловреда. Но есть и риск того, что после выключения в следующий раз ОС больше вообще не загрузится, а данные на винтах потрутся. Поэтому действовать нужно по обстоятельствам, многое зависит от того, какая именно малварь была запущена и какие цели она преследует. Ниже при рассмотрении кейсов мы расскажем и о первой, и о второй ситуации.
Ну и конечно, для успешной борьбы с малварью и восстановления системы у тебя должны быть привилегии административной учетной записи, так как многие действия (манипуляции с системными файлами, остановка и перезапуск сетевых служб, восстановление реестра, изменение конфигурации загрузчика и тому подобное) потребуют от нас всей полноты прав на систему. 🙂
WARNING
Неверные и неосмысленные действия могут привести к нарушению нормальной работы ОС, ПО или к потере данных. Ни автор, ни редакция не несут ответственности за ущерб, причиненный неправильным использованием материалов данной статьи. Выполняй только те действия, суть и значение которых ты осознаешь.
Поиск процессов и обезвреживание малвари в памяти
Любая малварь, чтобы выполнять свои действия, должна быть запущена в оперативной памяти. И неважно, как именно бинарный код был загружен в RAM — из exe-файла, вложенного в письмо, скрипта из инфицированной HTML-странички или был собран только из сетевых пакетов, как нашумевший в начале 2000-х годов бестелесный червь Slammer, поразивший тысячи серверов за несколько десятков минут. Поэтому ключевой задачей на первом этапе становится поиск и идентификация процесса зловреда в памяти. И стандартный менеджер задач Windows тут нам не помощник. Почему? Да потому, что даже начинающий кодер на Delphi может использовать функции, позволяющие скрывать из области видимости штатного Task Manager’а запущенный процесс. Я еще молчу о том, что зловред может содержать руткит, который будет скрывать его действия в системе.
Итак, к нам на помощь придут утилиты — самостоятельные и комплексные менеджеры задач. Первая тулза, которую мы рассмотрим, — это Process Monitor, бесплатная утилитка из набора SysInternals Suite. По сути, она объединяет в себе сразу две другие утилиты — FileMon (мониторинг файловой системы) и RegMon (мониторинг реестра). Тулза предоставляет мощный инструмент для мониторинга файловой системы, системного реестра, а также всех процессов в оперативной памяти в реальном времени.
На панели есть несколько интересных кнопок, позволяющих выполнять фильтрацию процессов и действий системы по нужным нам критериям:
- show registry activity — просмотр активности реестра (чтение, запись ключей);
- show file system activity — просмотр действия с файлами (чтение, запись);
- show network process activity — аналогично по процессам, использующим сеть;
- show process and thread — просмотр процессов и нитей.
Вторая, более навороченная тулза — это Process Explorer. Предназначена для мониторинга процессов в системе. Позволяет не только отследить процесс, но и уточнить, какие файлы и папки им используются. Фишка программы в том, что тут же в рабочем окне можно выделить процесс и по щелчку мыши проверить его на VirusTotal.
System Explorer, одна из излюбленных антивирусными исследователями тулз, обеспечивает мониторинг всех процессов в системе, отображает детальную загрузку памяти и файла подкачки, работу процессора, драйверов, открытых соединений в сети и многое другое.
В утилиту встроена база данных — можно проверить наличие вредоносного кода в конкретном файле и отправить на сервер отчет VirusTotal.
Тулза позволяет закрыть любой процесс и группу связанных процессов, которые тормозят работу системы или программы, просмотреть историю действий для любой программы. Поддерживается работа с плагинами. Интерфейс разделен на вкладки, каждая из которых посвящена конкретным задачам. System Explorer позволяет управлять объектами автозапуска, просматривать и оперативно деинсталлировать установленные приложения, управлять службами Windows и многое другое.
Тулза четвертая — это AnVir Task Manager, полноценный менеджер задач, который позволяет контролировать все, что запущено на компьютере, а также предоставляет удобные инструменты для настройки компьютера. Тулза позволяет управлять автозагрузкой, запущенными процессами, сервисами и драйверами и заменяет диспетчер.
В самом простом случае имя процесса совпадает с именем исходного exe-файла, который был запущен. Поэтому и самый простой способ найти малварь — это просмотреть весь список запущенных процессов и обратить внимание на те, которые вызывают подозрения. Но есть и более сложные ситуации, когда вирмейкеры используют системные имена, к примеру системных служб Svchost.exe, или, хуже того, не создают новый процесс, а инжектируют код зловреда в легитимный! Если такой процесс завершит часть функций, ОС может стать недоступна или вовсе возникнет RPC-ошибка, приводящая к перезагрузке. Такую фичу использовал небезызвестный червь Blaster. На глаз тут вредоносный процесс, конечно же, не определишь, нужны инструменты посерьезнее.
На выручку нам придет утилита AVZ, разработанная Олегом Зайцевым. Это не антивирус, но программа содержит в себе набор сигнатур наиболее известных червей, бэкдоров и руткитов.
Поэтому тулза может сканировать оперативную память и детектировать скомпрометированные процессы. Помимо этого, она имеет ряд крутых фич: собственный драйвер для обнаружения руткитов (kernel-mode), кейлоггеров и троянских DLL, прямой доступ к диску для работы с заблокированными файлами на томах NTFS, в том числе помещения их в карантин, анализатор открытых портов TCP/UDP с целью обнаружения RAT, анализатор Winsock SPI/LSP корректности сетевых настроек, анализатор мусорных настроек Internet Explorer, а также модуль проверки целостности системного реестра, BHO, расширений IE и проводника (Explorer) и анализатор всех доступных видов автозапуска.
Охота на невидимок
Реальную проблему в борьбе с малварью представляют поиск и обезвреживание руткитов, поскольку они используют особые системные фичи, например перехват и модификация системных функций, подмена запросов и работа в режиме ядра с максимальными привилегиями, что помогает им обойти многие защитные механизмы.
Ручной поиск тут почти безуспешен, и без специальных утилит нам не обойтись. По некоторым методам работы антируткиты близки к антивирусным движкам, так как могут испробовать сигнатурный и эвристический метод детектирования, но все же не являются антивирусным ПО в привычном понимании. Рассмотрим несколько наиболее известных и широко используемых в практике инструментов.
- RkUnhooker — одна из самых мощных тулз для обнаружения руткитов и борьбы с другими вредоносами. Позволяет обнаруживать и снимать перехваты таблицы SDT и программного кода, показывает скрытые драйверы, процессы и файлы. Помимо этого, RkUnhooker позволяет убивать файлы, залоченные выполняющимся процессом, в том числе с перезаписью пустыми данными (чтобы предотвратить их повторный запуск). А еще можно снимать дампы процессов из памяти и анализировать их.
- GMER — довольно известная утилита, которая, помимо основной своей функции, включает набор инструментов, таких как мощный редактор реестра, показывающий скрытые ветки, редактор жесткого диска, редактор автозапуска системы. Часто вместе с GMER используют RootRepeal. Эта тулза анализирует все запущенные драйверы и процессы в системе, ищет аномалии и другие особенности, присущие зловредным программам.
- UnHackMe — тоже известная тулза для обнаружения и эффективного удаления новых поколений троянов, использующих технологию руткит. Как заявляют разработчики, она имеет уникальные методы детекта. Ищет нежелательные настройки поиска в браузере, проверяет автозапуск на наличие посторонних программ.
- HijackThis — небольшая программа для обнаружения и удаления простейших типов вредоносного ПО. Сейчас распространяется по лицензии GPLv2 и принадлежит антивирусной компании Trend Micro.
- TDSSKiller — отечественный антируткит от «Лаборатории Касперского». Изначально создавался для лечения систем, зараженных вредоносами семейства Rootkit.Win32.TDSS. Сейчас утилита может найти и обезвредить такие известные руткиты, как TDSS, SST, Pihar, ZeroAccess, Sinowal, Whistler, Phanta, Trup, Stoned, Rloader, Cmoser, Cidox, и руткит-аномалии.
- SpyDllRemover — эффективный инструмент для обнаружения и удаления шпионских программ из системы. Использует свой алгоритм сканера, который быстро находит скрытые процессы Rootkit, а подозрительные DLL — во всех запущенных процессах. Выводит процессы разными цветами в зависимости от уровня угрозы, что очень помогает идентифицировать вредоносные DLL.
Чистим автозапуск
Одна из функций малвари — обеспечить себе повторный запуск после выключения или перезагрузки машины. Наиболее часто используемый метод — это прописать исполняемый файл зловреда в автозапуск. Варианты здесь различны: это может быть и подмена пути в ярлыке, уже лежащем в автозапуске по пути %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
, и назначение автоматически выполняемого задания в Планировщике Windows, и создание ключей на автозапуск в системном реестре:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
— программы, которые запускаются только один раз, когда пользователь входит в систему;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
— программы, которые запускаются при входе текущего пользователя в систему;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]
— программы, которые запускаются только единожды при входе текущего пользователя в систему.
Что у нас есть из тулз для этого случая? Первое — это программа Autoruns, которая позволяет управлять автозагрузкой в Windows. С ее помощью можно увидеть все программы, службы, драйверы и командные файлы, которые будут запускаться вместе с системой, а при необходимости — отключить их.
Скажем пару слов об интерфейсе и вкладках:
- Everything — отображает все файлы, которые будут запускаться автоматически при загрузке Windows;
- Logon — содержит все программы, которые будут запускаться автоматически;
- Explorer — автозапуск всех элементов проводника Windows;
- Internet Explorer — все надстройки и дополнения, которые установлены в Internet Explorer;
- Scheduled Tasks — процессы, которые запускаются автоматически из диспетчера задач;
- Services — файлы служб, автоматически запускаемые при загрузке машины;
- Drivers — все файлы, относящиеся к драйверам.
Восстанавливаем реестр
Реестр Windows, начиная с самых первых версий ОС, остается критически важным компонентом системы, по сути представляя собой базу данных для хранения различных параметров и настроек рабочего окружения, установленного ПО и самой Windows. Логично, что нарушение работы реестра или его повреждение грозит неработоспособным состоянием ОС. Сам реестр, который открывается штатной утилитой regedit, физически представлен несколькими файлами, хранящимися по пути %SystemRoot%\System32\config\
. Это файлы с именами SYSTEM, SOFTWARE, SECURITY, SAM, DEFAULT без расширений и доступные только для системных процессов NT AUTHORITY\SYSTEM, LocalSystem. Но если реестр открывать через штатный редактор, то эти файлы предстанут в виде большого иерархического дерева.
Первое, что приходит на ум, — это, конечно же, сделать бэкапы этих файлов и при необходимости просто заменить битые на резервные копии. Но из-под загруженной ОС простым копированием выполнить это не удастся, а экспорт данных с использованием regedit может получиться неполноценным. Поэтому рассмотрим инструменты, которые помогут нам в этом деле.
Штатные инструменты Windows для восстановления реестра
«Из коробки» Windows, к сожалению, не имеет отдельного инструмента, позволяющего делать резервные копии реестра. Все, что может дать система, — это функциональность морально устаревшей NTBackUp родом из эпохи Windows XP / 2003 Server или в новых ОС Windows 7, 8, 10 ее реинкарнацию в виде «программы архивирования и восстановления Windows», предлагающей создать целиком образ системы (всей системы — не реестра!). Поэтому рассмотрим лишь небольшой пример действий в консоли восстановления, позволяющих восстановить реестр вручную. По сути это операции замены битых файлов на инфицированной системе оригинальными файлами реестра из заранее сделанной резервной копии.
Загрузившись в Live CD режиме с установочного диска или с локально установленной консоли восстановления (для XP/2003), необходимо выполнить следующие команды, описанные самой Microsoft:
// Создаем резервные копии реестра системы
md tmp
copy c:\windows\system32\config\system c:\windows\tmp\system.bak
copy c:\windows\system32\config\software c:\windows\tmp\software.bak
copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak
copy c:\windows\system32\config\security c:\windows\tmp\security.bak
copy c:\windows\system32\config\default c:\windows\tmp\default.bak
// Удаляем битые файлы из системной директории ОС
delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default
// Копируем работоспособные файлы реестра из теневой копии
copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default
Все, перезагружаем машину и смотрим на результат!
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»