#
在线乞讨 2026-06-16

在线乞讨蜜罐部署教程 —— 让每次攻击都变成你的广告

By io 186 Views 33 MIN READ 0 Comments
免责声明:本项目仅供安全研究、教育学习使用。请勿用于非法用途。部署蜜罐监听攻击流量在法律允许范围内,但诱导真实用户付款可能涉及欺诈风险,请自行评估。

目录

  1. 项目介绍
  2. 技术架构
  3. 快速部署(一行命令)
  4. 手动部署(Ubuntu 24.04)
  5. 蜜罐工作原理
  6. 安全加固
  7. 吸引攻击者
  8. 查看攻击日志
  9. FAQ
  10. 开源 & 贡献

1. 项目介绍

这是什么?

一个反向蜜罐(Reverse Honeypot)—— 部署在公网服务器上,看起来像一个完整的"在线乞讨/要饭"网站,实际上:

  • 正常访客看到 👉 中英文双语要饭页面(微信/支付宝/BTC 收款码 + 背景音乐 + 才艺展示)
  • 攻击者看到 👉 🙏 "别打了!磕头了!求求了!" 中英文乞讨页面
  • 所有攻击数据 👉 自动记录 IP、UA、请求参数、攻击类型到日志文件

核心逻辑

每次有人打你,返回你的收款码和乞讨文案 = 每台肉鸡都在帮你打广告
场景返回内容
普通访客 GET /完整要饭网站(收款码 + 音乐 + 才艺)
SQLi ?id=1 union select正常页面(背后记录攻击者信息)
路径遍历 ../../../etc/passwd🙏 "别打了" 中英乞讨页
XSS <script>alert(1)</script>🙏 "别打了" 中英乞讨页
扫描器过快(限流触发)🙏 "别打了" 中英乞讨页

功能特性

  • 中英文双语切换 — 右上角一键切换
  • 三种支付方式 — 微信 / 支付宝 / ₿ Bitcoin
  • 原版乞丐背景音乐 — 21秒循环(来自 beggar.aeert.com)
  • 才艺展示弹窗 — 点击播放上行琶音,22秒后可再来一遍
  • 讨饭 GIF — 原版 yaofan.gif 动图
  • Nginx 限流 — 50次/秒,超出返回乞讨页
  • 恶意模式拦截 — SQLi/XSS/路径遍历 → 乞讨嘲讽页
  • 攻击日志 — 所有请求记录到 JSONL 文件
  • 假后台陷阱/admin/ 记录攻击者输入的账号密码
  • 陷阱端点/api/.env/actuator 等返回乞讨文案

2. 技术架构

攻击者/访客 → 服务器ip:80
                   │
                   ▼
                Nginx (反向代理 + 限流 + 恶意模式检测)
                   │
          ┌───────┴───────┐
          ▼               ▼
    Flask 后端 :5000    拦截页 (429)
   (API + 日志记录)    (乞讨嘲讽 HTML)
组件技术说明
反向代理Nginx 1.24限流、恶意模式检测、静态文件
后端 APIPython Flask 3.1订单创建、设置接口、攻击日志
数据库无(JSONL 文件)/var/log/honeypot/attacks.jsonl
前端纯 HTML + JS + CSS自包含,无框架依赖
音频AAC 21秒循环原版 bgm.m4a(纯音乐)
支付二维码微信/支付宝图片 + BTC 二维码 API可替换成你自己的

3. 快速部署(一行命令)

前提条件

  • Ubuntu 24.04 服务器(其他 Debian 系也可)
  • 公网 IP,80 端口开放
  • root 权限

一键部署脚本

# 以 root 登录服务器后执行
bash <(curl -sL https://raw.githubusercontent.com/mzm010101/beggar-honeypot/main/deploy.sh)
⚠️ 先 Fork 本项目到你的 GitHub,再运行上面的命令。
或者下载源码后在服务器上手动执行。

验证部署

# 正常访问
curl http://你的服务器IP/

# 路径遍历攻击 → 应该返回乞讨页
curl http://你的服务器IP/../../../etc/passwd

# XSS 攻击
curl "http://你的服务器IP/<script>alert(1)</script>"

# SQLi
curl "http://你的服务器IP/?id=1 union select"

# 检查 API 是否正常
curl -X POST http://你的服务器IP/order/create \
  -H 'Content-Type: application/json' \
  -d '{"amount":"1","payType":"wechat","remark":"test"}'

# 查看攻击日志
tail -f /var/log/honeypot/attacks.jsonl

4. 手动部署(Ubuntu 24.04)

4.1 安装依赖

apt-get update -qq
apt-get install -y -qq nginx python3 python3-pip ufw fail2ban
pip3 install --break-system-packages flask flask-cors

4.2 创建目录结构

mkdir -p /var/www/honeypot/assets/audio
mkdir -p /var/www/honeypot/assets/img
mkdir -p /var/www/honeypot/assets/plugins/layer
mkdir -p /var/log/honeypot

4.3 上传文件

从 GitHub 克隆或从你的本地传输:

# 克隆仓库
git clone https://github.com/mzm010101/beggar-honeypot.git /tmp/beggar

# 复制文件
cp /tmp/beggar/index.html /var/www/honeypot/
cp /tmp/beggar/backend.py /var/www/honeypot/
cp /tmp/beggar/beggar-honeypot.conf /etc/nginx/sites-available/
cp /tmp/beggar/beggar-honeypot.service /etc/systemd/system/
cp /tmp/beggar/assets/audio/bgm.m4a /var/www/honeypot/assets/audio/
cp /tmp/beggar/assets/img/yaofan.gif /var/www/honeypot/assets/img/
cp /tmp/beggar/assets/plugins/layer/layer.min.js /var/www/honeypot/assets/plugins/layer/

4.4 配置 Nginx

rm -f /etc/nginx/sites-enabled/default
ln -sf /etc/nginx/sites-available/beggar-honeypot /etc/nginx/sites-enabled/
nginx -t && nginx -s reload

4.5 启动后端服务

systemctl daemon-reload
systemctl enable beggar-honeypot
systemctl restart beggar-honeypot

4.6 安全加固

# 防火墙:只开 80 和 22
ufw --force reset
ufw default deny incoming
ufw default allow outgoing
ufw allow 80/tcp comment 'honeypot'
ufw allow 22/tcp comment 'ssh'
ufw limit 22/tcp
ufw --force enable

# 关掉 SSH 密码登录(前提是已配好密钥)
sed -i 's/^#*PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#*PermitRootLogin .*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart sshd

# Nginx 安全增强
cat > /etc/nginx/conf.d/hardening.conf << 'EOF'
server_tokens off;
client_max_body_size 1M;
client_body_buffer_size 128k;
client_body_timeout 10s;
client_header_timeout 10s;
send_timeout 10s;
EOF
nginx -t && nginx -s reload

# Fail2ban
cat > /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 1d
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 7d
[nginx-botsearch]
enabled = true
EOF
systemctl restart fail2ban

5. 蜜罐工作原理

5.1 Nginx 拦截层

Nginx 配置了两种拦截机制:

模式匹配拦截 — 正则匹配恶意请求特征:

location ~* (select|union|drop|delete|insert|exec|eval|cmd|alert|<script|\.\./|/etc/passwd|/proc/self|/WEB-INF) {
    return 200 '<乞讨页面 HTML>';
}

限流拦截 — 50次/秒,超限返回乞讨页:

limit_req_zone $binary_remote_addr zone=honeypot:10m rate=50r/s;
location / {
    limit_req zone=honeypot burst=10 nodelay;
}

5.2 陷阱端点

黑客扫描常见漏洞路径时,会掉进陷阱:

端点返回目的
/admin/假登录页面记录输入的账号密码
/h2假 H2 数据库控制台诱捕尝试连接数据库的攻击者
/api乞讨文案记录尝试 API 探测的攻击者
/.env乞讨文案记录尝试读取环境变量的攻击者
/actuator乞讨文案记录 Spring Boot 扫描器
/wp-admin乞讨文案记录 WordPress 扫描器

5.3 攻击日志格式

所有请求记录到 /var/log/honeypot/attacks.jsonl,每条 JSON 包括:

{
  "timestamp": "2026-06-16T06:30:34.749894",
  "endpoint": "/order/create",
  "method": "POST",
  "remote_addr": "127.0.0.1",
  "x_forwarded_for": "112.96.228.0",
  "user_agent": "curl/8.18.0",
  "referer": "",
  "cookies": {},
  "headers": { "Host": "122.51.6.11", ... },
  "args": {},
  "data": { "amount": "1", "payType": "wechat", "remark": "test" },
  "attack_type": "normal"
}

attack_type 字段可选值:normal(正常)、sqli_attempt(SQL注入)、trap_endpoint(陷阱端点)、db_probe(数据库探测)。


6. 安全加固

蜜罐部署后,服务器本身也需要加固,防止被攻击者真的日穿。

6.1 系统层面

措施命令
更新系统apt update && apt upgrade -y
UFW 防火墙只开 80(http) + 22(ssh)
SSH 密钥登录PasswordAuthentication no
SSH 端口(可选)改到 22222 防扫描
Fail2ban7 天封禁暴力破解
内核参数SYN cookies、防 IP 伪造、防重定向

6.2 Nginx 层面

# 隐藏版本号
server_tokens off;

# 限制请求体大小(防大包攻击)
client_max_body_size 1M;

# 超时设置(防慢速攻击)
client_body_timeout 10s;
client_header_timeout 10s;
send_timeout 10s;

6.3 Flask 层面

  • Flask 仅监听 127.0.0.1:5000(不对外暴露)
  • 所有请求通过 Nginx 转发
  • 攻击日志写 JSONL 文件,不存数据库

7. 吸引攻击者

7.1 被动发现(最省事)

服务器 80 端口对外开后,以下平台会自动发现:

平台说明网址
Shodan互联网设备搜索引擎shodan.io
Fofa网络空间测绘fofa.info
ZoomEye网络空间雷达zoomeye.org
Censys互联网资产搜索censys.io

一旦被收录,攻击者会自动扫描你的蜜罐。

7.2 主动投喂(效果更好)

在以下地方留下链接:

Telegram 技术群:

老哥们看看这个站是什么框架?http://你的IP/
感觉有点东西,但日不动...

安全论坛:

萌新练手站,能不能日?http://你的IP/

GitHub Issue:

在你们项目相关的 Issue 里留个链接:"顺便看看这个站的安全性"

7.3 搜索引擎收录

<!-- 在页面 head 里加 meta 标签,被抓取时显示诱人标题 -->
<meta name="description" content="在线支付系统 v2.3.1 - 测试环境">

7.4 假装漏洞站

在服务器上加几个假端点,让攻击者觉得"有漏洞":

  • http://你的IP/api/users → 返回 {"status":"ok","data":"..."}
  • http://你的IP/admin/login → 写"测试后台,密码 admin"
  • http://你的IP/version → 返回 nginx/1.24.0(配合隐藏版本号一起玩)

攻击者看到这些会拼命往里日。


8. 查看攻击日志

实时查看

# 查看最新攻击
tail -f /var/log/honeypot/attacks.jsonl

# 查看 Nginx 访问日志
tail -f /var/log/nginx/honeypot-access.log

# 统计攻击者 IP
cat /var/log/honeypot/attacks.jsonl | python3 -c "
import sys, json, collections
ips = collections.Counter()
for l in sys.stdin:
    d = json.loads(l)
    ips[d['remote_addr']] += 1
for ip, cnt in ips.most_common(10):
    print(f'{ip:20s} {cnt:5d} 次')
"

# 统计攻击类型
cat /var/log/honeypot/attacks.jsonl | python3 -c "
import sys, json, collections
types = collections.Counter()
for l in sys.stdin:
    d = json.loads(l)
    types[d['attack_type']] += 1
for t, c in types.most_common():
    print(f'{t:20s} {c:5d} 次')
"

查看 Fail2ban 封禁状态

fail2ban-client status sshd
fail2ban-client status nginx-botsearch

9. FAQ

Q: BTC 地址怎么换?

修改 index.html 顶部配置:

var BITCOIN_ADDRESS = "你的BTC地址";

Q: 怎么换自己的微信/支付宝收款码?

scp 你的微信码.png root@你的服务器:/var/www/honeypot/assets/img/qr_wechat.png
scp 你的支付宝码.png root@你的服务器:/var/www/honeypot/assets/img/qr_alipay.png

Q: 背景音乐哪里来的?

来自原版 beggar.aeert.com 的 bgm.m4a,21秒 AAC 纯音乐(有人声的乞丐调)。

Q: 日志太多占磁盘怎么办?

日志默认存储在 /var/log/honeypot/,JSONL 格式。建议加 logrotate:

cat > /etc/logrotate.d/honeypot << 'EOF'
/var/log/honeypot/*.log
/var/log/honeypot/*.jsonl {
    daily
    rotate 7
    compress
    missingok
    notifempty
}
EOF

Q: 被真实 DDoS 怎么办?

  • 给域名套 Cloudflare CDN(免费版自带 DDoS 防护)
  • Nginx 限流(已内置 50r/s)
  • 或者直接关停蜜罐,攻击者打的是空壳

Q: 蜜罐会被反入侵吗?

  • Flask 后端只监听 127.0.0.1(不对外暴露)
  • Nginx 已限制请求体大小和超时
  • SSH 已关闭密码登录
  • 系统已启用 UFW 防火墙
  • 建议定期 apt update && apt upgrade -y

10. 开源 & 贡献

项目地址

https://github.com/mzm010101/beggar-honeypot.git

目录结构

beggar-honeypot/
├── index.html                  # 中英双语要饭网站(核心文件)
├── backend.py                  # Flask 后端(API + 日志)
├── beggar-honeypot.conf        # Nginx 配置
├── beggar-honeypot.service     # systemd 服务文件
├── deploy.sh                   # 一键部署脚本
├── secure-honeypot.sh          # 安全加固脚本
├── assets/
│   ├── audio/
│   │   └── bgm.m4a             # 背景音乐(21秒循环)
│   ├── img/
│   │   ├── yaofan.gif          # 讨饭动图
│   │   ├── qr_wechat.png       # 你的微信收款码(替换我)
│   │   └── qr_alipay.png       # 你的支付宝收款码(替换我)
│   └── plugins/
│       └── layer/
│           └── layer.min.js    # 弹窗插件
└── README.md                   # 本教程

版权说明

本项目基于 MIT 协议开源。背景音乐 bgm.m4a 来自 npsvip/begger 项目(MIT 协议),仅使用纯音乐部分。

如何贡献

  1. Fork 本仓库
  2. 修改你的 index.html 中的收款地址
  3. 替换 qr_wechat.pngqr_alipay.png
  4. 提交 Pull Request

效果展示

正常访问(访客视角)

http://你的IP/

🙏 好人一生平安 🙏

🎵 大哥哥大姐姐们呐,你们都是有钱的人呐~
谁有那多余的零钱,给我这可怜的人呐~

[微信支付]  [支付宝]  [₿ Bitcoin]

❤️ 热心捐助

攻击访问(攻击者视角)

http://你的IP/../../../etc/passwd

🙏
⚡ STOP 别打了 PLEASE STOP ⚡

── 中文 ──
大哥哥大姐姐们呐~ 俺就是个要饭的,你打我有什么用!
求求了,别扫了!别打了!
CPU 打冒烟了,流量打没了...
🙇 磕头了!好人一生平安!

── English ──
Oh kind sir/madam, I am just a humble beggar!
Why do you attack a poor soul like me?
Please, have mercy! Stop scanning!
🙇 I kneel before you! May good bless you!

💰 点此捐助 Donate Here 💰
IP: 1.2.3.4 | UA: sqlmap/1.8

最后的话:这个项目的核心哲学 —— 你不是在和攻击者对抗,而是把每次攻击转化成你的广告。每个打过来的请求都看到你的收款码和乞讨文案,等于每台肉鸡都在帮你打广告。攻击成本变成了你的营销成本。

本文由 io 原创

采用 CC BY-NC-SA 4.0 协议进行许可

转载请注明出处:https://godd.asia/index.php/archives/36/

TAGS: 在线乞讨

相关推荐

  • 暂无相关推荐,看看别的吧。

0 评论

发表评论