logo
0
0
WeChat Login
蜜罐系统,初级

蜜罐网站

功能特点

这是一个专业的蜜罐网站,用于捕获和分析恶意攻击行为。主要特点:

🎯 核心功能

  • 登录页面捕获: 从用户访问登录页面开始记录所有信息
  • 实时监控: 实时追踪和分析攻击行为
  • 数据记录: 详细记录攻击者的IP、位置、浏览器、操作系统等信息
  • 智能检测: 自动识别SQL注入、XSS、目录遍历等攻击模式

📊 信息收集

每次访问都会记录:

  • IP地址和地理位置(国家、城市)
    • ⚠️ 注意: 本地IP(127.0.0.1)、私有IP(192.168.x.x, 10.x.x.x)和IPv6回环地址(::1)无法获取地理位置
    • 只有公网IP地址才能正确查询到地理位置信息
    • 建议使用公网IP或从其他设备访问测试
  • User Agent(浏览器、操作系统、设备类型)
  • 时间戳
  • Referer信息
  • Cookies数量
  • 系统语言和编码
  • 连接类型

🧪 测试地理位置查询

# 测试IP地址和地理位置查询功能 node test-geoip.js

🚨 攻击检测

自动识别以下攻击类型:

  • SQL注入尝试
  • XSS攻击
  • 目录遍历
  • 暴力破解
  • 常见管理员用户名尝试
  • 敏感文件访问(.git, config.php等)

🎪 诱饵路径

系统包含多个诱饵路径,吸引攻击者:

  • /wp-login.php - WordPress登录页
  • /xmlrpc.php - WordPress XML-RPC
  • /.git - Git目录
  • /config.php - 配置文件
  • /admin - 管理页面
  • /dashboard - 仪表盘

安装和运行

安装依赖

npm install

启动服务器

npm start

开发模式(自动重启):

npm run dev

访问地址

数据存储

  • 数据库: SQLite (honeypot.db)
  • 日志文件: honeypot.log (JSON格式)

故障排除

数据库错误: "table attacks has no column named raw_ip"

如果遇到数据库表结构错误,运行迁移脚本:

node fix-database.js npm start

IP地址显示为空或"Unknown"

这是正常的!以下IP地址无法获取地理位置:

  • 本地回环: 127.0.0.1, ::1, localhost
  • 私有网络: 192.168.x.x, 10.x.x.x, 172.16.x.x-172.31.x.x

解决方法:

  • 将蜜罐部署到有公网IP的服务器
  • 或者从其他网络设备访问测试
  • 使用带公网IP的测试工具

express-rate-limit 警告

如果看到 ERR_ERL_PERMISSIVE_TRUST_PROXY 警告,说明您使用的是旧版本。最新版本已修复此问题。

注意事项

⚠️ 重要提醒:

  1. 仅用于合法的安全研究和教育目的
  2. 不要用于非法活动
  3. 保护好管理后台的访问凭据
  4. 定期清理日志和数据
  5. 建议在内网环境中使用

技术栈

  • 后端: Node.js + Express
  • 数据库: SQLite3
  • 安全: Helmet, Rate Limiting
  • IP定位: geoip-lite
  • 用户代理解析: useragent

管理后台功能

管理后台提供以下功能:

  • 查看所有攻击记录
  • 统计分析(攻击次数、IP分布、事件类型)
  • Top攻击IP排行
  • 实时数据刷新
  • IP搜索和过滤

日志分析

日志以JSON格式存储,包含完整的攻击者信息。可以使用任何JSON解析工具进行分析。

安全建议

  1. 修改默认管理密码
  2. 配置防火墙规则
  3. 定期备份数据
  4. 监控系统资源使用
  5. 及时更新依赖包