freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

一种通过 ZoomEye 捕获全新 Docker 蜜罐的案例
知道创宇404实验室 2021-03-12 10:16:21 155955

在写《一个通过ZoomEye获取IOC的案例》我发现搜索Docker的关键词:Server: Docker会匹配到大量的蜜罐,而这些蜜罐符合Anglerfish类蜜罐的特征,目前这里蜜罐非常常见部署也非常多,显然它并不是今天的主角,我们先通过排除掉这些Anglerfish类的数据,搜索语法:

"Server: Docker" -"<title>"

[解释下:因为我们要搜索的Docker是个API服务基本上是不可能出现"<title>"这个词的,所以直接排除] 如下:

一共得到3.6w+的结果,随机做一些访问确认发现一个比较有意思显现,Docker api默认端口为2375,但是在侧栏的端口分布栏来看可以看出很多其他端口,我们使用排除语法搜索:

"Server: Docker" -"<title>" -port:2375

尝试访问基本都访问不到,端口服务处于关闭状态,这是一个非常异常的情况。然后我们看看banner信息,从ZoomEye里显示的banner信息很多请求应该是直接获取dorker版本信息的请求记录,注意观察你会发现这些请求都是版本信息Server: Docker/18.06.1-ce (linux)及Content-Length: 626都非常统一,继续搜索:

"Server: Docker" +"Content-Length: 626"

可以得到1.2w+的结果,而且这些很多基本访问不到,或者开始能访问,访问几次后就没有响应了,非常奇怪现象。随即我选了几个IP查看IP档案页面看看其他端口情况:

从这个Server:头的很典型的“蜜罐”风格,初步推测这些是设备为“蜜罐”并且带有IP阻断功能。当然可能有人会问你这个Content-Length: 626很可能默认的配置就是这个长度,那么我们那在banner里选一个其他的关键词进行,完整的banner如下:

HTTP/1.1 200 OKDate: Thu, 11 Mar 2021 07:04:33 GMTServer: Docker/18.06.1-ce (linux)Api-Version: 1.38Docker-Experimental: falseOstype: linuxContent-Type: application/jsonContent-Length: 626{"Platform": {"Name": ""}, "Components": [{"Name": "Engine", "Version": "18.06.1-ce", "Details": {"ApiVersion": "1.38", "Arch": "amd64", "BuildTime": "2018-10-26T23:39:57.000000000+00:00", "Experimental": "false", "GitCommit": "e68fc7a/18.06.1-ce", "GoVersion": "go1.10.3", "KernelVersion": "4.14.47-64.38.amzn2.x86_64", "MinAPIVersion": "1.12", "Os": "linux"}}], "Version": "18.06.1-ce", "ApiVersion": "1.38", "MinAPIVersion": "1.12", "GitCommit": "e68fc7a/18.06.1-ce", "GoVersion": "go1.10.3", "Os": "linux", "Arch": "amd64", "KernelVersion": "4.14.47-64.38.amzn2.x86_64", "BuildTime": "2018-10-26T23:39:57.000000000+00:00"}

我们选GitCommit这个值e68fc7a/18.06.1-ce搜索语法:Server: Docker+e68fc7a/18.06.1-ce得到1.4w+的结果,继续我们看看还有没有其他Content-Length的目标 搜索语法:Server: Docker+e68fc7a/18.06.1-ce-Content-Length: 626找到2,465 条而且都是2019年的数据,具体banner如下:

HTTP/1.1 200 OKContent-Length: 583Server: Docker/18.06.1-ce (linux)Ostype: linuxApi-Version: 1.38Docker-Experimental: falseDate: Sat, 20 Apr 2019 23:57:57 GMTContent-Type: application/json{"Platform":{"Name":""},"Components":[{"Name":"Engine","Version":"18.06.1-ce","Details":{"ApiVersion":"1.38","Arch":"amd64","BuildTime":"2018-10-26T23:39:57.000000000+00:00","Experimental":"false","GitCommit":"e68fc7a/18.06.1-ce","GoVersion":"go1.10.3","KernelVersion":"4.14.47-64.38.amzn2.x86_64","MinAPIVersion":"1.12","Os":"linux"}}],"Version":"18.06.1-ce","ApiVersion":"1.38","MinAPIVersion":"1.12","GitCommit":"e68fc7a/18.06.1-ce","GoVersion":"go1.10.3","Os":"linux","Arch":"amd64","KernelVersion":"4.14.47-64.38.amzn2.x86_64","BuildTime":"2018-10-26T23:39:57.000000000+00:00"}

从http头及下面返回的内容参数除里http头里的Date内容好像没啥不一样,但是这个Content-Length是不一样的,一个是626 一个是583,然后仔细核对你会发现,在http body里的json里626的是多了很多空格,如:

{"Platform": {"Name": ""}{"Platform":{"Name":""}

这个空格的问题让我想起《利用 ZoomEye 追踪多种 Redteam C&C 后渗透攻击框架》 https://paper.seebug.org/1301/ 这篇文章里提到的,到这里基本上可以实锤,搜索语法搜索出来的Server: Docker+Content-Length: 626就是“蜜罐”,而且从选用的模版信息可以确定,这个蜜罐模版选用18.06.1-ce版本最为模版,而这个版本主要出现在2019年!

最后一个问题一直困扰着我:既然是“蜜罐”不应该是吸引火力吗?为什么直接拦jie访问IP呢?

编者注:ZoomEye一直提供蜜罐识别业务,打标结果目前只对VIP用户开放。目前ZoomEye已经支持这类蜜罐识别并打标!

# web安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 知道创宇404实验室 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
知道创宇404实验室 LV.7
国内黑客文化深厚的网络安全公司知道创宇最神秘和核心的部门,长期致力于Web 、IoT 、工控、区块链等领域内安全漏洞挖掘、攻防技术的研究工作,团队曾多次向国内外多家知名厂商如微软、苹果、Adobe 、腾讯、阿里、百度等提交漏洞研究成果,并协助修复安全漏洞,多次获得相关致谢,在业内享有极高的声誉。
  • 146 文章数
  • 252 关注者
机器学习的线性回归模型
2025-03-07
从零开始搭建:基于本地DeepSeek的Web蜜罐自动化识别
2025-03-03
Fuzz 工作流解析与 AI 引入方案分享
2025-02-28