PPID спуфинг с помощью PPID Spoofer

PPID спуфинг с помощью PPID Spoofer

Сегодня поговорим о PPID Spoofer от S12 — инструмент для подмены идентификаторов родительских процессов (PID). Мы рассмотрим работу этого инструмента, которое может представлять серьезную угрозу для безопасности компьютерных систем.

Еще по теме: Способы про­писать­ся в сис­теме при пентесте

PPID спуфинг с помощью PPID Spoofer

PPID Spoofer — это новый инструмент, позволяющий порождать процессы с PID, который выглядит как PID любого выполняющегося процесса, эффективно маскируя свою деятельность и уклоняясь от обнаружения. В этой статье мы рассмотрим методологию, лежащую в основе PPID Spoofer, и механизмы, которые он использует для обмана средств защиты.

Статья в образовательных целях и предназначается для обучения этичных хакеров. При написании статьи использовались личные устройства автора. Использование техники PPID спуфинг для несанкционированного доступа к компьютерам без разрешения является незаконным. Ни редакция spy-soft.net, ни автор не несут ответс­твен­ности за ваши действия.

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

Этот код на C++ PPID Spoofer, который реализует технику, называемую Parent PID Spoofing. Подмена родительского PID включает в себя манипуляции с идентификатором родительского процесса (PID) запущенного процесса, чтобы создать впечатление, что он порожден другим родительским процессом. Эта техника может использоваться в различных целях, но чаще всего она применяется при разработке вредоносного ПО для обхода обнаружения и маскировки происхождения вредоносных действий.

Теперь давайте разберем код по шагам:

  • Функция getPIDbyProcName — принимает строковый аргумент procName, который представляет собой имя процесса, для которого необходимо получить PID. Она возвращает PID первого процесса с указанным именем, найденного в системе. Функция использует функции Windows API CreateToolhelp32Snapshot, Process32First и Process32Next из заголовка tlhelp32.h для перебора запущенных процессов и поиска PID процесса с указанным именем.
  • Функция main является точкой входа в программу и определяет логику работы инструмента «PPID Spoofer». Она выполняет следующие действия:
    • a. Объявляет две строковые переменные: exePath и procName для хранения пути к исполняемому файлу, который будет порожден, и имени процесса, PID которого будет подделан, соответственно.
    • b. Предлагает пользователю указать путь к исполняемому файлу, который он хочет запустить, и имя процесса, который он хочет подделать.
    • c. Вызывает функцию getPIDbyProcName для получения PID указанного имени процесса и сохраняет его в переменной parentPID.
    • d. Инициализирует структуру STARTUPINFOEX с именем info с расширенной информацией о запуске, которая необходима для подмены Parent PID.
    • e. Инициализирует структуру PROCESS_INFORMATION с именем processInfo для хранения информации о вновь созданном процессе.
    • f. Выделяет память для списка атрибутов процесса с помощью HeapAlloc и инициализирует список с помощью InitializeProcThreadAttributeList.
    • g. Обновляет список атрибутов информацией о родительском процессе с помощью UpdateProcThreadAttribute, что является решающим шагом для подмены Parent PID.
    • h. Устанавливает список атрибутов в структуре STARTUPINFOEX с помощью info.lpAttributeList.
    • i. Создает новый процесс с расширенной информацией о запуске с помощью CreateProcess. Ему передается путь к исполняемому файлу (exePath.c_str()) и включаются флаги расширенной информации о запуске (EXTENDED_STARTUPINFO_PRESENT | CREATE_NO_WINDOW). Это создает новый процесс с указанным путем к исполняемому файлу и устанавливает Parent PID в PID родительского процесса.
    • j. Наконец, программа выводит PID вновь созданного процесса и PID родительского процесса.

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

Давайте посмотрим, как его использовать.

PPID Spoofer

Запустим блокнот:

PPID Spoofer

Из mspaint.exe

Подмена PPID

Блокнот запущен, проверим его PID и PID родителя:

Подмена PPID

Работает!

Заключение

Благодаря анализу кода на C++ мы выяснили, как PPID Spoofer использует функции Windows API для подмены родительского PID вновь созданного процесса, создавая впечатление, что он происходит от другого родительского процесса. Эта техника имеет большое значение, особенно в контексте разработки вредоносного ПО, где уклонение и обфускация имеют решающее значение.

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

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

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