Опасная маскировка процессов под Process Doppelgänging
Новая техника запуска процессов Process Doppelganging была представлена на конференции Europe в 2017 году. На заметку была быстро взята обновленная модель вирмейкерами. Уже было замечено несколько вариантов о том, когда ее эксплуатируют. Process Doppelganging основывается на определенных механизмах, разобраться в сути которых не сложно.
Process Doppelganging и Hollowing
Запуск одного алгоритма под видом другого происходит при помощи отдельного загрузчика. Аналогом подобного процесса является Process Hollowing, который является предшественником Process Doppelganging. Две техники имеют похожие свойства, но отличаются параметрами запуска приложений и воздействия их с ОС.
В новой технике воплощены блоки NTFS, которые разделяются на:
CreateTransaction;
Transacted;
CommitTransaction;
Rollback.
Транзакции связаны с WinAPI, который в предыдущей технике не встречается. Такие не периодичные системные вызовы почти не присутствуют в обычных программных оболочках. Сам по себе концепт неплохой, поэтому есть смысл его развивать.
При Process Hollowing пошаговость действий осуществляется с характерными отличиями:
доверенный блок открывает;
CreateProcess;
за перезапись отвечает WriteProcessMemory;
отображение мест в адресной оболочке запускается через NtUnmapViewOfSection;
запуск происходит от ResumeThread.
В итоге загрузчик операционной оболочки работает с вручную измененными настройками. ProcessDoppelganging выполняется с внедрением отдельных элементов:
создание новой схемы транзакций;
формирование;
временного CreateFileTransacted;
запись данных файла в буферы;
проверка РЕВ;
запуск в последовательном алгоритме NtCreateProcessEx->Thread.
Зашифровка транзакций NTFS(TxF) стала использоваться для работы с зашифрованными данными. Все связанные с ней операции являются атомарными – до завершения или отката не будет заметно ничего. С нулевыми данными транзакция может отображаться через CreateTransaction, при этом никаких изменений не будет происходить на жестком диске.
Получение недокументированных опций NTAPI Windows позволяет создавать динамические прототипы. Основные измененные данные вносятся в header проекта и обычные функции заменяют переменными. Запускать приложения возможно от имени других программ, выполняющих роль второго аргумента. Переменные прототипов фиксируются в библиотечном файле ntdll.dll, играя роль двойника.
Читать статью на:
Для просмотра ссылки необходимо нажать
Вход или Регистрация