Proc hollowedprocess ep что это

Проверьте ОС (Windows 7).

Аналогично: есть ли в системе вирусы, и особенно кейлоггеры?

Прикрепленные файлы:

1. Если Вы подозреваете у себя на компьютере вирусную активность и хотите получить помощь в этом разделе,

2. Если у Вас при включении компьютера появляется окно с требованием перечислить некоторую сумму денег и при этом блокируется доступ к рабочему столу,

— попытайтесь найти коды разблокировки здесь https://www.drweb.com/xperf/unlocker/
— детально опишите как выглядит это окно (цвет, текст, количество кнопок, появляется ли оно до появления окна приветствия Windows или сразу же после включении компьютера);
— дождаться ответа аналитика или хелпера;

3. Если у Вас зашифрованы файлы,

Внимание! Услуга по расшифровке файлов предоставляется только лицензионным пользователям продуктов Dr.Web, у которых на момент заражения была установлена коммерческая лицензия Dr.Web Security Space не ниже версии 9.0, Антивирус Dr.Web для Windows не ниже версии 9.0 или Dr.Web Enterprise Security Suite не ниже версии 6.0. подробнее.

Что НЕ нужно делать:
— лечить и удалять найденные антивирусом вирусы в автоматическом режиме или самостоятельно. Можно переместить всё найденное в карантин, а после спросить специалистов или не предпринимать никаких действий, а просто сообщить название найденных вирусов;
— переустанавливать операционную систему;
— менять расширение у зашифрованных файлов;
— очищать папки с временными файлами, а также историю браузера;
— использовать самостоятельно без консультации с вирусным аналитиком Dr. Web дешифраторы из «Аптечки сисадмина» Dr. Web;
— использовать дешифраторы рекомендуемые в других темах с аналогичной проблемой.

Для этого проделайте следующее:

Источник

Proc hollowedprocess ep что это

Process hollowing is yet another tool in the kit of those who seek to hide the presence of a process. The idea is rather straight forward: a bootstrap application creates a seemingly innocent process in a suspended state. The legitimate image is then unmapped and replaced with the image that is to be hidden. If the preferred image base of the new image does not match that of the old image, the new image must be rebased. Once the new image is loaded in memory the EAX register of the suspended thread is set to the entry point. The process is then resumed and the entry point of the new image is executed.

Building The Source Executable

To successfully perform process hollowing the source image must meet a few requirements:

To maximize compatibility, the subsystem of the source image should be set to windows. The compiler should use the static version of the run-time library to remove dependence to the Visual C++ runtime DLL. This can be achieved by using the /MT or /MTd compiler options. Either the preferred base address (assuming it has one) of the source image must match that of the destination image, or the source must contain a relocation table and the image needs to be rebased to the address of the destination. For compatibility reasons the rebasing route is preferred. The /DYNAMICBASE or /FIXED:NO linker options can be used to generate a relocation table.

Once a suitable source executable has been created it can be loaded in the context of another process, hiding its presence from cursory inspections.

Creating The Process The target process must be created in the suspended state. This can be achieved by passing the CREATE_SUSPENDED flag to the CreateProcess function via the dwCreationFlags parameter.

Once the process is created its memory space can be modified using the handle provided by the hProcess member of the PROCESS_INFORMATION structure.

First, the base address of the destination image must be located. This can be done by querying the process with NtQueryProcessInformation to acquire the address of the process environment block (PEB). The PEB is then read using ReadProcessMemory. All of this functionality is encapsulated within a convenient helper function named ReadRemotePEB.

Once the PEB is read from the process, the image base is used to read the NT headers. Once again ReadProcessMemory is utilized, and the functionality is wrapped in a convenient helper function.

Carving The Hole With headers in hand there is no longer a need for the destination image to be mapped into memory. The NtUnmapViewOfSection function can be utilized to get rid of it.

Next, a new block of memory is allocated for the source image. The size of the block is determined by the SizeOfImage member of the source images optional header. For the sake of simplicity the entire block is flagged as PAGE_EXECUTE_READWRITE, but this could be improved upon by allocating each portable executable section with the appropriate flags based on the characteristics specified in the section header.

Copying The Source Image

Now that memory has been allocated for the new image it must be copied to the process memory. For the hollowing to work, the image base stored within the optional header of the source image must be set to the destination image base address. However, before setting it the difference between the two base addresses must be calculated for use in rebasing. Once the optional header is fixed up, the image is copied to the process via WriteProcessMemory starting with its portable executable headers. Following that, the data of each section is copied.

As was mentioned earlier taking this step a bit further by applying the proper memory protection options to the different sections would make the hollowing harder to detect.

IMAGE_DATA_DIRECTORY relocData = pSourceHeaders-> OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];

The relocation table itself is broken down into a series of variable length blocks, each containing a series of entries for a 4KB page. At the head of each relocation block is the page address along with the block size, followed by the relocation entries. Each relocation entry is a single word; the low 12 bits are the relocation offset, and the high 4 bits are the relocation types. C bit fields can be used to easily access these values.

To calculate the number of entries in a block, the size of BASE_RELOCATION_BLOCK is subtracted from BlockSize and the difference is divided by the size of BASE_RELOCATION_ENTRY. The macro below assists in these calculations.

With the source image loaded into the target process some changes need to be made to the process thread. First, the thread context must be acquired. Because only the EAX register needs to be updated the ContextFlags member of the CONTEXT structure can be set to CONTEXT_INTEGER.

After the thread context has been acquired the EAX member is set to the sum of the base address and the entry point address of the source image.

Finally, the thread is resumed, executing the entry point of the source image.

The hollowing function is now ready to use. To test it, svchost.exe (the Windows service host) is hollowed out and replaced with a simple application that displays a message box.

Once the application is run, its output confirms that the hollowing was successful.

Источник

Злой двойник атакует! Маскируем запуск процессов при помощи Process Doppelgänging

Proc hollowedprocess ep что это. doppelganger h. Proc hollowedprocess ep что это фото. Proc hollowedprocess ep что это-doppelganger h. картинка Proc hollowedprocess ep что это. картинка doppelganger h

Содержание статьи

Это одновременно сильная и слабая черта новой техники сокрытия процессов. С одной стороны, разработчики антивирусов и прочего защитного софта не были готовы к тому, что для запуска вредоносного кода будут использованы WinAPI, отвечающие за транзакции NTFS. С другой стороны, после доклада на конференции эти WinAPI сразу попадут под подозрение, если будут встречаться в исполняемом коде. И неудивительно: это редкие системные вызовы, которые практически не применяются в обычных программах. Конечно, есть несколько способов скрыть вызовы WinAPI, но это уже другая история, а сейчас мы имеем неплохой концепт, который можно развивать.

Различия Process Doppelgänging и Process Hollowing

Широко распространенная в узких кругах техника запуска исполняемого кода Process Hollowing заключается в подмене кода приостановленного легитимного процесса вредоносным кодом и последующем его выполнении. Вот общий план действий при Process Hollowing.

По сути, мы вручную меняем работу загрузчика операционной системы и делаем за него часть работы, попутно подменяя код в памяти.

В свою очередь, для реализации техники Process Doppelgänging нам нужно выполнить такие шаги.

Вообще, технология транзакций NTFS(TxF) появилась в Windows Vista на уровне драйвера NTFS и осталась во всех последующих операционных системах этого семейства. Эта технология призвана помочь производить различные операции в файловой системе NTFS. Также она иногда используется при работе с базами данных.

Операции TxF считаются атомарными — пока происходит работа с транзакцией (и связанными с ней файлами), до ее закрытия или отката она не видна никому. И если будет откат, то операция не изменит ничего на жестком диске. Транзакцию можно создать при помощи функции CreateTransaction с нулевыми параметрами, а последний параметр — название транзакции. Прототип выглядит таким образом.

Приступаем к работе

Начинаем писать приложение с самого начала. Условимся, что наше приложение (пейлоад), которое необходимо будет запустить от имени другого приложения (цели), будет передаваться в качестве второго аргумента, а цель — в качестве первого.

Как пользоваться недокументированными NTAPI

В коде мы будем использовать недокументированные функции NTAPI Windows. Они получаются динамически по своему прототипу. Вот один из возможных методов получения недокументированных функций и работы с ними.

Объявляем прототип функции NtQueryInformationProcess :

На лету получаем адрес нужной функции в библиотеке ntdll.dll по ее имени при помощи GetProcAddress и присваиваем его переменной нашего прототипа:

Здесь используем функцию NtQueryInformationProcess обычным образом, только через нашу переменную:

Так получаются и используются все необходимые недокументированные функции, которые обычно выносят в header проекта.

Далее создаем фиктивный временный файл в контексте транзакции.

Думаю, что этот код не вызовет у тебя никаких трудностей: здесь используются стандартные функции WinAPI и функции языка С.

Итак, буфер в памяти готов, теперь заполним его.

И последний, завершающий штрих — запуск треда процесса. Для этого нужно узнать базовый адрес загрузки модуля и начало кода в выделенном нами буфере. Код стандартный, упрощенный.

И запускаем сам поток:

Вот и все. С этого момента наш код начинает работать под прикрытием другого процесса. Не забываем сделать роллбэк транзакции:

Заключение

Как видишь, ничего сложного в этой новой атаке нет. Из бонусов — атака получается бесфайловой, весь код существует только в памяти, потому что мы не завершаем транзакцию NTFS, а откатываем все изменения.

Подобный метод внедрения несложно обнаружить — нужно просто сравнить код в памяти и на жестком диске. Кроме того, некоторые NTAPI, использванные в статье, имеют высокий рейтинг у эвристиков антивирусов (например, та же NtCreateThreadEx ). Подозрения у антивирусов может вызвать и сам факт использования редких функций WinAPI, которые отвечают за транзакции NTFS, особенно в свете того, что в Microsoft не рекомендуют их использовать. Конечно, это не означает, что эвристика обязательно сработает, но точно заставит присмотреться к твоему файлу с сильной предвзятостью.

Замечу, что приведенный мной код — это концепт, который еще улучшать и улучшать. Например, можно использовать маппинг для выделения буферов, можно зашифровать динамическое получение функций и так далее.

Источник

Проверьте ОС (Windows 7).

Аналогично: есть ли в системе вирусы, и особенно кейлоггеры?

Прикрепленные файлы:

1. Если Вы подозреваете у себя на компьютере вирусную активность и хотите получить помощь в этом разделе,

2. Если у Вас при включении компьютера появляется окно с требованием перечислить некоторую сумму денег и при этом блокируется доступ к рабочему столу,

— попытайтесь найти коды разблокировки здесь https://www.drweb.com/xperf/unlocker/
— детально опишите как выглядит это окно (цвет, текст, количество кнопок, появляется ли оно до появления окна приветствия Windows или сразу же после включении компьютера);
— дождаться ответа аналитика или хелпера;

3. Если у Вас зашифрованы файлы,

Внимание! Услуга по расшифровке файлов предоставляется только лицензионным пользователям продуктов Dr.Web, у которых на момент заражения была установлена коммерческая лицензия Dr.Web Security Space не ниже версии 9.0, Антивирус Dr.Web для Windows не ниже версии 9.0 или Dr.Web Enterprise Security Suite не ниже версии 6.0. подробнее.

Что НЕ нужно делать:
— лечить и удалять найденные антивирусом вирусы в автоматическом режиме или самостоятельно. Можно переместить всё найденное в карантин, а после спросить специалистов или не предпринимать никаких действий, а просто сообщить название найденных вирусов;
— переустанавливать операционную систему;
— менять расширение у зашифрованных файлов;
— очищать папки с временными файлами, а также историю браузера;
— использовать самостоятельно без консультации с вирусным аналитиком Dr. Web дешифраторы из «Аптечки сисадмина» Dr. Web;
— использовать дешифраторы рекомендуемые в других темах с аналогичной проблемой.

Для этого проделайте следующее:

Источник

Маскировка запуска процесса с Process Doppelganging

Proc hollowedprocess ep что это. process masking with process doppelganging. Proc hollowedprocess ep что это фото. Proc hollowedprocess ep что это-process masking with process doppelganging. картинка Proc hollowedprocess ep что это. картинка process masking with process doppelganging

На конференции BlackHat Europe 2017 был представлен доклад о новой технике запуска процессов под названием Process Doppelganging. Создатели вирусов быстро взяли технику Process Doppelganging на вооружение, и уже есть несколько вариантов малвари, которая ее эксплуатирует. Я расскажу про принцип работы техники скрытия запуска процессов Process Doppelganging и на какие системные механизмы он опирается. Кроме этого мы создадим маленький загрузчик, который покажет вам запуск одного процесса под видом другого.

Маскировка запуска процесса

Техника маскировки процессов Process Doppelganging чем-то похожа на своего предшественника — Process Hollowing, но отличается механизмами запуска приложения и взаимодействия с загрузчиком операционной системы. Кроме того, в новой технике применяются механизм транзакций NTFS и соответствующие WinAPI, например CreateTransaction, CommitTransaction, CreateFileTransacted и RollbackTransaction, которые, разумеется, не используются в Process Hollowing.

Это одновременно мощная и слабая сторона новой техники сокрытия процессов. С одной стороны, создатели антивирусов и других защищающих программ не были подготовлены к тому, что для запуска вредоносного кода станут применены WinAPI, отвечающие за транзакции NTFS. С другой стороны, после доклада на BlackHat эти WinAPI мгновенно угодят под подозрение, если будут попадаться в исполняемом коде. И неудивительно: это редкие системные вызовы, которые фактически не используются в обычном софте. Естественно, существует несколько методов позволяющих скрыть вызовы WinAPI, но это уже совсем другая история, а сейчас мы имеем хороший концепт, который можно совершенствовать.

Process Doppelganging и Process Hollowing

Широко распространенная в узких кругах техника запуска исполняемого кода Process Hollowing заключается в подмене кода приостановленного легитимного процесса вредоносным кодом и последующем его выполнении. Вот общий план действий при Process Hollowing.

По сути, мы вручную изменяем работу загрузчика ОС и совершаем за него часть работы, заодно подменяя код в памяти.

В свою очередь, для реализации техники Process Doppelganging нам необходимо проделать следующие шаги.

Вообще, методика транзакций NTFS(TxF) появилась в Windows Vista на уровне драйвера NTFS и осталась во всех последующих операционках этого семейства. Эта метод призван помочь совершать всевозможные операции в файловой системе NTFS. Кроме того он периодически используется при работе с базами данных.

Операции TxF считаются атомарными — пока происходит работа с транзакцией (и связанными с ней файлами) до ее закрытия или отката, она не видна никому. И если будет откат, то операция ничего не изменит на жестком диске. Транзакцию можно создать с помощью функции CreateTransaction с нулевыми параметрами, а последний параметр — название транзакции. Вот пример как выглядит прототип.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *