Категория > Новости > Herpaderping и Ghosting. Изучаем два новых способа скрывать процессы от антивирусов - «Новости»
Herpaderping и Ghosting. Изучаем два новых способа скрывать процессы от антивирусов - «Новости»23-04-2022, 00:00. Автор: Durham |
|
Маскируем запуск процессов при помощи Process Doppelgänging». Для простоты в наших экспериментах мы будем использовать Microsoft Defender и Mimikatz. warningСтатья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону. Особенности процессовКак антивирус узнает, что в системе был запущен какой‑либо процесс? Microsoft дает возможность разработчикам антивирусных решений получать через API нужные им события (например, Вся штука в том, что уведомление Важно пониматьИсполняемый файл — это не процесс. Исполняемый файл может быть связан со множеством процессов (в Task Manager можно легко проследить, сколько процессов связано, например, с Процесс содержит виртуальное адресное пространство, исполняемый код, открытые дескрипторы для системных объектов, контекст безопасности, уникальный идентификатор процесса, переменные среды, класс приоритета, минимальный и максимальный размеры рабочего множества и по крайней мере один поток выполнения. Поток — это базовая единица, в которой операционная система выделяет процессорное время. Поток может выполнять любую часть кода процесса, включая части, которые в данный момент выполняются другим потоком. Создание процессаРассмотрим создание процесса по шагам.
Важный момент: процессы запускаются из исполняемых файлов, но информация внутри исполняемого файла может меняться относительного того, что находится в image section (так как она кешируется memory manager). Сканирование процесса в поисках зловредаКак уже было сказано, антивирусы могут получать уведомления о событиях создания процессов и потоков (PsSetCreateProcessNotifyRoutineEx и PsSetCreateThreadNotifyRoutineEx). Выглядит это примерно так: typedef struct _PS_CREATE_NOTIFY_INFO { SIZE_T Size; union { ULONG Flags; struct {ULONG FileOpenNameAvailable : 1;ULONG IsSubsystemProcess : 1;ULONG Reserved : 30; }; }; HANDLE ParentProcessId; CLIENT_ID CreatingThreadId; struct _FILE_OBJECT *FileObject; PCUNICODE_STRING ImageFileName; PCUNICODE_STRING CommandLine; NTSTATUS CreationStatus;} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO;Перейти обратно к новости |