蜜罐部署核心是诱导扫描并留痕,而非阻断:需选dmz边缘、内网闲置段、开发测试网段出口三类高价值位置;模拟真实服务响应协议特征;采集源ip、端口、工具指纹等扫描数据;联动防火墙、snort与edr实现闭环防御。

部署蜜罐来诱导并监测网络扫描与探测,核心不是“挡住扫描”,而是让扫描行为自然发生、完整暴露,并留下可分析的痕迹。关键在于让蜜罐看起来足够真实、位置足够合理、响应足够可信。
选对位置,让攻击者“顺手就扫”
蜜罐不能孤零零放在防火墙后面没人访问,也不能和业务服务器挤在同一个网段引发误报。推荐三种高价值部署位置:
- DMZ区边缘:模拟对外提供服务的Web或FTP服务器,最容易被外网扫描器发现
- 内网办公网段闲置IP段:比如192.168.10.200–205,不分配给任何设备,只放一个HFish或Cowrie节点,专门捕获横向移动试探
- 开发测试网段出口旁:攻击者打点成功后常会从这里向生产网渗透,蜜罐放在这里能记录其后续命令和工具下载行为
避免把蜜罐和数据库、OA系统部署在同一子网——既增加误报风险,也削弱了“诱捕”的独立性。
模拟真实服务,骗过自动化扫描器
攻击者用Nmap、Masscan等工具批量扫端口,靠的是协议响应特征,不是人工判断。蜜罐必须给出符合预期的应答:
- 开放22端口时,Cowrie要返回标准SSH banner(如OpenSSH_7.9p1 Debian-10+deb10u2),不能是自定义字符串
- 开放80/443端口时,HFish或HTTP蜜罐需返回带HTML结构的页面,含常见CMS标题(如“WordPress安装向导”、“phpMyAdmin登录”),哪怕只是静态页面
- 对Nmap的-sV探测,蜜罐应返回版本信息(如Apache/2.4.41、PHP/7.4.3),这些字段可在配置中预设,不必真运行对应服务
扫描器不会登录,只看banner和响应头。只要协议层“像”,它就会标记这个IP为“存活+有服务”,后续才会触发更深层探测。
记录扫描行为本身,不止记录登录
很多初学者只关注“谁连上了SSH”,其实扫描阶段的信息更有预警价值。重点采集以下字段:
- 源IP + 扫描时间戳:用于关联多台蜜罐上的同一攻击源
- 扫描端口列表(如22,80,443,3306):反映攻击者兴趣方向,比如只扫22说明目标明确做SSH爆破
- 使用的工具指纹:Nmap的TCP选项、Masscan的TTL值、Zgrab的User-Agent,都能识别扫描器类型
- 并发连接数与节奏:短时间高频建连(如1秒内发50个SYN包)基本可判定为自动化扫描
HFish和MHN后台都支持导出原始日志,建议按小时归档,配合SIEM做规则匹配(例如:单IP 5分钟内扫描超20个端口,自动触发告警)。
联动响应,把扫描日志变成防御动作
光看日志没用,要让蜜罐成为防御闭环的一环:
- 将高频扫描IP自动同步到防火墙黑名单(通过API调用iptables或云厂商安全组接口)
- 把扫描特征(如特定TTL+User-Agent组合)加入Snort规则,全网流量实时阻断同类探测
- 发现某IP连续扫多台蜜罐后,将其标记为“可疑C2候选”,在EDR或终端日志中反向检索是否已有该IP通信记录
蜜罐真正的价值不在“抓到一次爆破”,而在把原本沉默的扫描行为,转化成可执行、可扩展、可回溯的防御信号。











