RaulMH12/Sweet-project
GitHub: RaulMH12/Sweet-project
一款将 WordPress 站点转化为蜜罐平台的插件,用于实时记录和分析恶意流量并提供可视化仪表盘。
Stars: 1 | Forks: 0
# Sweet Honeypot
一款 WordPress 插件,用于将 HTTP 流量记录到专用的数据库中,并在 WordPress 管理后台提供用于分析的仪表盘。
## 环境要求
- WordPress 6.0 或更高版本
- PHP 7.4 或更高版本
- MySQL 5.7+ 或 MariaDB 10.3+
- 用于蜜罐的独立 MySQL/MariaDB 数据库
- 查看仪表盘所需的管理员权限
## 安装
### 1. 复制插件
将 `sweet-honeypot` 文件夹放置于:
```
wp-content/plugins/sweet-honeypot/
```
你也可以将其打包为 ZIP,并通过 **插件 → 安装插件 → 上传插件** 进行安装。
### 2. 创建数据库
MySQL 中的示例:
```
CREATE DATABASE hp_honeypot CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'registro_hp'@'localhost' IDENTIFIED BY 'strong_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, REFERENCES
ON hp_honeypot.* TO 'registro_hp'@'localhost';
FLUSH PRIVILEGES;
```
### 3. 配置 `wp-config.php`
在 `/* That's all, stop editing! */` 这一行**之前**添加这些常量:
```
define( 'HP_DB_NAME', 'hp_honeypot' );
define( 'HP_DB_USER', 'registro_hp' );
define( 'HP_DB_PASS', 'strong_password' );
define( 'HP_DB_HOST', 'localhost' );
/** Optional: AbuseIPDB reporting */
define( 'HP_ABUSEIPDB_API_KEY', 'your_api_key' );
```
### 4. 启用插件
```
wp plugin activate sweet-honeypot
```
或者在 WordPress 管理仪表盘的 **插件** 中启用它。
### 5. 配置 URL 重写
为了让 `/amazing_url` 这样不存在的路由也能被记录,WordPress 必须处理这些请求。请确保你具备以下条件:
- 在 **设置 → 固定链接** 中启用了固定链接
- Apache/Nginx 中的 `mod_rewrite` 规则或等效配置
WordPress 根目录下的最简 `.htaccess` 示例:
```
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
```
### 6. 更新站点 URL
如果你在安装 WordPress 时使用的是 `http://localhost`,但需要通过 IP 或域名从外部访问,请更新:
```
wp option update home 'http://YOUR-IP-OR-DOMAIN'
wp option update siteurl 'http://YOUR-IP-OR-DOMAIN'
```
## 使用方法
### 管理仪表盘
启用插件后,你会在管理侧边栏中看到 **Honeypot** 菜单:
```
/wp-admin/admin.php?page=hp-admin-dashboard
```
仪表盘会显示:
- 请求次数最多的前 5 个路由
- POST 参数中检测到次数最多的前 5 个密码
- 请求次数最多的前 5 个 IP
- 最近的 10 个路由
- HTTP 方法分布
只有具有 `manage_options` 权限的用户才能访问它。
### 记录的内容
对于 WordPress 处理的每个请求,插件都会保存:
| 数据 | 表 |
|------|-------|
| 主要事件(IP、方法、URI、body 等) | `hp_events` |
| 过滤后的 HTTP headers | `hp_event_headers` |
| GET/POST/COOKIE 参数 | `hp_event_params` |
| 上传文件的元数据 | `hp_event_files` |
| 选定的 server 变量 | `hp_event_server` |
这些表会在第一次有效请求时自动创建。
### AbuseIPDB(可选)
如果你定义了 `HP_ABUSEIPDB_API_KEY`,插件可以异步将针对 `xmlrpc.php` 的 `POST` 请求上报给 AbuseIPDB。
- 仅当该常量有值时才会发送报告
- 每个 IP 的本地速率限制为 15 分钟
- 不会阻塞对访问者的响应
### 实用的 SQL 查询
```
SELECT id, ts, INET6_NTOA(client_ip) AS ip, method, request_uri
FROM hp_events
ORDER BY id DESC
LIMIT 20;
```
```
SELECT request_uri, COUNT(*) AS total
FROM hp_events
GROUP BY request_uri
ORDER BY total DESC;
```
## 项目结构
```
sweet-honeypot/
├── sweet-honeypot.php
├── uninstall.php
├── readme.txt
├── README.md
├── LICENSE
├── includes/
│ ├── hp-abuseipdb.php
│ └── hp-admin-dashboard.php
├── assets/
├── css/hp-dashboard.css
└── js/
├── chart.umd.min.js
└── hp-dashboard.js
```
## 卸载
卸载插件时:
- 内部的 AbuseIPDB transients 将被移除
- 外部的 `hp_honeypot` 数据库**不会**被删除
如果你想删除数据:
```
DROP DATABASE hp_honeypot;
```
## 安全与隐私
此插件会存储技术性流量数据,包括 IP、路由、headers、cookies 和请求 body。仅在你被授权监控此类流量时才使用它,并始终注意保护好对仪表盘和数据库的访问权限。
## 许可证
GPL-2.0-or-later。详见 `LICENSE`。
标签:ffuf, OpenVAS, PHP, Web安全, WordPress插件, 威胁情报, 开发者工具, 数据可视化, 文件完整性监控, 流量监测, 蓝队分析, 蜜罐, 证书利用