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