понедельник, 13 апреля 2009 г.

Tiny cleaning


Сегодня потратила пару часов, чтобы разобраться с троянами, вирусами, руткитами, которые завелись в Windows. До сих пор не могу поверить, что такая ситуация возникла на моем компе, обычно разгребаю муравейники в гостях :). Ну, знаете, это как врачей донимают все знакомые своими болячками, так computer-concerned people привлекается к чистке вирусов, переустановке ОС на компах друзей, знакомых и родных.

Сходу заметила как минимум 3 левых драйвера (в двух в строках были смайлики, все три со свежими датами модификации). С ними помог разобраться мировой разум: 
  • Start Command Line;
  • Execute command: "set devmgr_show_nonpresent_devices=1";
  • Start Device Manager: "devmgmt.msc";
  • In windows menu "View" choose option "Show hidden devices".
У меня раскрывается целая ветка "Non-Plug and Play Drivers", обычно здесь можно встретить rootkit-drivers. В контекстном меню на "плохом" драйвере выбираем "Uninstall". Если rootkit слабенький, то его driver будет остановлен и удален (не знаю точно, как должно быть после Uninstall, но сами .sys файлы не удалились из системы, после restart Windows я их удалила вручную из C:\Windows\System32\drivers). 

Следующее слабое место, или сильное :), - это Windows Services. Запускаем Services Manager: "services.msc". В большинстве случаев просто по этому списку не разберешь, кто хороший, кто плохой. Тут уже нужна дополнительная информация. Однако даже если вы уверены, что некий сервис вирусовый, то из Windows Services Manager его можно только остановить. Что ж, приходит на помощь консольная команда "sc". 
  • Check service info: "sc qc <ServiceName>";
  • Delete harmful service: "sc delete <ServiceName>".
Продолжаем разгребать рассадник с помощью утилиты RegMon. Устанавливаем Filter для всех процессов (Include: "*.*"), из check-box оставляем только Log Writes, запускаем capture. Многие трояны любят менять реестр в цикле, выставлять нужные параметры системы, регистрировать, включать себя (к примеру, вы удаляете сервис вируса, а второй процесс вируса снова его инсталлирует). Достаточно минуту-две понаблюдать за тем, что записывается в реестр, чтобы найти злобные процессы либо убедиться, что здесь все в порядке.  

Еще нужно просмотреть содержимое ключей реестра для автозапуска:
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce;
-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run;
-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce.
Все подозрительное спокойно удаляем, систему это точно не убьет.

Еще одно место, позволящее внедряться в систему во время загрузки:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
Просматриваем все ключи, имена загружаемых модулей в строковом параметре DllName. Снова все зловредное удаляем.

Проверяем, что в ключе HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon значение "Taskmgr.exe".

Как приблизительно проверить, является ли dll системным модулем? Ищем имя в google, для всех Windows модулей первая страница похожа: пользователи спрашивают что это, им отвечают, что это системная dll, есть линки на dll-cache сайты и т.п.
Вирусовые модули либо не будут совсем найдены в интернете, либо первая страница будет в сайтах virusinfo и т.п.

Многие трояны регистрируют себя так, чтобы автоматически загружаться в процесс explorer.exe, после этого вредные модули удалить непросто. Веток, куда может прописаться троян, довольно много, проверять их вручную очень нудно. Для примера проверим ветку:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
Ключи этого раздела - CLSID, для каждого нужно проверить соответствующий модуль:
HKEY_CLASSES_ROOT\CLSID\<CLSID>\InprocServer32 - default value is .dll.
Это очень скучно :). 
Если нужны дополнительные инструкции к расследованию троянов в Explorer, обращайтесь. Я знаю еще :)

Поиск и уничтожение вирусов лично мне напоминает ловлю блох. Прошу прощения за сравнение, но именно такие ощущения остаются. Так что скажу всем создателям вирусов, что никакие они не кул-хацкеры и не классные программисты, они просто создатели мелких блох, и гордиться абсолютно нечем.

4 комментария:

  1. Еще бывает полезно посмотреть открытые TCP и UDP соединения на машине, тк трояны и вирусы очень часто любят "стучать" удаленным компьютерам о тех данных, которые они накопали на локальном (пароли, явки и все такое). Помогает утилита TCPView из того же пакета sysinternals:
    http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx

    ОтветитьУдалить
  2. Отличная добавка, спасибо!
    Я смотрела открытые соединения в Process Browser по процессам и в Net Limiter.
    Но утилита TcpView помогает сразу увидеть весь список, это проще и быстрее.
    Просматриваем все подозрительные процессы, у которых незнакомый Remote address IP.

    ОтветитьУдалить
  3. Кросспост:
    Сомнительный файл можно за-upload-ить на сайте:
    http://virusscan.jotti.org/
    - там его проверят несколькими антивирусами.

    ОтветитьУдалить
  4. Дополнение. На WinXP появилась мощная утилита tasklist (в system32). Чтобы получить список запущенных процессов svchost и соотв. им сервисов, нужно выполнить команду:
    tasklist /svc /fi "imagename eq svchost.exe"

    ОтветитьУдалить