本文作者:失路之人,转载自FreeBuf.com
http://www.freebuf.com/sectool/134504.html
这两年蜜罐技术被关注的越来越多,也渐形成低交互、中交互、高交互等交互程度的各类蜜罐,从web业务蜜罐、ssh应用蜜罐、网络协议栈蜜罐到系统主机型蜜罐的各功能型蜜罐。小到一个word文档的蜜标,到一个系统级的服务蜜罐,再到多功能蜜罐组成的蜜网,大到包含流控制重定向分布式蜜网组成的蜜场。
随着虚拟化技术的发展,各种虚拟蜜罐也得到发展,可以通过虚拟机来实现高交互蜜罐,以及通过docker实现的业务型蜜罐,不再像是以前需要昂贵硬件设备的部署支撑,这也大大减少了蜜罐的部署成本,一台主机就可以实现整个集数据控制,数据捕获和数据分析于一体多功能多蜜罐高交互蜜网的体系架构。也已经产生了一些不错的开源蜜罐产品或项目,比如MHN(现代蜜网)、HoneypotProject。 MHN现代蜜网简化了蜜罐的部署,集成了多种蜜罐的安装脚本,可以快速部署、使用,也能够快速的从节点收集数据。国外也有很多公司做基于蜜罐的欺骗技术产品创新。
蜜罐高保真高质量的数据集把安全人员从以前海量日志分析的繁琐过程中解脱出来,对于蜜罐的连接访问都是攻击信息,并且不再像以前的特征分析具有一定的滞后性,可以用于捕获新型的攻击和方法。前段时间作者就通过高交互蜜罐捕获了ssh自动化爆破工具,能够针对整个互联网进行爆破尝试,并能够自动识别某些低交互蜜罐。
现在各功能蜜罐这么多,虽然MHN简化了各蜜罐的部署过程,但还是需要手动安装多个系统sensor来实现多个不同蜜罐。在蜜罐的研究过程中,有没有一个提供能更简单方便的平台实现我们对蜜罐的研究与使用。
这里将介绍一个开源多蜜罐平台T-Pot16.10,安装一次系统,轻松使用里面多种蜜罐, 并且提供良好的可视化。官方英文介绍:https://dtag-[http://dev-sec.github.io/mediator/feature/2016/10/31/t-pot-16.10.html](http://dev-sec.github.io/mediator/feature/2016/10/31/t-pot-16.10.html “http://dev-sec.github.io/mediator/feature/2016/10/31/t-pot-16.10.html“)
T-Pot16.10开源多蜜罐平台
T-Pot16.10多蜜罐平台直接提供一个系统iso,里面使用docker技术实现多个蜜罐,更加方便的蜜罐研究与数据捕获。下面是刚把它部署到互联网6个小时的情况,先来看看它长什么,有没有使用的欲望。
是不是看到都想感受一下?别激动还是先介绍一下它。
T-Pot16.10 使用Ubuntuserver 16.04 LTS 系统,基于docker 技术提供了下面一些蜜罐容器:
Conpot: 低交互工控蜜罐,提供一系列通用工业控制协议, 能够模拟复杂的工控基础设施。
Cowrie: 基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP、SCP上传的文件。
Dionaea: Dionaea是运行于Linux上的一个应用程序,将程序运行于网络环境下,它开放Internet常见服务的默认端口,当有外来连接时,模拟正常服务给予反馈,同时记录下出入网络数据流。网络数据流经由检测模块检测后按类别进行处理,如果有 shellcode 则进行仿真执行;程序会自动下载 shellcode 中指定或后续攻击命令指定下载的恶意文件。
Elasticpot: 模拟elastcisearch RCE漏洞的蜜罐,通过伪造函数在/,/_search, /_nodes的请求上回应脆弱ES实例的JSON格式消息。
Emobility: 在T-Pot中使用的高交互蜜罐容器, 旨在收集针对下一代交通基础设施的攻击动机和方法。Emobility蜜网包含一个中央收费系统,几个收费点,模拟用户的事务。一旦攻击者访问中控系统web界面,监控并处理运行收费交易,并与收费点交互。除此之外,在随机时间,黑客可能与正在收取车辆费用的用户进行交互。
Glastopf: 低交互型Web应用蜜罐, Glastopf蜜罐它能够模拟成千上万的web漏洞,针对攻击的不同攻击手段来回应攻击者,然后从对目标Web应用程序的攻击过程中收集数据。它的目标是针对自动化漏洞扫描/利用工具,通过对漏洞利用方式进行归类,针对某一类的利用方式返回对应的合理结果,以此实现低交互。
Honeytrap: 观察针对TCP或UDP服务的攻击,作为一个守护程序模拟一些知名的服务,并能够分析攻击字符串,执行相应的下载文件指令。
Conpot: 低交互工控蜜罐,提供一系列通用工业控制协议, 能够模拟复杂的工控基础设施。
Cowrie: 基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP、SCP上传的文件。
Dionaea: Dionaea是运行于Linux上的一个应用程序,将程序运行于网络环境下,它开放Internet常见服务的默认端口,当有外来连接时,模拟正常服务给予反馈,同时记录下出入网络数据流。网络数据流经由检测模块检测后按类别进行处理,如果有 shellcode 则进行仿真执行;程序会自动下载 shellcode 中指定或后续攻击命令指定下载的恶意文件。
Elasticpot: 模拟elastcisearch RCE漏洞的蜜罐,通过伪造函数在/,/_search, /_nodes的请求上回应脆弱ES实例的JSON格式消息。
Emobility: 在T-Pot中使用的高交互蜜罐容器, 旨在收集针对下一代交通基础设施的攻击动机和方法。Emobility蜜网包含一个中央收费系统,几个收费点,模拟用户的事务。一旦攻击者访问中控系统web界面,监控并处理运行收费交易,并与收费点交互。除此之外,在随机时间,黑客可能与正在收取车辆费用的用户进行交互。
Glastopf: 低交互型Web应用蜜罐, Glastopf蜜罐它能够模拟成千上万的web漏洞,针对攻击的不同攻击手段来回应攻击者,然后从对目标Web应用程序的攻击过程中收集数据。它的目标是针对自动化漏洞扫描/利用工具,通过对漏洞利用方式进行归类,针对某一类的利用方式返回对应的合理结果,以此实现低交互。
Honeytrap: 观察针对TCP或UDP服务的攻击,作为一个守护程序模拟一些知名的服务,并能够分析攻击字符串,执行相应的下载文件指令。
在这个平台上,使用了下面的这些工具:
ELK: 优雅地可视化T-Pot捕获到的攻击事件
Elasticsearch-head: 一个web前端来浏览和操作ElasticSearch集群
Netdata: 实时性能监控
Portainer: docker的web操作界面
Suricate: 开源的网络安全威胁检测引擎。
Wetty: web界面的ssh客户端
T-Pot 是基于Ubuntu server 16.04TLS 的网络安装,因此安装过程中一定需要保证联网。这些蜜罐守护程序或者其他组件都通过docker虚拟化技术提供。这样可以使我们在一个网卡上运行多个蜜罐系统,并且整个系统更好维护。这些蜜罐程序封装在docker容器中提供了良好的隔离环境并且更容易更新。 这些事件可以通过数据分析工具ewsposter进行关联,也支持蜜网项目hpfeeds数据分享。
T-Pot蜜罐平台结构图:
在docker中的所有数据是隔离里,一旦docker容器崩溃,docker容器环境产生的所有数据都会消失并重启一个新的docker实例。因此,对于有些数据需要永久保存,例如配置文件,在主机上有个永久存储目录/data/, 在系统或者容器重启后都能持续有效。重要的日志数据也通过docker 指定vulume选项存储在容器外的主机文件系统/data/
该平台需要满足硬件要求: T-Pot 安装需要至少4G 内存, 64G 磁盘空间, 并且联网。
该系统安装步骤:
1.下载 top.iso 或者自己创建操作系统环境。
2.安装到联网的VM或者物理机上。安装过程跟普通安装Ubuntu 过程一样, 其中需要为tsec用户设置密码。
3.正常安装系统后,第一次启动系统时将选择安装类型,此时将根据选择下载安装相应容器服务。
有4种安装类型,不同安装类型需要的满足要求不一样, 我们这里选典型T-Pot安装。
1)T-Pot Installation (Cowrie, Dionaea, ElasticPot, Glastopf, Honeytrap, ELK, Suricata+P0f & Tools)
2)Sensor Installation (Cowrie, Dionaea, ElasticPot, Glastopf, Honeytrap)
3)Industrial Installation (ConPot, eMobility, ELK, Suricata+P0f & Tools)
4)Everything Installation (Everything, all of the above)
后面设置web 账号密码,再填写一些相关信息,自动完成docker镜像安装下载,安装成功后重新启动系统进入如下页面:
其中红色的为公网ip地址。
可能在安装过程中由于源的原因或者网络不稳定造成安装失败,这时后面可以登录到系统,用户名为tsec, 密码为安装系统时设置的密码, 进行sudo su 操作提升权限,手动执行/root/install.sh的安装脚本, 脚本检测出不是第一次安装将自动终止,这是需要清除一下文件/root/install.err, /root/install.log以及后面的错误提醒,也可以根据实际情况注释掉脚本已经完成的工作, 只继续进行中断未完成的命令。
4.正常安装系统后,第一次启动系统时将选择安装类型,此时将根据选择下载安装相应容器服务。
通过浏览器访问https://ip:64297访问T-Pot控制面板。通过安装时创建的web 账户密码验证登录。
前面我们已经将各攻击事件通过Kibana面板展示出来了, 我们也可以根据自己的需要设计这些面板可视化展示。
这里为了捕获到攻击,需要将T-Pot平台放置在互联网上,否则捕获不到任何攻击。我这里通过在路由器上设置DMZ将T-Pot放到互联网上。如果你是路由器做一个NAT转换来实现的话,这里需要把这些端口做NAT转换。
T-Pot平台不仅提供了蜜罐数据捕获,还有强大的ELK进行数据处理分析, 还能够处理Elk集群,把T-Pot中集成的多蜜罐可以分布式部署在多个系统上进行数据捕获并统一提供可视化分析展示。
还提供docker的web控制界面,直接可以通过web界面来管理控制我们的各个蜜罐容器。也能够根据需要设计自己的容器蜜罐或容器服务。
还提供了Web ssh 客户端,通过web控制台直接就登录了系统进行操作了,系统实际的22端口 ssh服务其实是一个cowrie蜜罐。 这样我们通过控制台就能方便的登录到实际系统, 设计方便。
还有强大的系统性能监控平台,实时监控主机系统和各容器资源使用情况。
你也可以使用ISO Creator 来创建你自己的ISO安装镜像。
创建镜像要求:
Ubuntu 16.04 LTS 或者更新的系统作为主机系统,其他系统没有测试,至少4G内存,32G磁盘空间。
创建ISO镜像:
- 克隆仓库并进入目录
git clone https://github.com/dtag-dev-sec/tpotce.git
cd tpotce
- 调用脚本来建立ISO镜像, 这个脚本将下载安装一些必须的依赖包。它将下载T-Pot基于的ubuntu网络安装镜像(大约50M).
sudo./makeiso.sh
成功后你将在目录下发现tpot.iso和tpot.sha256两个文件。
现在可以方便的玩蜜罐了。前段时间自己也封装了一些docker高交互蜜罐容器,现在可以方便地集成到T-Pot平台上了, 让蜜罐部署更简单, 功能更丰富。