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

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

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

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

工具目录

分类

查看所有分类
Loading categories
honeyprompt — LLM优先的欺骗框架:“会回应的蜜罐!™” | Kitploit
工具/GitHubGitHub/alectrocute/honeyprompt
OSINT (开源情报)容器安全Web安全网络安全威胁情报红队事件响应AI 安全
GitHubalectrocute/honeyprompt

honeyprompt

LLM优先的欺骗框架:“会回应的蜜罐!™”

查看仓库
1911个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

honeyprompt

banner

推出 honeyprompt,这是一个以LLM优先的欺骗框架,专为/由Web开发者打造。这是 @alectrocute 的个人热爱项目。

支持所有主要的云端和本地LLM提供商。支持SSH、HTTP、TLS、TCP、telnet等。它作为一个小的容器(以及一个单一的静态二进制文件)发布,所有控制旋钮都集中在一个 honeyprompt.yaml 文件中。

无需编译插件,无需运行数据库,易于扩展,可在低端硬件上部署。

演示实例

演示实例位于 172.233.151.216,未认证的Web面板在这里:http://172.233.151.216:9090。这是一个运行在廉价Linode VPS上的honeyprompt公开实例,使用 openrouter/free 作为唯一的LLM提供商/模型。

快速启动

为了2026年最简单的设置,我们推荐使用Docker和OpenRouter/openrouter/free 作为LLM提供商。所有主要的云端和本地LLM提供商都受支持。三个文件和一个命令即可完成完整的默认部署:七个由LLM支持的诱饵、持久化事件存储和操作面板。

1. 获取默认配置、compose文件和env模板:

root@kitploit:~
# 如果你没有Docker:
# curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

mkdir honeypot && cd honeypot
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/honeyprompt.yaml
wget https://raw.githubusercontent.com/alectrocute/honeyprompt/main/compose.yaml
wget -O .env https://raw.githubusercontent.com/alectrocute/honeyprompt/main/.env.example

(或者克隆仓库并 cd 进去——同样的三个文件。)

2. 填写 .env。 两个必需的值:

root@kitploit:~
OPENROUTER_API_KEY=sk-or-...            # 使用带有支出限制的专用密钥
HONEYPROMPT_PANEL_PASSWORD=changeme     # 面板的基本认证密码

3. 启动它:

root@kitploit:~
docker compose up -d

4. 戳一下它:

root@kitploit:~
ssh -p 2222 root@localhost            # 密码:root — 然后输入任何内容
curl http://localhost:2375/v1.54/containers/json   # "暴露的" Docker API

5. 在只读面板上观看它发生,访问 http://127.0.0.1:9090(以 admin 用户和你的面板密码登录)。每个连接、凭据和命令都实时流式传输。如果你部署到远程主机,你需要暴露 :9090 端口在 compose.yaml 中。不建议在生产部署中使用。

对于生产部署,请固定一个带编号的版本而不是 latest——在 .env 中设置 HONEYPROMPT_IMAGE。

你刚刚下载的 honeyprompt.yaml 是一个完整注释的展示。它内置了以下配置文件:

  • 通用企业Web服务器 — 端口80,最大的覆盖范围;/ 立即提供标准的nginx欢迎页面,更深层次的路径则落入LLM,生成完整的HTML/CSS内网页面、登录表单和管理面板,旨在让攻击者持续点击。
  • MCP / 代理网关 — 可流式HTTP发现、OAuth元数据、JSON-RPC工具调用和诱人的生产工具。
  • Docker Engine API 29.5 — 真实云蠕虫使用的未认证端口2375界面。
  • Kubernetes API v1.36 — 命名空间、工作负载、Secret、ConfigMap和RBAC发现。
  • Ubuntu 26.04 AI构建基础设施 — SSH、GPU工作负载、Docker、kubeconfigs、CI状态和提供商凭据。
  • Redis 8.8 — 用于凭据窃取、持久化和横向移动的常见RESP探测。
  • 工业边缘 / OT — 一个故意遗留的Telnet管理界面,因为现代防御仍然需要捕获针对旧基础设施的攻击。

无LLM运行

[!重要] 即使你使用LLM,也要确定最常用的路径并为它们添加静态规则。这将节省大量LLM代币,并加速对不值得LLM调用的请求的响应。随机示例:whoami、健康检查、favicon、版本探测等。

这个最小的 honeyprompt.yaml 使用两个静态规则模拟了一个SSH机器,没有LLM:

root@kitploit:~
panel:
  enabled: true
  address: "0.0.0.0:8080"

events:
  buffer: 2000
  file: /data/events.jsonl # 持久化的攻击者活动

services:
  - protocol: ssh
    address: "0.0.0.0:2222"
    description: "Ubuntu 26.04 LTS build runner"
    serverName: "gpu-runner-07"
    passwordRegex: "^(root|admin|123456)$" # 哪些密码“有效”
    commands:
      - regex: "^whoami$"
        handler: "root"
      - regex: "^(.+)$"
        handler: "bash: command not found"
root@kitploit:~
docker run --rm \
  -p 2222:2222 -p 8080:8080 \
  -v "$(pwd)/honeyprompt.yaml:/etc/honeyprompt/honeyprompt.yaml:ro" \
  -v honeyprompt-data:/data \
  alectrocute/honeyprompt:latest

部署

对于持久化部署,请使用附带的 compose.yaml。部署指南 涵盖了Docker Hub发布、所需的GitHub密钥、端口和防火墙设置、通过SSH的面板访问、升级、回滚、事件存储和隔离。

为什么要使用以LLM优先的欺骗(简要说明)

蜜罐只需做好一件事:保持足够说服力,让攻击者持续输入。他们运行的每个命令都是情报——他们使用的工具、重复使用的凭据、他们假设你尚未修补的CVE。静态蜜罐在有人运行作者未预期的命令时就会暴露身份。honeyprompt将这个时刻交给LLM,因此shell会像真实系统一样回答 dmesg | tail 或 cat /etc/shadow,从而让会话继续下去。

请观看Adel Karimi精彩的DEF CON 32演讲,关于Galah(第一个?)LLM蜜罐,它启发了我这个项目:https://www.youtube.com/watch?v=XGsm4Qcc_Ag

记录内容:两个独立的流

这部分值得提前理解,因为两者被故意分开:

  • 欺骗事件:每次攻击者交互:连接、认证尝试、每个命令或请求、honeyprompt发送回的响应、哪个提供商和模型回答了以及耗时。这是你的威胁情报。它保存在一个有界的內存缓冲区中,用于实时面板,你也可以将其全部持久化到磁盘。
  • 操作日志:启动、绑定的端口、提供商故障、关闭、内部错误。这是运行时不正常时你要读的内容。它与攻击者活动无关。

你可以分开配置它们:

root@kitploit:~
# 蜜罐:攻击者活动。
events:
  buffer: 2000 # 保留在内存中以供面板使用的最近事件
  file: /data/events.jsonl # 以JSON Lines格式持久化每个事件

# 运行时的自身诊断。
logging:
  level: info # debug | info | warn | error
  format: text # 在控制台上的显示方式:text(人类可读)或 json
  file: /data/honeyprompt.log # 可选;在磁盘上始终是JSON

events.jsonl 是每行一个自包含的JSON对象——准备好 tail -f、发送到SIEM或使用 jq 重放。上面的Docker命令将命名卷 honeyprompt-data 挂载到 /data,因此事件在容器替换后仍然存在。这两个文件是追加写入的,并在干净关闭时刷新。

format 仅影响操作日志在控制台上的渲染;操作日志文件(如果启用)始终是结构化JSON,以便于解析。

Web面板

截图

一个可选的只读仪表板,实时流式传输欺骗事件,按协议分类,并一键导出为JSON:

root@kitploit:~
panel:
  enabled: true
  address: "0.0.0.0:8080"
  auth: # 可选的基本认证
    username: admin
    password: "${HONEYPROMPT_PANEL_PASSWORD}"

该仪表板是纯HTML、CSS和JavaScript(src/panel/assets),嵌入到二进制文件中。如果不需要认证,请将 auth 保持未定义。

提供商

每个提供商都有自己的模块,具有自己的超时、重试、速率限制和标头。密钥来自环境变量。开箱即用的提供商:

负载均衡和故障转移

配置提供商,选择一个 pool.strategy(round-robin、weighted、random 或 failover),honeyprompt会在它们之间分配流量。如果选择的提供商超时或返回可重试的错误,honeyprompt会透明地转移到下一个——一个宕机的后端绝不会让蜜罐离线。不可重试的错误(比如错误的API密钥)会停止级联,以便你发现,而不是静默地消耗配额。

服务使用全局池,除非它们指定了自己的提供商子集:

root@kitploit:~
llm:
  enabled: true
  providers: [local-ollama] # 一个名称:强制此服务使用该提供商

列出多个名称可以保持负载均衡和故障转移,但仅限于该子集内:

root@kitploit:~
llm:
  enabled: true
  providers: [openai-primary, openrouter-backup]

命名池

当多个服务应该共享同一个提供商组——或者子集需要自己的策略而不是全局策略时——定义一个命名池。池具有名称、策略和有序的提供商列表,服务可以在任何需要指定提供商的地方通过名称引用它:

root@kitploit:~
pools:
  - name: cheap-first
    strategy: failover # 先尝试本地模型,如果失败则回退到付费API
    order: [local-ollama, openrouter]
  - name: spread
    strategy: round-robin
    order: [openrouter, openai]

services:
  - protocol: ssh
    # ...
    llm:
      enabled: true
      providers: [cheap-first] # 一个池名称,代替提供商
  - protocol: http
    # ...
    llm:
      enabled: true
      providers: [spread]

池名称必须是 providers 中的唯一条目——不允许将池与单独提供商混合在同一个列表中,因为那会不清楚哪个策略获胜。池名称与提供商名称位于相同的命名空间,且不能与它们冲突。

使用钩子扩展响应

当“匹配正则表达式”或“询问模型”不足时,钩子允许你将自定义TypeScript插入到请求和响应路径中。钩子可以在请求到达模型之前重写提示,或者在响应到达攻击者之前重写回复。

root@kitploit:~
import { registerHook } from "./src/engine/hooks.ts";

registerHook({
  name: "fake-latency-notice",
  transformResponse(response, ctx) {
    if (ctx.protocol === "ssh" && /rm -rf/.test(ctx.input)) {
      return "rm: cannot remove '/': Operation not permitted\n";
    }
    return response;
  },
});

通过名称从任何服务的 hooks: 列表中引用它。示例配置中内置了一个 redact-secrets 钩子并已启用,这样模型永远不会将真实的凭据泄露出去。

指标

Prometheus指标在面板的 /metrics 路径提供(未经认证,因此抓取工具可以正常工作):

root@kitploit:~
honeyprompt_events_total{protocol="ssh"}                          412
honeyprompt_llm_requests_total{provider="openai",protocol="ssh"}  118
honeyprompt_auth_attempts_total{protocol="ssh"}                    87
honeyprompt_engine_errors_total{protocol="http"}                   0

从源码构建

如果你想贡献或需要一个原生二进制文件,你需要 Deno 2.x——这是唯一的依赖。

root@kitploit:~
deno task check    # 类型检查
deno task lint
deno task fmt
deno task test     # 单元测试 + 集成测试

deno task start -- --config honeyprompt.yaml    # 本地运行
deno task dev   -- --config honeyprompt.yaml    # 使用文件监视运行
deno task compile                                # -> ./dist/honeyprompt (自包含二进制文件)

deno compile 将运行时、面板资源等全部打包到一个可执行文件中,无需依赖。Linux、macOS和Windows的预构建二进制文件随每个标记的发布一起提供。

CI 在每次推送时运行格式化、lint、类型检查、测试、配置验证、跨平台 compile 和Docker构建。标记 vX.Y.Z 会发布发布二进制文件,并将带有出处和SBOM的多架构镜像发布到 alectrocute/honeyprompt。

CLI

root@kitploit:~
honeyprompt run [--config <path>]        启动所有已配置的服务(默认)
honeyprompt validate [--config <path>]   解析并验证配置,然后退出——非常适合CI
honeyprompt version
honeyprompt help

--config 默认为 ./honeyprompt.yaml,如果设置则使用 $HONEYPROMPT_CONFIG(容器中将其设置为 /etc/honeyprompt/honeyprompt.yaml)。

给用户和贡献者的警告

这是一个用于在你拥有或已授权测试的基础设施上引诱和研究攻击者的工具。暴露诱饵服务仍然意味着暴露服务;请在隔离的主机上运行,保持修补,并且不要将其指向任何你无法承受被探测的事物。欺骗不能替代实际保护真实系统。

如果你想为这个项目做出贡献,并使用AI智能体或大量依赖生成式代码,完全没问题——但你将被逐一询问你提供的每一行代码,如果你不能立即展示出无需AI的理解,你的整个贡献将被拒绝并废弃。

许可证

MIT

下载工具
提供商type备注
Ollamaollama本地模型;默认使用 localhost:11434
llama.cppllamacpp本地 server OpenAI端点
OpenAIopenaiOPENAI_API_KEY
Azure OpenAIazure需要 azure.deployment + azure.apiVersion
OpenRouteropenrouterOPENROUTER_API_KEY
AnthropicanthropicANTHROPIC_API_KEY
Google GeminigoogleGEMINI_API_KEY
任何OpenAI形状的openai-compatible将 baseUrl 指向你的网关