Pull to refresh

Блокировка обновлений AV: temp-файлы (windows)

Приветствую всех. Одно из моих хобби — исследовать malware и следить за вялой технологической гонкой av и malware -вендоров.
Давно уже не секрет, что существует множество троянов, которые блокируют обновления антивирусов, чтобы остаться жить в системе подольше,
оттянув срок своего детекта антивирусом.
Я хотел бы рассказать только об одном из способов, который показался мне забавным из-за того, что не требует прав администратора, давая возможность запущенному из под Guest-аккаунта трояну заблокировать обновление баз некоторых AV.

Многие антивирусы при обновлении своих баз используют временные файлы, расположенные в директориях, которые доступны для записи всем пользователям включая Guest. В процессе обновления ошибка доступа к одному из таких файлов расценивается антивирусом как критическая
и процесс обновления завершается с ошибкой. Таким образом, трояну нужно всего лишь заблокировать временный файл, то есть открыть
с ShareAccess == 0. Я приведу три примера, хотя их, конечно, можно насчитать больше. Кроме того, некоторые антивирусы используют msiexec,
который сам по себе тоже может «упасть», не имея возможности записать временный файл.

Итак, примеры.

Avira


Во время обновления использует временный файл:
%ProgramData%\Avira\AntiVir Desktop\TEMP\UPDATE\webcat\common\int\webcat0.dat.gz

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

image

AVG Free, AVG InternetSecurity


Два продукта. Во время обновления используют временный файл:
%ProgramData%\AVG2014\SetupBackup\COREx64.msi

Если продукт AVG натыкается на ошибку, открывая этот файл на запись, обновления не выполняется,
антивирус даже предлагает обновиться, что не помогает — обновление всё равно висит как failed:

image

NOD32


«Уязвимы» оба продукта — ESET NOD32 и ESET SmartSecurity. Тут временных файлов больше.
Для NOD32 путь будет такой:
%ProgramData%\ESET\ESET NOD32 Antivirus\updfiles\temp\em0XX_YY.dat

Для SmartSecurity название директории меняется название директории в \ESET\, путь будет такой:
%ProgramData%\ESET\ESET Smart Security\updfiles\temp\em0XX_YY.dat

XX и YY — это, соответственно, значения 00..23 и 32|64.
То есть em000_32.dat, em00_64.dat, em001_32.dat и так далее.

Необходимо заблокировать все эти файлы, тогда мы видим:

image

Дополнительно


Для антивирусов, использующих msiexec в процессе обновления баз я могу предложить угадывание имени случайного файла
в %windir%\temp и его блокировки. Возможно, это реализуемо.

Какие AV этому не подвержены?


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

Версии рассматриваемого ПО


Avira: 14.0.1.759
AVG: AVG Free (14.0.0.4259) and AVG InternetSecurity Trial (14.0.0.4259)
ESET: Eset Smart Security 7 (7.0.302.26)
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.