目录
1.蜜罐的定义
2.蜜罐的类型
2.1.实系统蜜罐
2.2.伪系统蜜罐
3. 蜜罐的作用
4. 蜜罐系统架构
. 推荐的开源蜜罐系统
HFish
1.HFish的优点
2.HFish架构
3.HFish的安装
1.在线一键安装
2.离线安装
4.登录HFish
5.HFIsh的使用
5.1HFish基本结构
5.2 HFish各模块关系图
5.3节点
5.3.2 删除节点
6.修改蜜罐服务
6.1直接修改蜜罐服务
6.1.1添加蜜罐服务
6.2创建模版,应用到多节点
7.攻击查看
7.1 攻击列表
7.2 扫描感知
7.3 失陷感知
7.4 账号资产
7.5 攻击来源
7.6 样本检测
7.7 威胁检测
朔源
HFish溯源实现原理与测试方法
1.Mysql反制(支持内网,能够对攻击者机器做任意文件读取)
2.厂商蜜罐反制(支持内网,能够获得windows机器登陆的微信号信息与桌面截图)
3.web型蜜罐溯源(不支持内网溯源)
4 .Java 远程调用蜜罐溯源(不支持内网溯源)
实验:使用namp扫密蜜罐查看扫描信息
首先我们要弄清楚一台蜜罐和一台没有任何防范措施的计算机的区别,虽然这两者都有可能被入侵破坏,但是本质却完全不同,蜜罐是网络管理员经过周密布置而设下的“黑匣子”,看似漏洞百出却尽在掌握之中,它收集的入侵数据十分有价值;而后者,根本就是送给入侵者的礼物,即使被入侵也不一定查得到痕迹……因此,蜜罐的定义是:“蜜罐是一个安全资源,它的价值在于被探测、攻击和损害。”
设计蜜罐的初衷就是让黑客入侵,借此收集证据,同时隐藏真实的服务器地址,因此我们要求一台合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。另外一个功能由管理员去完成,那就是在必要时候根据蜜罐收集的证据来起诉入侵者。
世界上不会有非常全面的事物,蜜罐也一样。根据管理员的需要,蜜罐的系统和漏洞设置要求也不尽相同,蜜罐是有针对性的,而不是盲目设置来无聊的,因此,就产生了多种多样的蜜罐……
实系统蜜罐是最真实的蜜罐,它运行着真实的系统,并且带着真实可入侵的漏洞,属于最危险的漏洞,但是它记录下的入侵信息往往是最真实的。这种蜜罐安装的系统一般都是最初的,没有任何SP补丁,或者打了低版本SP补丁,根据管理员需要,也可能补上了一些漏洞,只要值得研究的漏洞还存在即可。然后把蜜罐连接上网络,根据目前的网络扫描频繁度来看,这样的蜜罐很快就能吸引到目标并接受攻击,系统运行着的记录程序会记下入侵者的一举一动,但同时它也是最危险的,因为入侵者每一个入侵都会引起系统真实的反应,例如被溢出、渗透、夺取权限等。
什么叫伪系统呢?不要误解成“假的系统”,它也是建立在真实系统基础上的,但是它最大的特点就是“平台与漏洞非对称性”。
大家应该都知道,世界上操作系统不是只有Windows一家而已,在这个领域,还有Linux、Unix、OS2、BeOS等,它们的核心不同,因此会产生的漏洞缺陷也就不尽相同,简单的说,就是很少有能同时攻击几种系统的漏洞代码,也许你用LSASS溢出漏洞能拿到Windows的权限,但是用同样的手法去溢出Linux只能徒劳。根据这种特性,就产生了“伪系统蜜罐”,它利用一些工具程序强大的模仿能力,伪造出不属于自己平台的“漏洞”,入侵这样的 “漏洞”,只能是在一个程序框架里打转,即使成功“渗透”,也仍然是程序制造的梦境——系统本来就没有让这种漏洞成立的条件,谈何“渗透”?实现一个“伪系统”并不困难,Windows平台下的一些虚拟机程序、Linux自身的脚本功能加上第三方工具就能轻松实现,甚至在Linux/Unix下还能实时由管理员产生一些根本不存在的“漏洞”,让入侵者自以为得逞的在里面瞎忙。实现跟踪记录也很容易,只要在后台开着相应的记录程序即可。
这种蜜罐的好处在于,它可以最大程度防止被入侵者破坏,也能模拟不存在的漏洞,甚至可以让一些Windows蠕虫攻击Linux——只要你模拟出符合条件的Windows特征!但是它也存在坏处,因为一个聪明的入侵者只要经过几个回合就会识破伪装,另者,编写脚本不是很简便的事情,除非那个管理员很有耐心或者十分悠闲
蜜罐系统主要作用是欺骗黑客,捕捉攻击行为。
蜜罐会提供一些和真正业务系统非常类似的服务,如数据库,Web,FTP,Mail,SSH,Samba等,里面也会存放一些看似有用的业务数据,而且这些服务都是存在安全漏洞,容易被各种攻击工具识别,从而吸引黑客攻击。然后在与黑客交互的过程中,后台记录从哪个IP,哪个账号进行了什么操作,并将日志传输到一台安全的服务器(防止黑客抹掉蜜罐的日志),一般接入SIEM(安全信息和事件管理)服务器,进行统一存储,分析并处理。
通过虚拟化技术,可以在一台实体服务器上部署几十至上百个蜜罐节点,可以让不清楚状况的黑客在蜜罐群中忙得不亦乐乎,从而达到保护业务,延缓攻击的作用。
一、交互组件,信息收集组件和安全控制组件构成。
交互组件是设置的一系列有漏洞服务,通过这些服务将黑客引诱过来,并对黑客的攻击进行反应,同时将信息传递给信息收集组件。
二、信息收集组件在后台观察并且以日志的形式记录黑客在系统中的活动,并产生预警信息通知系统管理员或控制程序。
可以将蜜罐接入SIEM系统,传统的SIEM连接的都是真正的业务系统,会发送大量的日志,SIEM从海量的日志中分析出异常难度相对较高,蜜罐系统一般不装载真实的业务系统,因此产生的日志要小得多,使用蜜罐+SIEM系统可以利用较少的数据进行分析,发现隐藏的攻击者。
一、HFISH,安全简单易上手。提供了一系列方便运维和管理的技术,包括:一键闪电部署、应用模板批量管理、节点服务动态调整等特性。
二、HoneyDrive基于Xubuntu的开源和蜜罐捆绑的Linux操作系统,包含超过10个预安装和预配置的蜜罐软件包。功能强大,但界面不如HFISH友好。
三、T-pot,T-Pot 蜜罐是德国电信下的一个社区蜜罐项目,是一个基于 Docker 容器的集成了众多针对不同应用蜜罐程序的系统,目前发行的最高版本是 2017 年 11 月 7 日发布的 T-Pot 17.10,根据官方的介绍,每年都会发布一个新的版本。
HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。
HFish具有超过40种蜜罐环境、提供免费的云蜜网、可高度自定义的蜜饵能力、一键部署、跨平台多架构、国产操作系统和CPU支持、极低的性能要求、邮件/syslog/webhook/企业微信/钉钉/飞书告警等多项特性,帮助用户降低运维成本,提升运营效率。
HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
在HFish中,管理端只用于数据的分析和展示,节点端进行虚拟蜜罐,最后由蜜罐来承受攻击。
在最小化测试的情况,您可以直接通过安装管理端,通过管理端内的内置节点,直接进行蜜罐服务测试。
请防火墙开启4433、4434,确认返回success(如之后蜜罐服务需要占用其他端口,可使用相同命令打开。)
firewall-cmd --add-port=4433/tcp --permanent #(用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent #(用于节点与管理端通信)
firewall-cmd –reload
使用root用户,运行下面的脚本。
bash <(curl -sS -L https://hfish.net/webinstall.sh)
mkdir hfish
3.将安装文件包解压到hfish目录下
tar zxvf hfish-3.1.4-linux-amd64.tgz -C hfish
4.请防火墙开启4433、4434和7879,确认返回success(如果有其他服务需要打开端口,使用相同命令打开。
firewall-cmd --add-port=4433/tcp --permanent (用于web界面启动)
firewall-cmd --add-port=4434/tcp --permanent (用于节点与管理端通信)
firewall-cmd –reload
5.进入安装目录直接运行install.sh
cd hfish
sudo ./install.sh
6.第六步:登陆web界面
浏览器会显示站点不安全,添加到安全站点就可以登录啦
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
登陆后即可看到如下界面:
选择内网
点击前往首页
可以切换到大屏,非常酷炫,是不是有黑客的感觉了呢
HFish由管理端(server)和节点端(client)组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
融合在企业网络中
安装HFish管理端后,默认在管理端所在机器上建立节点感知攻击,该节点被命名为「内置节点」。
该节点将默认开启部分服务,包括FTP、SSH、Telnet、Zabbix监控系统、Nginx蜜罐、MySQL蜜罐、Redis蜜罐、HTTP代理蜜罐、ElasticSearch蜜罐和通用TCP端口监听。
5.3.1新增节点
进入【节点管理】页面,点击【增加节点】
在节点机器执行命令语句或安装包,即可成功部署节点。
进入【节点管理】页面,在节点列表中找到要删除的节点,点击该节点右侧【删除】,HFish需要二次验证您的管理员身份,输入admin密码后,节点将被删除。
节点被删除后:
节点端进程会自动退出,但程序会保留在原有路径,需要手动二次删除。
所有攻击数据不会丢失,仍然能在所有数据中进行查看
添加节点后,可以配置节点部署多种蜜罐服务,HFish提供两种方式配置节点服务。
该方法可以快速修改单个节点上的蜜罐服务,其操作步骤如下:
点击单个节点,可直接对节点上的服务进行添加和删除
添加一个wordpress蜜罐
确定,添加完成,查看蜜罐状态
蜜罐模板便于用户同时管理很多节点,批量更改蜜罐服务,即将一套模板批量应用到多个节点上,其操作步骤如下:
进入【模版管理】页面,点击【新建模板】,输入模板名称,选择蜜罐服务,填写描述信息,点击【确定】保存
进入【节点管理】页面,展开具体节点,选择上面创建的蜜罐模板
这里我们点击添加
等待应用模板后的蜜罐服务状态变为【启用】,注意:此时蜜罐尚未部署完成
节点正常完成模板加载后,服务状态应该为【在线】,如果显示为【离线】,说明蜜罐服务没有正常启动,您可以将鼠标移动到问号上查看提示,或请参考我们后面的【排错说明】
当前,HFish提供四个不同的页面进行攻击信息查看,分别为:攻击列表、扫描感知、失陷感知、攻击来源、账号资产、样本检测、威胁检测。
扫描感知窗口可以查看谁扫过我们,这里我们用的是虚拟机,所以是虚拟机网卡定时扫描
|
功能原理 |
|
攻击列表 |
收集所有对蜜罐的攻击 |
节点部署蜜罐后,攻击者对蜜罐的所有攻击信息都会被收录到「攻击列表」中。 |
扫描感知 |
收集了节点机器网卡的所有连接信息 |
节点生成之后,HFish会记录对节点所有网卡的连接,包括来访IP,连接IP和端口。 |
攻击来源 |
收集了所有连接和攻击节点的IP信息 |
所有尝试连接和攻击节点的IP信息都被记录在攻击来源中,如果蜜罐溯源和反制成功,信息也会被记录其中。 |
账号资产 |
收集了所有攻击者破解蜜罐使用的账号密码 |
HFish会提取攻击者对SSH、以及所有Web蜜罐登陆所使用的账号密码,进行统一展示。同时,用户可自定义监控词汇,如员工姓名、公司名称等,一旦与攻击者使用的账号重合,可高亮显示并告警。 |
该页面用于展示、聚合、搜索、分析和导出HFish蜜罐捕获攻击数据的页面。
攻击列表本身有一定的聚合能力,会把一段时间内,针对同一IP、同一蜜罐的同一攻击者行为聚合在一起。
本页面展示的攻击数据有:
1、被攻击蜜罐名称
2、被攻击数量
3、被攻击节点名称
4、攻击来源IP和地理位置
5、威胁情报
6、最后一次攻击时间
7、攻击时间
8、攻击数据长度
9、攻击详情
复制失败成功
用户还可以按照攻击来源IP地址、蜜罐场景、蜜罐类型、被攻击节点名称、数据长度、攻击来源地理位置名称、情报标签和是否标记进行搜索,支持按照攻击时间或数量排序,支持导出所有攻击数据或导出某个聚合事件到CSV文件。
该页面用于展示HFish蜜罐节点被TCP、UDP和ICMP三种协议的全端口扫描探测行为。
即使节点相关端口没有开放,HFish仍能记录下扫描行为,此外,HFish还会记录节点主机本身外联行为。
目前扫描感知列表内能够展示的信息如下:
1、扫描IP
2、威胁情报
3、被扫描节点
4、被扫描IP
5、扫描类型
6、被扫描端口
7、节点位置
8、扫描开始时间
9、扫描持续时间
该页面是利用已经播撒的蜜饵实现主机失陷感知威胁,用户可以在该页面生成蜜饵,并观测蜜饵被触碰状态。
什么是蜜饵?
蜜饵泛指任意伪造的高价值文件(例如运维手册、邮件、配置文件等),用于引诱和转移攻击者视线,最终达到牵引攻击者离开真实的高价值资产并进入陷阱的目的。
使用场景:
HFish的蜜饵在 牵引 攻击者的功能上增加了 精确定位失陷 能力,即每个蜜饵都是 唯一的,攻击者入侵用户主机后,如果盗取蜜饵文件中的数据并从任意主机发起攻击,防守者仍能知道失陷源头在哪里。
举个例子:
攻击者侵入企业内部某台服务器,在其目录中找到一个payment_config.ini文件,文件中包含数据库主机IP地址和账号密码,攻击者为隐藏自己真实入侵路径,通过第三台主机访问数据库主机……
HFish的蜜饵
HFish的蜜饵模块由 蜜饵定制 、分发接口 和 告警信息 三部分组成。
蜜饵定制
HFish提供完整的蜜饵定制,可以通过在「失陷感知」-「失陷感知」中定制新增自己的业务蜜饵。
在蜜饵内容中,$username$、$password$和$honeypot$分别代表账号、密码和蜜罐变量,以上为必填变量,必须进行引用,才能让蜜饵功能生效。 三个变量,按照文件想呈现给攻击者的效果进行引用。 $username$变量如果未填写账号字典,则默认用root作为所有蜜饵的账号名。 $password$变量按照选取的位数,自动生成蜜饵的密码。 $honeypot$变量按照蜜饵下拉节点的部署服务,自动生成IP和端口。
输入:
#登陆方式
$honeypot$
$username$
$password$
Ndq_limit=500
点击确定即可完成
分发接口
其中 分发接口 实际位于节点端,启用或禁用开关位于管理端的节点管理页面任意一个节点的详情页面中,默认监听TCP/7878端口,
任何一台节点都可以作为节点分发服务器使用,如下图:
启用后,用户可以从需要部署蜜饵的主机上访问如下地址,得到一个唯一的蜜饵文件:
复制该下发指令后,前往需进行布防的业务机器,执行即可。
用户可以在【失陷感知】-【告警信息】页面查看到已经生成的蜜饵。
告警信息
蜜饵部署完成后,已部署蜜饵的所有机器,以及攻击者被蜜饵迷惑访问蜜罐的网络地址和时间都可在该页面查看。
如果攻击者根据已部署的蜜饵文件中的虚假信息尝试登陆,HFish将会记录并告警,并展示已失陷节点主机和失陷流程
该页面用于收集所有被用来攻击的账号密码,通过配置可对企业失陷账号进行有效监控。
通过设定高级监测策略,辅助企业进行失陷账号监控,建议输入企业邮箱、企业域名、员工姓名等信息,随时监控泄漏。
该页面用于通过汇聚本地蜜罐感知、云端情报、用户自定义情报和溯源反制获得的信息来刻画攻击者画像,成为企业的私有情报库。
该页面用于展示HFish在高交互蜜罐(高交互ssh和高交互telnet蜜罐)中,捕获到的攻击者 上传/下载到服务器中的样本。
所有样本都会上传到免费的微步在线沙箱(https://s.threatbook.cn/)中,进行样本检测,并将结果返回。 该检测不花费用户检测次数。
点击,即可跳转到云沙箱,查看详细信息。
检测功能简介
适用情况:
本地默认自带规则,通过设置自定义规则,可对关注的重点攻击行为做实时监控。在重大保障/攻防演练中,当有0day、N day等漏洞爆出,可自定义添加对应漏洞的yara规则,重点监控。另,威胁检测引擎会发现触发这些规则的告警,这些告警可帮助判断针对性攻击。
检测数据:
HFish的威胁检测引擎是基于攻击HFish的日志数据进行检测。日志原始数据可以查看攻击列表
这些数据包括有web蜜罐的url数据、UA等数据,高交互蜜罐内执行的命令等数据,普通蜜罐的记录日志。
原始数据参考可通过攻击列表下载查看:
使用介绍
通过增加威胁检测引擎 ,支持规则检测,且支持上传自定义yara规则,系统自动化分析数据,判定攻击行为,丰富IP威胁判定,更清晰的感受攻击态势和攻击情况。
新增自定义规则
1、点击右上角【新增检测规则】
2、撰写新增检测规则。填写策略名称、描述、严重级别、yara规则。另最下方支持工具帮助测试写好的yara规则是否能对当前日志正确检出
什么是溯源?
溯源,一般是在攻防中,用于挖掘攻击者身份,通过资产面,回溯等判断攻击者身份。
在近几年攻防演练中,更加特指了解对方的身份信息。
HFish作为蜜罐软件,提供被攻击时候的正常防卫需求。当攻击者扫描、攻击或者恶意连接HFish的蜜罐时,HFish提供包括但不限于: 通过现有攻击工具漏洞,在合理范围内对攻击者进行信息提取、溯源等必要的攻击防御信息收集手段。
HFish共支持三种溯源手段。
通过MySql客户端漏洞,当攻击者使用8.0以下的Mysql客户端直连HFish的Mysql蜜罐的时候。可以触发任意文件读取的能力,读取Mysql客户端所在机器上的任意一个文件。
注意:
一定是Mysql客户端直连。不兼容诸如navicat这类工具。
在节点管理中,可以设置mysql任意文件读取的具体读取路径。
通过蜜罐页面提供可下载二进制,攻击者下载执行后,会获取攻击者的微信与屏幕截图
该部分记录的是连接IP,所以您在内网中测试,测试结果不会回传到云端共享,可放心测试。
测试步骤:
a. 直接在HFish中添加深信服蜜罐。
b.下载蜜罐页面中的exe并运行
c. 进入攻击来源,搜索IP或者直接点击溯源信息按钮。查看详情
HFish所有的web页面蜜罐,包括自定义蜜罐,都可以在该情况下进行溯源。
对扫描器、webshell管理器、java反序列化反制。该部分反制数据会显示攻击者的出口IP。
可以拿到包括机器架构,微信账号、QQ账号、QQ音乐账号、百度云账号,浏览器浏览记录、history、whoami等信息
⚠️注意:处于对产品技术保密的原因。我们不会公开可以对扫描器、webshell管理器能够进行溯源反制,也不会提供相关的应用教程。
如果您确实有测试需求,请用您的企业邮箱,说明您的公司,身份,测试需求原因,邮件[email protected]发送申请。我们只支持企业安全部门的测试申请与协助。
Java远程调用蜜罐是HFish内置的一种蜜罐服务。添加到节点上即可食用
当攻击者使用java反序列化工具对你的Java远程调用蜜罐进行攻击时,由于该蜜罐内置了Java反序列化工具的漏洞利用方式。
因此可以拿到包括机器架构,微信账号、QQ账号、QQ音乐账号、百度云账号,浏览器浏览记录、history、whoami等信息
测试:
首先我们开启页面节点页面,在节点中添加深信服蜜罐
随后开启这个蜜罐
我们使用浏览器登录localhost:9091,随后尝试登陆虚假的深信服蜜罐
尝试登陆后我们可以看到在攻击列表中出现了针对深信服蜜罐的攻击,如果使用前一个页面中的下载软件安装登录的话就会拿到登陆人的信息。
我们使用rrot/kali攻击机中的nmap来对部署了蜜罐的靶机进行扫描
kali地址
输入以下命令:扫描蜜罐的ip地址
namp -v 192.168.175.132
随后我们查看蜜罐后台中的扫描
我们使用appscan,或者nikto来对装有蜜罐的虚拟机进行漏扫,之后我们可以在蜜罐主页上看到当前攻击状况。