Оригинал: kernelmode.info
Автор: 0x16/7ton
Перевод: Prosper-H
Метод блокировки AV
В этой заметке я покажу вам, как можно заблокировать работу Антивирусов. В качестве жертвы, для демонстрации работы метода, я выбрал Антивирус Касперского. Что из этого получилось – читайте ниже =)
После некоторого исследования smss.exe, я наткнулся на функцию NtCreatePagingFile.
Ее определение выглядит следующим образом:
Code:
NTSTATUS NtCreatePagingFile ( IN PUNICODE_STRING PageFileName, IN PLARGE_INTEGER InitialSize, IN PLARGE_INTEGER MaximumSize, IN ULONG Reserved );
Не секрет, что smss.exe использует эту функцию для создания swap-файла (файла подкачки), в процессе запуска операционной системы.
Session manager берет параметры для этой API-функции из следующего ключа регистра:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles
Где PagingFiles – это путь к файлу с минимальным и максимальным размером swap-файла.
В основном идея заключается в том, чтобы использовать создание swap-файл для наших нужд.
Эксперимент 1: Использовать функцию NtCreatePagingFile c параметром PageFileName равным пути (path) av-драйвера.
Результат: В результате этого эксперимента была успешно произведена перезапись av-драйвера, swap-файлом.
Эксперимент 2: Попытаться перезаписать swap-файлом основную DLL библиотеку Касперского.
Результат: К сожалению, функция NtCreatePagingFile вернула STATUS_SHARING_VIOLATION.
Эксперимент 3: После провала во втором эксперименте, я решил подойти к проблеме с другой стороны. Идея заключается в создании swap-файла следующего типа:
Code:
C:\%path_to_kaspersky_dir%\avp.exe.manifest
Таким образом, мы создадим поддельный файл манифеста.
Результат: После перезагрузки системы, Антивирус Касперского не сможет запустить никакой свой сервис или gui-процесс.
Замечания и ограничения:- NtCreatePagingFile на страте проверяет текущее значение файла подкачки (MmNumberOfPagingFiles) с значением жестко заданным в теле функции и возвращает STATUS_TOO_MANY_PAGING_FILES, если оно равно (на моей Windows XP оно равно 16).
- Нам нужно иметь привилегию SeCreatePagefilePrivilege для использования функции NtCreatePagingFile.
- Конечно, блокировка AV будет работать после перезагрузки.
- NtCreatePagingFile extend pagefile maximum on current launched system,but after reboot our created file not be a paged. И тут наступает интересный момент, если мы создали файл в av-директории, то мы не сможем его удалить, после перезагрузки, потому что антивирус защищает свои файлы.
Список антивирусов, которые были протестированным с помощью этого метода:
Уязвимые (на момент написания заметки):- Kaspersky
- Eset
- Avast
- McAfee
- AVG
- ZoneAlarm
Не уязвимые:
Вот ссылка на видео с работающим PoC: http://www.sendspace.com/file/oyhly7
© Translated by Prosper-H from r0 Crew