Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
livewire-honeypot — 高交互蜜罐,模拟存在漏洞的 Laravel/Livewire 应用程序。捕获针对 CVE-2024-47823、CVE-2025-54068 和 CVE-2025-14894 的 RCE 漏洞利用和 webshell,然后在沙盒化 Docker 容器中进行分析以提取 IOC。 | Kitploit
工具/GitHubGitHub/helgesverre/livewire-honeypot
危害指标 (IOC) 管理动态分析 (沙盒)漏洞分析漏洞利用Web安全恶意软件分析命令与控制威胁情报事件响应
GitHubhelgesverre/livewire-honeypot

livewire-honeypot

高交互蜜罐,模拟存在漏洞的 Laravel/Livewire 应用程序。捕获针对 CVE-2024-47823、CVE-2025-54068 和 CVE-2025-14894 的 RCE 漏洞利用和 webshell,然后在沙盒化 Docker 容器中进行分析以提取 IOC。

673个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

Livewire 蜜罐

Honeypot Python 3.11+ FastAPI License

Livewire 蜜罐

一个高交互蜜罐,伪装成存在漏洞的 Laravel/Livewire 应用程序。它能捕获针对已知 Livewire CVE 的漏洞利用尝试,存储上传的恶意文件(WebShell)和远程代码执行(RCE)负载,并通过 SHA-256 去重,还能选择性地在沙箱化的 Docker 容器中执行这些负载,以提取攻击指标(IOC)——即恶意软件试图联系的 URL、IP 和域名。

出于安全考虑,系统作为两个独立的进程运行:一个Web 服务器(负责捕获负载,无 Docker 访问权限)和一个沙箱工作者(负责在隔离容器中分析负载)。

工作原理

root@kitploit:~
攻击者 → Nginx → FastAPI → SQLite ← 沙箱工作者 (Docker)
                   (捕获)            (轮询任务,写入IOC)
  1. 外观层 — 提供逼真的 Laravel 登录/注册页面,包含 Livewire 的 wire: 属性、XSRF 令牌以及 X-Powered-By: PHP/8.3.12 头。自动化扫描工具看到的将是一个看起来真实且存在漏洞的应用。

  2. 捕获层 — 每个 HTTP 请求都会通过 ASGI 中间件层透明地记录到 SQLite(IP、头信息、正文哈希、时间戳),在整个路由处理之前完成。

  3. 陷阱层 — Livewire 端点像真实框架一样接受文件上传和组件消息。负载会被分类(PHP 代码、序列化对象、shell 命令),并通过 SHA-256 去重存储。每个有趣的负载都会在 sandbox_jobs 队列中创建一个持久任务。

  4. 沙箱层 — 一个独立的工作者进程轮询待处理任务,并在临时 Docker 容器(只读文件系统、无网络、cap_drop=ALL)中执行每个负载。一个 LD_PRELOAD 垫片拦截 libc 网络调用,记录 C2(命令与控制)通信尝试。分析器提取 IOC,并使用启发式方法对潜在的 C2 端点进行评分。

目标 CVE

一个 *.php 的兜底陷阱还会捕获后渗透阶段对常见 WebShell 文件名(如 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

# 启动 Web 服务器(仅捕获,无需 Docker)
DATA_DIR=./data uv run uvicorn honeypot.main:app --reload --port 8000

# 在第二个终端中启动沙箱工作者(需要 Docker)
DATA_DIR=./data uv run python -m honeypot.worker

# 运行测试
uv run pytest tests/ -v

即使没有运行沙箱工作者,Web 服务器也能独立工作——它会捕获并存储所有数据。当你需要自动分析负载时,再启动工作者。

注意: src/ 目录已通过 pyproject.toml(源码布局)加入 Python 路径,因此 honeypot.main:app 对应 src/honeypot/main.py。

部署

快速启动:DigitalOcean(或任何 Ubuntu 24.04 VPS)

你需要:

  • 一个 DigitalOcean 账户(或任何能提供 Ubuntu 24.04 root 权限的供应商)。
  • 一个你控制的域名。TLS 使陷阱对扫描器看起来更真实,而且一旦 certbot 签发证书,你的主机名就会出现在证书透明度日志中——而这正是 Shodan、Censys 以及大多数批量漏洞利用工具在几小时内发现新目标的方式。

只要 VPS 存在,整个部署只需一条命令。该脚本处理从“裸机 droplet”到“带有 TLS 的服务运行”的所有步骤——apt 包、用户和组、Python venv、沙箱镜像、nginx、certbot 和防火墙规则。

root@kitploit:~
# 1. 创建一个 $6/月的 droplet (Ubuntu 24.04, 1 GB 内存足够).
#    在 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 记录指向 droplet 的 IP.
#    继续之前先等待 DNS 解析完成。
dig +short your-domain.example   # 应返回 droplet IP

# 3. 将项目复制到 droplet 上。
rsync -az --exclude='.git' --exclude='.venv' --exclude='data' \
    ./ root@<droplet-ip>:/opt/honeypot/

# 4. 运行引导脚本。传入你的域名将启用 certbot 的 TLS。
ssh root@<droplet-ip> 'cd /opt/honeypot && [email protected] \
    bash deploy/setup.sh your-domain.example'

这就完成了。蜜罐现在通过 HTTPS 提供一个伪造的 Laravel/Livewire 登录页面,捕获所有请求到 SQLite,并准备好在 Docker 沙箱中分析负载。

引导脚本做了什么

deploy/setup.sh 是幂等的——重复运行是安全的。按顺序:

  1. 等待 cloud-init / unattended-upgrades 释放 dpkg 锁(新创建的 DO droplet 在启动后需要 1-3 分钟)。
  2. 安装 nginx、certbot、docker.io、系统 Python 3.12、sqlite3。
  3. 在 /root/.local/bin 下安装 uv(Astral)。
  4. 创建 honeypot(Web)和 sandbox(工作者)服务用户,以及共享的 honeypot-data 组。
  5. 运行 uv sync --python /usr/bin/python3.12。我们特意使用 apt 安装的 Python,而不是 uv 自带的解释器——uv 的 Python 位于 /root/.local/share/uv/,无特权的服务用户无法遍历该目录,如果让 uv 选择解释器,systemd 会报出令人困惑的 status=203/EXEC 错误。
  6. 创建 /var/honeypot/,设置 setgid 位和共享组所有权,使两个服务都能读取彼此的写入内容。
  7. 安装 systemd 单元文件,并重写工作者的 ExecStart 以使用系统 Docker 守护进程(自带的单元假定是 rootless Docker,设置起来更麻烦)。
  8. 构建沙箱容器镜像(docker build -t honeypot-sandbox sandbox/)。
  9. 写入 nginx 站点配置,将 limit_req_zone 指令放入 /etc/nginx/conf.d/(它必须在 http {} 块中,而不是 块中)。

手动设置

如果你希望自己一步步操作,而不是运行 setup.sh,等效的 shell 历史记录以注释阶段的形式保存在 deploy/setup.sh 中。

服务架构

服务用户用途Docker 访问权限
honeypot.servicehoneypotWeb 服务器——捕获请求和负载

两个服务共享 /var/honeypot/,用于 SQLite 数据库和负载存储。Web 进程没有 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

配置

所有设置均通过环境变量控制(在 systemd 单元文件中设置,或在运行前导出):

查询捕获的数据

所有数据位于单个 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;"

# 按频率排列的唯一负载
sqlite3 /var/honeypot/captures.db \
  "SELECT sha256, filename, payload_type, times_seen, sandbox_status
   FROM payloads ORDER BY times_seen DESC;"

# 最活跃的攻击者 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;"

# 待处理的沙箱任务
sqlite3 /var/honeypot/captures.db \
  "SELECT id, payload_sha256, status, created_at
   FROM sandbox_jobs ORDER BY id DESC LIMIT 10;"

sandbox_runs.iocs 中的 IOC 数据以 JSON 存储,键包括:domains、ips、emails、urls、hashes。可按需提取并输入到你的威胁情报平台(MISP、OpenCTI 等)。

项目结构

root@kitploit:~
src/honeypot/
  main.py              # FastAPI Web 应用(仅捕获,无 Docker)
  worker.py            # 独立沙箱工作者(轮询 SQLite,需要 Docker)
  config.py            # 从环境变量读取设置
  capture/
    database.py        # 异步 SQLite——请求、负载、sandbox_jobs 队列
    logger.py          # ASGI 中间件——记录每个请求
    payloads.py        # SHA-256 去重存储 + 负载分类
  facade/
    routes.py          # 具有 Laravel 特征的页面(登录、注册等)
    templates/         # 包含 Livewire wire: 属性的 Jinja2 HTML
    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 单元(Web)
  honeypot-worker.service  # systemd 单元(沙箱工作者)
  setup.sh             # VPS 引导脚本
sandbox/
  Dockerfile           # 沙箱容器镜像(PHP 8.3 + 攻击者工具)
  entrypoint.sh        # 容器入口点,带有 LD_PRELOAD 网络垫片

免责声明

这是一个研究工具,用于在你拥有的基础设施上收集恶意软件样本并观察攻击者行为。它不是生产安全产品。仅在你控制的系统上部署,并注意捕获和执行攻击者负载可能在你所在司法管辖区产生法律影响。SQLite 数据库和负载文件会无限增长——请监控磁盘使用情况,并根据需要实施保留策略。

贡献

欢迎提交 Issue 和 Pull Request。

许可证

MIT

下载工具
CVECVSS摘要陷阱端点
CVE-2024-478239.8 严重Livewire 文件上传 RCE(通过 MIME 类型绕过)。 文件扩展名根据 MIME 类型猜测,而非通过文件名验证,导致 .php 文件可伪装成图片上传。影响 Livewire < 2.12.7 和 < 3.5.2。POST /livewire/upload-file
CVE-2025-540689.2 严重Livewire 属性填充 RCE。 属性填充过程未能对组件属性更新中的对象类型进行净化,允许注入的负载在服务端执行。影响 Livewire 3.0.0-beta.1 至 3.6.3。POST /livewire/message
CVE-2025-14894严重Livewire Filemanager 无限制上传 RCE。 缺少文件类型和 MIME 验证,允许未认证用户上传可执行的 PHP 文件。POST /livewire/upload-file
server {}
  • 在 ufw 中开放 22/80/443 端口。
  • 启动两个服务,如果传入了域名则运行 certbot --nginx。
  • 否
    honeypot-worker.servicesandbox沙箱工作者——在 Docker 中分析负载是
    变量默认值描述
    DATA_DIR/var/honeypot所有数据的基础目录
    DB_PATH$DATA_DIR/captures.dbSQLite 数据库路径
    SANDBOX_TIMEOUT60每次沙箱运行的最大秒数
    SANDBOX_MEMORY128m容器内存限制
    SANDBOX_CPUS0.5容器 CPU 限制
    SANDBOX_MAX_CONCURRENT3最大并发沙箱容器数
    SANDBOX_IMAGEhoneypot-sandbox沙箱的 Docker 镜像
    WORKER_POLL_INTERVAL2.0任务轮询间隔(秒)