Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
process-injection-playground — Коллекция образцов и материалов, связанных с внедрением в процессы. | Kitploit
Инструменты/GitHubGitHub/oscerd/process-injection-playground
CTFТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHuboscerd/process-injection-playground

process-injection-playground

Коллекция образцов и материалов, связанных с внедрением в процессы.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
11310 месяцев назадЕщё не проверено

Linux Process Injection Playground

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

Обзор

Инжекция процессов — это техника, используемая для выполнения кода в контексте другого процесса. Хотя она часто ассоциируется с вредоносным ПО, эти методы также полезны для:

  • Исследований в области безопасности: Понимание векторов атак и разработка средств защиты
  • Отладки: Анализ и модификация работающих приложений
  • Инструментирования: Профилирование производительности и мониторинг
  • Тестирования на проникновение: Авторизованные оценки безопасности
  • Соревнований CTF: Задания Capture The Flag

Доступные техники

1. Инжекция кода на основе Ptrace

Каталог: ptrace/

Классический метод инжекции процессов с использованием системного вызова ptrace() для прямой записи шеллкода в память процесса и перенаправления исполнения.

Ключевые особенности:

  • Прямое манипулирование памятью через PTRACE_POKETEXT
  • Перехват указателя инструкций (RIP)
  • Инжекция сырого шеллкода

Вариант использования: Понимание низкоуровневого управления процессами и прямой инжекции кода

Подробнее →


2. Инжекция через LD_PRELOAD

Каталог: ld_preload/

Интерпозиция функций с использованием переменной окружения LD_PRELOAD для загрузки вредоносной библиотеки перед всеми остальными библиотеками.

Ключевые особенности:

  • Инжекция на основе переменных окружения
  • Перехват функций через интерпозицию символов
  • Функции конструктора/деструктора
  • Простота реализации, но также лёгкость обнаружения

Вариант использования: Перехват функций, мониторинг API, изменение поведения

Подробнее →


3. Инжекция записью через /proc/mem

Каталог: proc_mem/

Прямая запись в память через файловый интерфейс /proc/<pid>/mem в сочетании с ptrace для управления процессом.

Ключевые особенности:

  • Прямой доступ к памяти через файловую систему
  • Более эффективно, чем PTRACE_POKETEXT для больших полезных нагрузок
  • Одна операция записи для всего шеллкода
  • Отсутствие требований к выравниванию по словам

Вариант использования: Быстрая массовая инжекция в память, обход традиционных ограничений ptrace

Подробнее →


4. Инжекция библиотеки через dlopen()

Каталог: dlopen_inject/

Сложная техника, которая заставляет запущенный процесс загрузить разделяемую библиотеку путём перехвата исполнения для вызова dlopen().

Ключевые особенности:

  • Работает с уже запущенными процессами (в отличие от LD_PRELOAD)
  • Постоянство (библиотека остаётся загруженной)
  • Позволяет реализовывать сложные полезные нагрузки с полными возможностями библиотек
  • Может перехватывать функции как LD_PRELOAD, но после запуска процесса

Вариант использования: Продвинутая постоянная инжекция, манипулирование библиотеками во время выполнения

Подробнее →


Быстрый старт

Предварительные требования

  • Система Linux (протестировано на x86_64)
  • Компилятор GCC
  • root-доступ или возможность CAP_SYS_PTRACE
  • Инструмент сборки Make

Сборка всех примеров

# Build ptrace injection
cd ptrace && make all

# Build LD_PRELOAD injection
cd ../ld_preload && make all

# Build /proc/mem injection
cd ../proc_mem && make all

# Build dlopen injection
cd ../dlopen_inject && make all

Базовый сценарий использования

Каждая техника следует схожему шаблону:

  1. Запустите процесс-жертву:

    cd <technique>/victim-process
    ./sample
    

    Запомните отображаемый PID

  2. Выполните инжекцию:

    cd <technique>
    sudo ./<injector> <PID> [additional args]
    
  3. Наблюдайте результаты: Проверьте вывод процесса-жертвы на предмет выполнения внедрённого кода

Смотрите отдельные README-файлы для получения инструкций по конкретным техникам.

Сравнительная таблица

ТехникаСложностьСкрытностьПостоянствоСкоростьРаботает с запущенным процессом
ptraceСредняяНизкаяНетСредняяДа
LD_PRELOADНизкаяОчень низкаяНетБыстраяНет
/proc/memСредняяНизкаяНетБыстраяДа
dlopenВысокаяСредняяДаСредняяДа

Какую технику когда использовать?

  • ptrace: Изучение основ, простая инжекция шеллкода
  • LD_PRELOAD: Быстрый перехват функций, отладка, когда вы контролируете запуск процесса
  • /proc/mem: Быстрая инжекция больших полезных нагрузок, когда PTRACE_POKETEXT слишком медленный
  • dlopen: Постоянная инжекция, сложные полезные нагрузки, когда нужны полные возможности библиотек

Вопросы безопасности

Меры защиты

  1. Yama ptrace_scope: Ограничение ptrace привилегированными пользователями

    echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  2. SELinux/AppArmor: Мандатный контроль доступа

  3. Мониторинг: Использование auditd для журналирования попыток ptrace и инжекции процессов

    auditctl -a exit,always -F arch=b64 -S ptrace
    
  4. Проверка целостности во время выполнения: Периодическая проверка памяти процессов

  5. Подпись кода: Проверка подписей библиотек

Методы обнаружения

  • Мониторинг /proc/<pid>/maps на предмет неожиданных областей памяти или библиотек
  • Отслеживание попыток прикрепления ptrace через системные журналы
  • Проверка переменных окружения (LD_PRELOAD)
  • Использование таких инструментов, как lsof, pmap и утилит мониторинга процессов
  • Включение модулей безопасности ядра

Правовое и этическое уведомление

ВАЖНО: Эти техники следует использовать только в авторизованных контекстах:

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

Устранение неполадок

Частые проблемы

Ошибки отказа в доступе:

  • Запускайте с sudo
  • Проверьте /proc/sys/kernel/yama/ptrace_scope
  • Проверьте политики SELinux/AppArmor

Инжекция завершается молча:

  • Убедитесь, что целевой процесс не слинкован статически
  • Проверьте, что в целевом процессе загружены необходимые библиотеки
  • Убедитесь, что шеллкод соответствует вашей архитектуре

Ошибки сегментации:

  • Убедитесь, что вы работаете на архитектуре x86_64
  • Проверьте, что целевой процесс не защищён
  • Обеспечьте правильное выравнивание памяти

Смотрите README-файлы каждой техники для получения конкретных рекомендаций по устранению неполадок.

Участие в разработке

Вклад приветствуется! Возможные дополнения:

  • Дополнительные техники инжекции (перехват GOT/PLT, манипулирование VDSO и т.д.)
  • Эквиваленты для Windows для сравнения
  • Инструменты обнаружения/предотвращения
  • Поддержка архитектуры ARM
  • Дополнительные примеры шеллкода
  • Примеры защитного программирования

Ссылки

Документация

  • man 2 ptrace — системный вызов трассировки процессов
  • man 5 proc — документация файловой системы /proc
  • man 3 dlopen — загрузка динамических библиотек
  • Исходный код ядра Linux: управление памятью процессов

Связанные исследования

  • Техники и эволюция "Linux Process Injection"
  • Методологии "Ptrace Injection"
  • Лучшие практики "Shared Library Injection"
  • MITRE ATT&CK: T1055 (Process Injection)

Лицензия

Скачать инструмент