autopentest

Exploitation активный

Экспериментальный фреймворк для проведения автономных black-box пентестов с использованием больших языковых моделей, интегрированных через LangChain.


Установка
git clone https://github.com/JuliusHenke/autopentest.git
cd autopentest
cp .env.example .env
poetry install
playwright install
показать оригинал переведено ИИ

🔐 AutoPentest

Улучшение управления уязвимостями с помощью автономных агентов LLM

AutoPentest — это экспериментальный фреймворк для проведения автономных чёрно-коробочных тестов на проникновение с использованием больших языковых моделей (LLM). Интегрированный с самыми популярными провайдерами LLM и фреймворком агентов LangChain, AutoPentest может автономно выполнять сложные многоэтапные оценки безопасности, дополненные внешними инструментами и базами знаний.

Этот проект основан на данной статье: https://arxiv.org/abs/2505.10321

📄 Аннотация

Одной из активно развивающихся областей исследований является использование больших языковых моделей (LLM) в тестировании на проникновение, что обещает снижение затрат и, следовательно, возможность более частого проведения тестов. Мы проводим обзор связанных работ, выявляя лучшие практики и распространённые проблемы оценки. Затем представляем AutoPentest — приложение для выполнения чёрно-коробочных тестов на проникновение с высокой степенью автономности. AutoPentest основан на LLM GPT-4o от OpenAI и фреймворке агентов LangChain. Он способен выполнять сложные многоэтапные задачи, дополненные внешними инструментами и базами знаний. Мы проводим исследование на трёх машинах в стиле capture-the-flag от Hack The Box (HTB), сравнивая нашу реализацию AutoPentest с базовым подходом — ручным использованием интерфейса ChatGPT-4o. Оба подхода способны выполнить 15–25 % подзадач на машинах HTB, при этом AutoPentest немного превосходит ChatGPT. Общая стоимость использования AutoPentest во всех экспериментах составила $96,20, в то время как месячная подписка на ChatGPT Plus стоит $20. Результаты показывают, что дальнейшие усилия по реализации и использование более мощных LLM, выпущенных в будущем, вероятно, сделают этот подход жизнеспособной частью управления уязвимостями.

Вопросы по научной части: research@juliushenke.com


⚠️ Отказ от ответственности

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

  • ❌ Не используйте AutoPentest для несанкционированного или незаконного тестирования на проникновение.
  • 🛡️ Авторы и участники не предоставляют никаких гарантий работоспособности, точности или безопасности.
  • 🧪 Это экспериментальный инструмент и может давать непредсказуемые или неверные результаты.
  • 📜 Используя это программное обеспечение, вы соглашаетесь с условиями лицензии.

📦 Установка

В настоящее время установка возможна только напрямую из исходного кода.

  1. Выберите виртуальную машину для запуска autopentest. Рекомендуется Kali Linux, так как она поставляется с предустановленными многими инструментами для тестирования на проникновение.
  2. Клонируйте этот репозиторий и перейдите в корневую директорию: bash git clone https://github.com/JuliusHenke/autopentest.git cd autopentest
  3. В корневой директории репозитория скопируйте .env.example в .env и заполните необходимые переменные окружения. bash cp .env.example .env Подробнее о том, какие переменные окружения требуются для каждого провайдера чат-моделей, можно узнать здесь: https://python.langchain.com/docs/integrations/chat/
  4. Установите Poetry, затем используйте его для установки всех необходимых пакетов Python. Он автоматически создаст виртуальное окружение. bash poetry install По умолчанию устанавливаются только зависимости для провайдеров openai и azure-openai. При необходимости можно добавить конкретного провайдера LLM. Посмотрите ./pyproject.toml для доступных дополнений. bash poetry install --extras "anthropic" Или установите все провайдеры: bash poetry install --extras "all-providers"
  5. С помощью playwright установите бинарные файлы браузера: bash playwright install

🚀 Использование

Для запуска AutoPentest используйте следующую команду в любой директории проекта AutoPentest (например, ./experiments). Всегда убедитесь, что у вас есть разрешение на тестирование целевой системы!

poetry run autopentest <TARGET_IP_OR_DOMAIN>

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

Приветствуются любые вклады! Пожалуйста, открывайте issues или отправляйте pull request для улучшения AutoPentest.


🙏 Благодарности

Этот продукт использует API NVD, но не одобрен и не сертифицирован NVD.

Войдите, чтобы оставить комментарий