尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
从部署到识别:SSH-Honeypotd、Cowrie 蜜罐实战与 Nmap 探测对抗
环境准备蜜罐主机kali-HoneypotIP192.168.4.9host-only 网卡用于本地连接NAT 网卡用于外网连接。攻击主机AttackerIP192.168.4.4host-only 网卡。基础环境两台虚拟机均安装了 Docker。一、 低交互蜜罐SSH-Honeypotd 搭建与测试低交互蜜罐通常仅模拟服务的基本特征资源消耗低适合大规模部署。本次选择 SSH-Honeypotd 进行搭建。1. 部署蜜罐由于克隆仓库失败改为本地下载后使用scp传入虚拟机。在 Docker 中运行 SSH 蜜罐监听端口设为2022避开本地占用的 22 端口dockerrun-d\--networkhost\--cap-addNET_BIND_SERVICE\--restartalways\--read-only\--namessh-honeypotd\-eADDRESS0.0.0.0\-ePORT2022\wildwildangel/ssh-honeypotd:latest2. 攻击测试与日志分析在 Attacker 主机上尝试 SSH 连接ssh-p2022kali192.168.4.9连接提示输入密码但无论输入什么密码均被拒绝。此时查看蜜罐日志dockerlogs ssh-honeypotd日志清晰记录了攻击者的 IP、攻击时间以及尝试的用户名和密码组合。进一步测试发现Attacker 使用 22 端口连接蜜罐反而能成功且蜜罐不记录该操作。这说明蜜罐仅监听 2022 端口未对其他端口进行监听。3. Nmap 扫描探测使用 Nmap 对蜜罐进行不同类型的扫描全连接扫描-sT端口状态为open服务识别为down蜜罐日志显示了 TCP 三次握手信息但显示“未收到身份标识字符串”。半连接扫描-sS端口状态open服务down蜜罐完全没有检测到此次扫描活动。隐蔽扫描-sN, -sF, -sX三种扫描结果均为open|filtered蜜罐均无任何记录。服务识别-sV端口状态openNmap 识别出服务为ssh软件为Dropbear伪装身份为Linksys WRT45G路由器。蜜罐日志准确记录了攻击者 IP 和随机源端口。二、 中等交互蜜罐Cowrie 搭建与测试Cowrie 是一款中等交互蜜罐能够模拟完整的 SSH 会话甚至提供文件系统交互。1. 部署蜜罐gitclone https://github.com/cowrie/cowrie.gitdockerrun-p2222:2222 cowrie/cowrie:latest2. 攻击测试与日志分析Attacker 尝试连接ssh -p 2222 kali192.168.4.9连接失败。查看蜜罐日志记录了尝试的用户名、密码组合三次均为 kali 且失败、尝试连接的时间等详细信息。(此处可插入 Cowrie 日志截取图)3. Nmap 扫描探测全连接扫描-sTNmap 将端口2222误识别为工业协议EtherNetIP-1。蜜罐日志记录连接建立后立即丢失持续 0.0 秒并出现No moduli配置缺失的警告。半连接扫描-sS同样被误识别为EtherNetIP-1蜜罐无任何记录。隐蔽扫描-sN, -sF, -sX端口状态open|filtered蜜罐均无任何记录。服务识别-sVNmap 这次正确识别出 SSH 服务版本为OpenSSH 9.2p1 Debian 2deb12u3。蜜罐日志完整记录了连接的生命周期。4. 两款蜜罐对比分析对比维度Cowrie中等交互SSH-Honeypotd低交互交互程度中等支持完整的 SSH 会话模拟与文件系统交互低仅模拟 SSH 认证过程服务模拟模拟真实的 OpenSSH 服务含版本和协议交互模拟简单的 SSH 响应返回伪造的路由器 banner日志记录详细记录连接、认证、会话活动和命令执行仅记录基本连接信息和认证尝试Nmap 检测能力仅检测完整连接扫描-sT, -sV仅检测完整连接扫描-sT, -sV服务识别能被 Nmap 正确识别为 OpenSSH被识别为 Linksys 路由器的 Dropbear SSH资源消耗较高需模拟完整文件系统较低仅处理基本网络连接适用场景适合深入分析攻击者行为和攻击技术适合大规模部署监控基本扫描和认证尝试综合分析两者都能有效监控 SSH 暴力破解但 Cowrie 提供了更深入的攻击者行为分析能力。面对隐蔽扫描-sS, -sN, -sF, -sX两种蜜罐均存在检测盲区这是由其网络监听机制依赖于完整 TCP 连接所决定的。三、 如何辨别「蜜罐」通过上述测试可以总结出几种辨别蜜罐的实用方法针对 SSH-Honeypotd连接测试任意密码均被拒绝且不触发账户锁定机制无法获得完整 Shell。全连接扫描-sT监听端口2022服务识别为down而真实端口22却被正确识别为ssh。行为不一致是重要线索。服务识别-sV2022端口识别为Linksys WRT45G路由器设备但又处于虚拟化环境MAC 地址为 VirtualBox服务版本信息过于详细不符合真实服务惯例可判定为蜜罐。针对 Cowrie连接测试同样密码均被拒绝无账户锁定。全连接扫描-sT2222端口被识别为不常见的EtherNetIP-1服务标识疑似伪装手段。服务识别-sV22端口版本为OpenSSH 10.0p2而2222端口版本为OpenSSH 9.2p1版本不一致且暴露过于详细极易引起怀疑。通用蜜罐识别与检测方法服务指纹分析检查同一主机不同端口服务版本是否合理匹配留意异常服务标识关注 banner 信息是否过于详细。行为模式检测检查是否存在无限次登录尝试不锁定多次发送相同请求观察响应是否完全一致检查对畸形数据包的响应。网络层面检测对比不同类型的扫描如 SYN 扫描与隐蔽扫描的响应差异监测连接时长是否过短分析流量模式。系统层面检测检查资源使用模式是否过于简单尝试访问特定系统路径验证系统环境变量和进程列表是否符合声明的系统类型。时间和延迟分析观察响应时间是否过于规律时间戳是否存在明显偏差。四、 扩展探索基于 Canarytokens 搭建蜜信环境Canarytokens 是一种蜜信Honeytoken工具能够生成各种类型的令牌一旦被攻击者访问即可触发告警。1. 环境部署gitclone https://github.com/thinkst/canarytokens-docker.gitcdcanarytokens-docker生成 WireGuard 密钥种子配置frontend.env与switchboard.env文件并修改本机 hosts 文件ddbs32count1if/dev/urandom2/dev/null|base64cpfrontend.env.dist frontend.envcpswitchboard.env.dist switchboard.env# 编辑配置文件后sudosh-cecho 127.0.0.1 mycanary.local token1.local token2.local /etc/hosts启动服务docker-composeup-ddockerps2. 创建并触发 Web URL 令牌在 Attacker 主机配置 hosts 文件访问http://mycanary.local/generate创建 Web URL 令牌。使用curl触发该 URLcurlhttp://token1.local/stuff/w07lgr0hwd4dlgbek4bzg5pp/payments.js查看蜜罐日志成功捕获攻击者的 HTTP 请求HTTP 200并尝试发送告警邮件尽管 QQ 邮箱拒绝了 SMTP 连接但告警机制已成功触发。3. 创建并触发 DNS 令牌创建 DNS 令牌后在 Attacker 主机使用dig触发dig192.168.4.9 8p149tkxg3sj9rv5fn0ap0aa2.token1.local蜜罐日志成功记录了攻击者的 IP、查询的域名、查询类型、时间并从域名中提取了令牌 ID 记录到数据库同时返回蜜罐 IP 以欺骗攻击者。五、 总结与心得通过这次从部署到对抗的完整实战可以得出以下结论部署层面SSH-Honeypotd低交互与 Cowrie中等交互均能成功部署并有效记录攻击者的连接与认证信息。检测盲区两种蜜罐都能检测全连接扫描-sT和服务识别扫描-sV但对半连接扫描-sS和隐蔽扫描-sN/-sF/-sX均无法检测这是依赖完整 TCP 连接的蜜罐的天然局限。识别关键异常的服务版本、不合常理的端口行为、无限制的登录尝试以及虚拟化环境与声称设备不符等都是辨别蜜罐的重要切入点。蜜信扩展Canarytokens 的 Web URL 和 DNS 令牌均能准确记录访问来源并触发警报是主动防御和溯源的有效补充手段。
RELATED

相关推荐

Matplotlib 可视化技巧:从千条重叠时序中挖掘隐藏弱信号

Matplotlib 可视化技巧:从千条重叠时序中挖掘隐藏弱信号

Matplotlib 可视化技巧:从千条重叠时序中挖掘隐藏弱信号 前言 在时序数据分析领域,我们经常遇到大规模时序数据集:传感器阵列采集的上万条设备监测曲线、蒙特卡洛仿真生成大量轨迹、海量用户行为时序、金融资产的模拟价格序列等。 当序列数量…

📅 2026/10/28 1:49:07
麻类面料为什么走红:定义、区别与原因

麻类面料为什么走红:定义、区别与原因

摘要:本文围绕麻类面料走红的原因展开,先厘清亚麻、苎麻、汉麻与天丝麻在纤维来源、手感、透气导湿性、抗皱性和常见用途上的差异,再从导湿散湿、可自然降解、自然肌理审美以及水洗混纺工艺四个方面解释其受欢迎的原因,并给出按需…

📅 2026/10/28 1:49:07
什么是总线负载率

什么是总线负载率

定义 总线负载率是衡量车载网络健康状态的关键指标,表示总线带宽的使用比例,即观察时段内总线被占用(忙碌)的时间占比。在CAN/CANFD/LIN/Ethernet等车载网络中,总线负载率直接影响数据传输的实时性与可靠性——过高可能…

📅 2026/10/28 1:49:07
MORE NEWS

更多资讯

📰

机器人模型训练新手避坑指南

1. 机器人模型训练入门指南第一次接触机器人模型训练时,我被各种专业术语和复杂流程搞得晕头转向。经过半年多的实践,我总结出这套适合新手的完整训练流程,帮你避开我踩过的那些坑。机器人模型训练本质上就是教会机器如何感知和理解周围环境。…

📰

遗传算法与布谷鸟搜索在特征选择中的混合优化实践

1. 项目概述:当遗传算法遇上特征选择在机器学习项目实践中,特征选择始终是影响模型性能的关键环节。传统方法如过滤式(Filter)和包裹式(Wrapper)特征选择各有局限:前者忽略特征组合效应,后者计算成本高昂。而遗传算法(Genetic Alg…

📰

机器人模型训练全流程:从数据准备到部署优化

1. 机器人模型训练入门指南刚接触机器人模型训练的新手们,你们是否曾被各种专业术语和复杂流程搞得晕头转向?作为从业多年的机器人开发工程师,我深知这个领域的学习曲线有多陡峭。今天我就用最直白的语言,带大家走一遍完整的机器人…

📰

Claude API限流策略解析与开发者优化实践

1. Anthropic调整Claude使用限制的背景与现状上周三凌晨三点,当我正在用Claude API调试一个长文本处理脚本时,突然收到了"429 Too Many Requests"的响应——这已经是本周第三次遇到类似情况。作为业内最早一批接入Claude的开发者,我…

📰

C#与MCGS TCP通信实战:从链路配置到报文解析

简介:面向工业自动化上位机开发者的C#与MCGS(昆仑通态)TCP通信实战例程,用Visual Studio 2013编写,重点解决上位机软件读取人机界面数据的通信问题,适合已具备C#基础、希望在工控项目中落地Socket通信的初中…

📰

Moark开源AI平台:分布式计算与模块化设计解析

1. 项目背景与核心定位模力方舟Moark这个命名本身就蕴含着深刻寓意——它试图在AI技术快速迭代的浪潮中,为开发者打造一艘能够抵御技术洪流的"诺亚方舟"。这个开源项目最吸引我的地方在于,它不像大多数AI工具那样只解决单一场景问题&#xff0…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬