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

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

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

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

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

Категории

Все категории
Loading categories
asminject — Сильно модифицированный форк проекта dlinject Дэвида Бьюкенена. Внедряет произвольные ассемблерные (или предварительно скомпилированные бинарные) полезные нагрузки напрямую в процессы Linux на архитектурах x86-64, x86 и ARM32 без использования ptrace, обращаясь к /proc/<pid>/mem. Полезен для определённых сценариев пост-эксплуатации, восстановления содержимого из памяти процессов и т.д. | Kitploit
Инструменты/GitHubGitHub/bishopfox/asminject
Шелл-кодПост-эксплуатацияТестирование на ПроникновениеРазработка Полезной НагрузкиПобег из Контейнера
GitHubbishopfox/asminject

asminject

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Сильно модифицированный форк проекта dlinject Дэвида Бьюкенена. Внедряет произвольные ассемблерные (или предварительно скомпилированные бинарные) полезные нагрузки напрямую в процессы Linux на архитектурах x86-64, x86 и ARM32 без использования ptrace, обращаясь к /proc/<pid>/mem. Полезен для определённых сценариев пост-эксплуатации, восстановления содержимого из памяти процессов и т.д.

14815313 лет назадПроверено Kitploit
Поделиться

asminject.py

asminject.py — это значительно модифицированный форк проекта dlinject Дэвида Бьюкенена. Внедряет произвольные ассемблерные (или предварительно скомпилированные бинарные) полезные нагрузки непосредственно в процессы Linux на архитектурах x86-64, x86 и ARM32, обращаясь к /proc/<pid>/mem вместо присоединения через ptrace. Полезен для вмешательства в работу доверенных процессов, реализации некоторых сценариев постэксплуатации, извлечения содержимого из памяти процессов и обхода ряда средств контроля безопасности. Может внедрять код в процессы внутри контейнеров извне контейнера, при условии наличия root-доступа к хосту.

Подробнее о asminject.py и его происхождении можно также прочитать на странице инструмента Bishop Fox, включая подробный разбор работы, вдохновившей создание этого инструмента.

В этом документе:

  • Краткие описания или TLDR
  • Происхождение
  • Примеры
  • А как насчёт ограничений ptrace_scope в Yama?
  • Планы на будущее

Отдельная, более подробная документация:

  • Как работает asminject.py — обсуждение архитектуры на высоком уровне с углублением в некоторые технические детали, особенно для читателей, которые раньше не работали с инструментами инъекции в память
  • Начало работы
  • Отличия от dlinject.py
  • Специализированные параметры
  • Устранение неполадок
  • История версий

Краткие описания или TLDR

  • "asminject.py похож на dlinject, за исключением того, что позволяет внедрять любую нужную полезную нагрузку, а не только загружать библиотеку, и работает на нескольких архитектурах."
  • "asminject.py отдалённо напоминает Frida, но не присоединяется через интерфейс ptrace, поэтому процессы не могут заблокировать его, вызывая ptrace по отношению к самим себе."

Происхождение

asminject.py был написан для двух основных сценариев в пентесте Linux-окружений:

  • Атака на средства контроля безопасности на уровне процессов и контейнеров с точки зрения атакующего, имеющего root-доступ к хосту
  • Избегание обнаружения после успешной эксплуатации другой уязвимости

Например, рассмотрим пентест, в ходе которого тестировщик получил root-доступ к серверу, на котором размещено множество контейнеров. В одном из контейнеров обрабатываются банковские переводы, и внутри него установлен очень надёжный продукт для защиты конечных точек. Когда пентестер пытается изменить данные банковского перевода изнутри контейнера, ПО для защиты конечных точек обнаруживает и блокирует эту попытку. asminject.py позволяет пентестеру внедрять произвольный код непосредственно в память процесса банковского ПО или даже в продукт защиты конечных точек извне контейнера. Подобно жертве «злого демона» Декарта, программное обеспечение безопасности внутри контейнера беспомощно, поскольку оно существует в среде, полностью контролируемой атакующим.

Оригинальный dlinject.py был разработан специально для загрузки общих библиотек Linux в существующий процесс. asminject.py делает всё, что делал оригинал, и гораздо больше. Он выполняет произвольный ассемблерный код и включает шаблоны для множества атак. Он также был переработан, чтобы помогать избегать обнаружения механизмами безопасности, которые реагируют на потенциально подозрительную активность, например на события загрузки библиотек.

Примеры

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

Базовый синтаксис вызова asminject.py выглядит следующим образом:

# python3 ./asminject.py <target_process_id> <payload> \
  --arch [x86-64|x86|arm32] --relative-offsets-from-binaries --stop-method "slow" \
  --var <payload_variable_1_name> <payload_variable_1_value> \
  # ... \
  --var <payload_variable_n_name> <payload_variable_n_value>

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

  • Базовые примеры — простые полезные нагрузки, которые, например, заставляют существующий процесс копировать файлы за вас
  • Внедрение Python-кода
  • Внедрение PHP-кода
  • Внедрение Ruby-кода
  • Внедрение шеллкода/стеджера
  • Внедрение общей библиотеки

А как насчёт ограничений ptrace_scope в Yama?

Большинство дистрибутивов Linux включают модуль безопасности ядра под названием Yama, который контролирует доступ к использованию возможности ptrace в отношении других процессов. Хотя asminject.py не присоединяется к интерфейсу отладчика, ему всё равно требуется разрешение на использование возможности ptrace. Если вы получаете ошибки, связанные с этой возможностью, проверьте содержимое /proc/sys/kernel/yama/ptrace_scope. Если оно установлено в 2, выполните следующую команду от имени root:

echo 1 > /proc/sys/kernel/yama/ptrace_scope

Значения 3 и выше нельзя сбросить без перезагрузки. Однако, если вы являетесь уполномоченным администратором Linux-системы, где кто-то случайно установил /proc/sys/kernel/yama/ptrace_scope в 3, или проводите санкционированный пентест окружения, где установлено это значение, обратитесь к каталогу ptrace_scope_kernel_module — там описан возможный обходной путь, не требующий перезагрузки.

Планы на будущее

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