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

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

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

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

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

Категории

Все категории
Loading categories
livewire-honeypot — Высокоинтерактивный honeypot, имитирующий уязвимое приложение Laravel/Livewire. Перехватывает RCE-эксплойты и веб-шеллы, нацеленные на CVE-2024-47823, CVE-2025-54068 и CVE-2025-14894, а затем анализирует их в изолированных Docker-контейнерах для извлечения индикаторов компрометации (IOCs). | Kitploit
Инструменты/GitHubGitHub/helgesverre/livewire-honeypot
Управление индикаторами компрометации (IOC)Динамический анализ (песочница)Анализ уязвимостейЭксплуатацияВеб-безопасностьАнализ вредоносных программКомандование и УправлениеРазведка угрозРеагирование на Инциденты

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubhelgesverre/livewire-honeypot

livewire-honeypot

Репозиторий
673 месяцев назадЕщё не проверено

Описание

Высокоинтерактивный honeypot, имитирующий уязвимое приложение Laravel/Livewire. Перехватывает RCE-эксплойты и веб-шеллы, нацеленные на CVE-2024-47823, CVE-2025-54068 и CVE-2025-14894, а затем анализирует их в изолированных Docker-контейнерах для извлечения индикаторов компрометации (IOCs).

Поделиться

Livewire Honeypot

Honeypot Python 3.11+ FastAPI License

Livewire Honeypot

Высокоинтерактивная ловушка (honeypot), маскирующаяся под уязвимое приложение Laravel/Livewire. Она перехватывает попытки эксплуатации известных CVE в Livewire, сохраняет загруженные вредоносные файлы (веб-шеллы) и payload-ы для удалённого выполнения кода (RCE) с дедупликацией по SHA-256, а при желании выполняет их в изолированном Docker-контейнере для извлечения индикаторов компрометации (IOC) — URL, IP-адресов и доменов, с которыми вредонос пытается установить связь.

Система работает как два отдельных процесса в целях безопасности: веб-сервер, который перехватывает payload-ы (без доступа к Docker), и sandbox-воркер, анализирующий их в изолированных контейнерах.

Как это работает

root@kitploit:~
Attacker → Nginx → FastAPI → SQLite ← Sandbox Worker (Docker)
                   (capture)            (polls jobs, writes IOCs)
  1. Фасад — Отдаёт реалистичные страницы входа/регистрации Laravel с Livewire-атрибутами wire:, XSRF-токенами и заголовками X-Powered-By: PHP/8.3.12. Автоматические сканеры видят то, что выглядит как реальное уязвимое приложение.

  2. Перехват — Каждый HTTP-запрос прозрачно логируется в SQLite (IP, заголовки, хеш тела, метка времени) слоем ASGI-промежуточного ПО до того, как происходит какая-либо маршрутизация.

  3. Ловушки — Livewire-эндпоинты принимают загрузку файлов и сообщения компонентов точно так же, как это делал бы настоящий фреймворк. Payload-ы классифицируются (PHP-код, сериализованные объекты, shell-команды) и сохраняются с дедупликацией по SHA-256. Каждый интересный payload создаёт постоянную задачу в очереди sandbox_jobs.

  4. Песочница — Отдельный процесс-воркер опрашивает очередь ожидающих задач и выполняет каждый payload в эфемерном Docker-контейнере (read-only файловая система, без сети, cap_drop=ALL). Shim на основе LD_PRELOAD перехватывает сетевые вызовы libc для логирования попыток связи с C2 (command-and-control). Анализатор извлекает IOC и оценивает потенциальные C2-эндпоинты с помощью эвристик.

Целевые CVE

CVECVSSКраткое описаниеЭндпоинт-ловушка
CVE-2024-478239.8 CriticalRCE при загрузке файлов в Livewire через обход MIME-типа. Расширения файлов определяются по MIME-типу, а не проверяются по имени файла, что позволяет загружать .php-файлы, замаскированные под изображения. Затрагивает Livewire < 2.12.7 и < 3.5.2.POST /livewire/upload-file
CVE-2025-540689.2 CriticalRCE через гидратацию свойств в Livewire. Процесс гидратации не санитизирует типы объектов при обновлении свойств компонента, что позволяет выполнять внедрённые payload-ы на стороне сервера. Затрагивает Livewire 3.0.0-beta.1 — 3.6.3.POST /livewire/message
CVE-2025-14894CriticalНеограниченная загрузка файлов с RCE в Filemanager Livewire. Отсутствие проверки типа файла и MIME-типа позволяет неаутентифицированную загрузку исполняемых PHP-файлов.POST /livewire/upload-file

Ловушка-перехватчик *.php также захватывает пост-эксплуатационное сканирование распространённых имён веб-шеллов (например, accesson.php, wp-login.php, admin.php).

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

Предварительные требования: Python 3.11+ и uv.

root@kitploit:~
git clone https://github.com/HelgeSverre/livewire-honeypot.git
cd livewire-honeypot

# Установка зависимостей
uv sync

# Запуск веб-сервера (только перехват, Docker не нужен)
DATA_DIR=./data uv run uvicorn honeypot.main:app --reload --port 8000

# Во втором терминале — запуск sandbox-воркера (требуется Docker)
DATA_DIR=./data uv run python -m honeypot.worker

# Запуск тестов
uv run pytest tests/ -v

Веб-сервер работает автономно — он перехватывает и сохраняет всё даже без запущенного sandbox-воркера. Запускайте воркер, когда хотите автоматический анализ payload-ов.

Примечание: Каталог src/ находится в пути Python через pyproject.toml (src-layout), поэтому honeypot.main:app указывает на src/honeypot/main.py.

Развёртывание

Быстрый старт: DigitalOcean (или любой VPS на Ubuntu 24.04)

Вам понадобится:

  • Аккаунт DigitalOcean (или любой провайдер, дающий root-доступ на Ubuntu 24.04).
  • Домен, которым вы управляете. TLS делает ловушку правдоподобной для сканеров, а в момент выпуска сертификата certbot ваш hostname попадает в журналы Certificate Transparency — именно их Shodan, Censys и большинство массовых эксплойт-китов используют для обнаружения новых целей в течение нескольких часов.

Полное развёртывание — это одна команда после создания VPS. Скрипт выполняет все шаги от «пустого дроплета» до «работающего сервиса с TLS»: apt-пакеты, пользователи и группы, Python venv, sandbox-образ, nginx, certbot и правила файрвола.

root@kitploit:~
# 1. Создайте дроплет за $6/мес (Ubuntu 24.04, 1 ГБ RAM достаточно).
#    На DigitalOcean:
doctl compute droplet create veritron-honeypot \
    --size s-1vcpu-1gb \
    --image ubuntu-24-04-x64 \
    --region fra1 \
    --ssh-keys "$(doctl compute ssh-key list --format ID --no-header | head -1)" \
    --wait

# 2. Укажите A-запись вашего домена на IP дроплета.
#    Дождитесь разрешения DNS, прежде чем продолжать.
dig +short your-domain.example   # должен вернуть IP дроплета

# 3. Скопируйте проект на дроплет.
rsync -az --exclude='.git' --exclude='.venv' --exclude='data' \
    ./ root@<droplet-ip>:/opt/honeypot/

# 4. Запустите bootstrap-скрипт. Передача домена включает TLS через certbot.
ssh root@<droplet-ip> 'cd /opt/honeypot && [email protected] \
    bash deploy/setup.sh your-domain.example'

Всё. Ловушка теперь обслуживает поддельную страницу входа Laravel/Livewire по HTTPS, сохраняет каждый запрос в SQLite и готова анализировать payload-ы в Docker-песочнице.

Что делает bootstrap-скрипт

deploy/setup.sh идемпотентен — повторный запуск безопасен. По порядку он:

  1. Ожидает освобождения блокировки dpkg процессами cloud-init / unattended-upgrades (свежие дроплеты DO удерживают её 1–3 минуты после загрузки).
  2. Устанавливает nginx, certbot, docker.io, системный Python 3.12, sqlite3.
  3. Устанавливает uv (Astral) в /root/.local/bin.
  4. Создаёт сервисных пользователей honeypot (веб) и sandbox (воркер), а также общую группу honeypot-data.
  5. Выполняет uv sync --python /usr/bin/python3.12. Мы намеренно используем Python, установленный через apt, а не встроенный интерпретатор uv — Python от uv живёт в /root/.local/share/uv/, куда непривилегированный сервисный пользователь не может пройти, и вы получите сбивающий с толку status=203/EXEC от systemd, если позволите uv выбрать интерпретатор.
  6. Создаёт /var/honeypot/ с setgid-битом и общим владением группой, чтобы оба сервиса могли читать записи друг друга.
  7. Устанавливает unit-файлы systemd и переписывает ExecStart воркера на использование системного Docker-демона (поставляемый unit предполагает rootless Docker, который сложнее настроить).
  8. Собирает образ sandbox-контейнера (docker build -t honeypot-sandbox sandbox/).
  9. Записывает конфигурацию сайта nginx и помещает директиву limit_req_zone в /etc/nginx/conf.d/ (она должна быть в блоке http {}, а не в server {}).
  10. Открывает порты 22/80/443 в ufw.
  11. Запускает оба сервиса и выполняет certbot --nginx, если был передан домен.

Ручная настройка

Если вы хотите выполнить каждый шаг самостоятельно, а не запускать setup.sh, эквивалентная история shell-команд находится в deploy/setup.sh в виде закомментированных этапов.

Архитектура сервисов

СервисПользовательНазначениеДоступ к Docker
honeypot.servicehoneypotВеб-сервер — перехватывает запросы и payload-ыНет
honeypot-worker.servicesandboxSandbox-воркер — анализирует payload-ы в DockerДа

Оба сервиса используют общий каталог /var/honeypot/ для базы SQLite и хранения payload-ов. Веб-процесс не имеет доступа к Docker-сокету, поэтому даже при компрометации через атакующий трафик он не сможет создавать контейнеры на хосте.

Эксплуатация

root@kitploit:~
# Просмотр логов
journalctl -u honeypot -f
journalctl -u honeypot-worker -f

# Перезапуск сервисов
systemctl restart honeypot honeypot-worker

# Обновление
cd /opt/honeypot && git pull && uv sync
docker build -t honeypot-sandbox sandbox/
systemctl restart honeypot honeypot-worker

Конфигурация

Все настройки управляются через переменные окружения (задаются в unit-файлах systemd или экспортируются перед запуском):

ПеременнаяПо умолчаниюОписание
DATA_DIR/var/honeypotБазовый каталог для всех данных
DB_PATH$DATA_DIR/captures.dbПуть к базе SQLite
SANDBOX_TIMEOUT60Максимальное число секунд на один запуск в песочнице
SANDBOX_MEMORY128mЛимит памяти контейнера
SANDBOX_CPUS0.5Лимит CPU контейнера
SANDBOX_MAX_CONCURRENT3Максимум одновременных sandbox-контейнеров
SANDBOX_IMAGEhoneypot-sandboxDocker-образ для песочницы
WORKER_POLL_INTERVAL2.0Интервал опроса очереди задач в секундах

Запросы к перехваченным данным

Все данные хранятся в одной SQLite-базе (по умолчанию: /var/honeypot/captures.db).

root@kitploit:~
# Последние запросы
sqlite3 /var/honeypot/captures.db \
  "SELECT timestamp, source_ip, method, path, matched_trap
   FROM requests ORDER BY id DESC LIMIT 20;"

# Уникальные payload-ы по частоте
sqlite3 /var/honeypot/captures.db \
  "SELECT sha256, filename, payload_type, times_seen, sandbox_status
   FROM payloads ORDER BY times_seen DESC;"

# Top IP-адреса атакующих
sqlite3 /var/honeypot/captures.db \
  "SELECT ip, total_requests, first_seen, last_seen
   FROM attackers ORDER BY total_requests DESC LIMIT 10;"

# Результаты песочницы с извлечёнными IOC (JSON)
sqlite3 /var/honeypot/captures.db \
  "SELECT payload_id, exit_code, duration_seconds, c2_urls_found, iocs
   FROM sandbox_runs ORDER BY id DESC LIMIT 5;"

# Ожидающие sandbox-задачи
sqlite3 /var/honeypot/captures.db \
  "SELECT id, payload_sha256, status, created_at
   FROM sandbox_jobs ORDER BY id DESC LIMIT 10;"

Данные IOC в sandbox_runs.iocs хранятся в формате JSON с ключами: domains, ips, emails, urls, hashes. Извлекайте их и передавайте в вашу платформу threat intel (MISP, OpenCTI и т.п.) по мере необходимости.

Структура проекта

root@kitploit:~
src/honeypot/
  main.py              # FastAPI веб-приложение (только перехват, без Docker)
  worker.py            # Автономный sandbox-воркер (опрашивает SQLite, нужен Docker)
  config.py            # Настройки из переменных окружения
  capture/
    database.py        # Асинхронная SQLite — requests, payloads, очередь sandbox_jobs
    logger.py          # ASGI промежуточное ПО — логирует каждый запрос
    payloads.py        # Хранилище с дедупликацией по SHA-256 + классификация payload-ов
  facade/
    routes.py          # Страницы с Laravel-отпечатками (login, register и т.д.)
    templates/         # HTML на Jinja2 с Livewire-атрибутами wire:
    static/            # Поддельный livewire.js (отпечаток v3.5.1)
  traps/
    livewire.py        # POST /livewire/message, /upload-file, /preview-file
    php_catchall.py    # Перехват всех запросов к *.php
  sandbox/
    orchestrator.py    # Жизненный цикл Docker-контейнера + укрепление
    analyzer.py        # Разбор артефактов + извлечение IOC + оценка C2
deploy/
  nginx.conf           # Обратный прокси с ограничением частоты запросов
  honeypot.service     # systemd unit (веб)
  honeypot-worker.service  # systemd unit (sandbox-воркер)
  setup.sh             # VPS bootstrap-скрипт
sandbox/
  Dockerfile           # Образ sandbox-контейнера (PHP 8.3 + инструменты атакующего)
  entrypoint.sh        # Точка входа контейнера с сетевым shim на LD_PRELOAD

Дисклеймер

Это исследовательский инструмент для сбора образцов вредоносного ПО и наблюдения за поведением атакующих на инфраструктуре, которой вы владеете. Это не производственный продукт безопасности. Развёртывайте только на системах, которыми вы управляете, и учитывайте, что перехват и выполнение payload-ов атакующих могут иметь правовые последствия в вашей юрисдикции. База SQLite и файлы payload-ов растут без ограничений — следите за использованием диска и внедряйте политики хранения по мере необходимости.

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

Приветствуются issues и pull request-ы.

Лицензия

MIT

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