Категория > Новости > Злой двойник атакует! Маскируем запуск процессов при помощи Process Doppelganging - «Новости»
Злой двойник атакует! Маскируем запуск процессов при помощи Process Doppelganging - «Новости»28-08-2018, 06:00. Автор: Gilbert |
"); }else{ $('#mpu1-desktop').remove(); console.log('mpu1-desktop removed'); } }); Содержание статьи
Техника Process Doppelganging чем-то похожа на своего предшественника — Process Hollowing, но отличается механизмами запуска приложения и взаимодействия с загрузчиком операционной системы. Кроме того, в новой технике применяются механизм транзакций NTFS и соответствующие WinAPI, например Это одновременно сильная и слабая черта новой техники сокрытия процессов. С одной стороны, разработчики антивирусов и прочего защитного софта не были готовы к тому, что для запуска вредоносного кода будут использованы WinAPI, отвечающие за транзакции NTFS. С другой стороны, после доклада на конференции эти WinAPI сразу попадут под подозрение, если будут встречаться в исполняемом коде. И неудивительно: это редкие системные вызовы, которые практически не применяются в обычных программах. Конечно, есть несколько способов скрыть вызовы WinAPI, но это уже другая история, а сейчас мы имеем неплохой концепт, который можно развивать. Различия Process Doppelganging и Process HollowingШироко распространенная в узких кругах техника запуска исполняемого кода Process Hollowing заключается в подмене кода приостановленного легитимного процесса вредоносным кодом и последующем его выполнении. Вот общий план действий при Process Hollowing.
По сути, мы вручную меняем работу загрузчика операционной системы и делаем за него часть работы, попутно подменяя код в памяти. В свою очередь, для реализации техники Process Doppelganging нам нужно выполнить такие шаги.
Вообще, технология транзакций NTFS(TxF) появилась в Windows Vista на уровне драйвера NTFS и осталась во всех последующих операционных системах этого семейства. Эта технология призвана помочь производить различные операции в файловой системе NTFS. Также она иногда используется при работе с базами данных. Операции TxF считаются атомарными — пока происходит работа с транзакцией (и связанными с ней файлами) до ее закрытия или отката, она не видна никому. И если будет откат, то операция не изменит ничего на жестком диске. Транзакцию можно создать при помощи функции
Приступаем к работеНачинаем писать приложение с самого начала. Условимся, что наше приложение (пейлоад), которое необходимо будет запустить от имени другого приложения (цели), будет передаваться в качестве второго аргумента, а цель — в качестве первого. Как пользоваться недокументированными NTAPIВ коде мы будем использовать недокументированные функции NTAPI Windows. Они получаются динамически по своему прототипу. Вот один из возможных методов получения недокументированных функций и работы с ними. Объявляем прототип функции
На лету получаем адрес нужной функции в библиотеке ntdll.dll по ее имени при помощи
Здесь используем функцию
Так получаются и используются все необходимые недокументированные функции, которые обычно выносят в header проекта. Перейти обратно к новости |