# HFish **Repository Path**: carlson/HFish ## Basic Information - **Project Name**: HFish - **Description**: HFish 是一款基于 Golang 开发的跨平台多功能主动诱导型蜜罐框架系统,为了企业安全防护测试做出了精心的打造 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: https://hfish.io - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 336 - **Created**: 2020-07-24 - **Last Updated**: 2021-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ![image-20210323225511461](https://hfish.cn-bj.ufileos.com/images/image-20210323225511461.png) > 专为诱捕溯源网络攻击者打造的蜜罐系统 # 什么是 HFish > **`HFish`** 是一款基于 **`Golang`** 开发的跨平台高交互蜜罐系统 HFish承载了全新的架构理念和实现方案,增加了蜜罐在威胁情报和诱捕溯源领域的能力,帮助企业在红蓝对抗中自动化的对攻击者进行画像和追溯。 此外,我们将重点关注企业安全场景,从攻击、处置、溯源角度提升产品联通能力。从威胁分析、告警策略与办公管理多方面出发,为企业用户提供更高的可用性与可拓展性。 我们深知企业环境特殊性,为了便于快速部署和敏捷管理,HFish提供了一系列方便运维和管理的技术,包括:一键闪电部署、应用模板批量管理、节点服务动态调整等特性…… image-20210324215337841 ## 什么是蜜罐 **蜜罐** 技术本质上是一种对攻击方进行 **欺骗的技术**,通过布置一些作为 **诱饵的主机**、**网络服务** 或者 **信息**,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 **捕获** 和 **分析**,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。 **蜜罐** 好比是 **情报收集系统**。蜜罐好像是故意让人攻击的目标,**引诱黑客前来攻击**。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。 ## 我们的故事 2019年的8月7日,我们发布了第一个版本的HFish,在16个月里,HFish在Github上获得2.6k个star,在Gitee上成为安全类目TOP5的GVP项目。 2021年2月9日,融合社区反馈和过去2年的思考,我们发布了全新概念的威胁捕获和诱捕系统HFish v2.0.0 社区版,社区版采用闭源共享方式向所有用户免费授权使用。 # Server端部署 ## linux > 通过https://hfish.io/download.html下载符合自己系统架构HFish服务端安装包 ```shell wget http://hfish.cn-bj.ufileos.com/hfish-2.1.0-linux-amd64.tar.gz ``` > 解压缩 ```shell tar -xzvf hfish-2.1.0-linux-amd64.tar.gz ``` > 执行 ./server命令运行服务端,当然您也可以使用nohup,让服务端进程后台运行。 ``` nohup ./server & ``` > 补充服务包 服务端自带的Linux-amd64的服务包,如果您有部署其它系统架构节点的需求,请额外下载下面的服务包,并解压到packages目录下。 ```shell #X86架构32位Linux http://hfish.cn-bj.ufileos.com/services-linux-386.tar.gz #ARM架构64位Linux http://hfish.cn-bj.ufileos.com/services-linux-arm64.tar.gz #X86架构32位Windows http://hfish.cn-bj.ufileos.com/services-windows-386.tar.gz #X86架构64位Windows http://hfish.cn-bj.ufileos.com/services-windows-amd64.tar.gz ``` ```shell #下载解压示范,请自行替换链接、文件夹路径和包文件名 wget http://hfish.cn-bj.ufileos.com/services-windows-amd64.tar.gz cd packages tar -xzvf services-windows-amd64.tar.gz ``` ## windows > 下载OneFish ​ 访问我们官网的[下载页面](https://hfish.io/download.html),下载最新版的服务端并解压。 > 运行文件目录下的server.exe ## services ### 蜜罐服务说明 > 高交互蜜罐和低交互蜜罐 接触蜜罐产品中我们经常会听到关于高交互蜜罐和低交互蜜罐,两种蜜罐根据与攻击者的交互程度不同而不同。两种类型的蜜罐在使用场景上有所区别。 - 高交互蜜罐 高交互蜜罐可以跟攻击者进行更多的互动,从而收集更多的攻击者行为数据,能为溯源工作提供更多的参考信息。 高交互蜜罐也有自己的局限性,高交互蜜罐通常意味着更高的资源占用,和相应更高的业务风险。 - 低交互蜜罐 低交互蜜罐通常跟攻击者之间的交互行为要少一些,不过因为蜜罐产品具有“访问既是风险”的特性,只要能够实现访问就报警,就能解决失陷报警的使用场景。 低交互蜜罐的局限性跟高交互蜜罐的局限性恰好相反,低交互蜜罐服务对节点资源的占用更少、业务安全性更高。但因为无法获得更多元的攻击信息,对于溯源工作的帮助不如高交互蜜罐高。 高交互蜜罐和低交互蜜罐并无好坏差异,根据自己的业务选择更适合自己的方案即可。 > 目前蜜罐的服务支持4大类,13种不同的蜜罐服务(蜜罐服务还在持续增加),截止本文档发布,OneFish的蜜罐都是低交互蜜罐。 1. 常见的Linux服务 包括SSH蜜罐、FTP蜜罐、TFTP蜜罐、TELNET蜜罐、VNC蜜罐、HTTP蜜罐 2. 常见Web应用仿真 包括WordPress仿真登陆蜜罐、通用OA系统仿真登录蜜罐 3. 常见的数据库服务 MYSQL蜜罐、Redis蜜罐、Memcache蜜罐、Elasticsearch蜜罐 4. 用户自定义蜜罐 # 服务端配置 ## 默认密码 > 初次登陆账号密码为 ```wiki admin / HFish2021 ``` image-20210318215218016 > 登陆后请及时修改您的密码 image-20210318215106718 > 重置密码 需要重置密码,请切换到 server/tools 文件夹: cd server/tools 然后执行: ./tools resetpwd 如果看到 reset admin password success,那就重置成功了 ## 情报对接 > 对接精准的云端的威胁情报后,可以对攻击行为进行更准的研判,帮助我们更科学的进行处置。 对接了威胁情报后,当HFish捕获到了来自外网的攻击行为后,我们可以在攻击列表中了解攻击者的IP情报。HFish会把您在云端查询到的情报在本地缓存7天,保持您攻击情报时效性的同时,节省您的查询次数。 image-20210318220204897 - 我们支持对接两种来自微步在线的威胁情报 > 对接微步在线云API(IP信誉接口) 关于该接口完整的说明,可以参考[微步在线云API文档](https://x.threatbook.cn/nodev4/vb4/API) 本接口在注册后可以获得每日50条云端情报的查询额度,给微步发送扩容邮件后,可以提升到每日200条的额度。详情访问[微步在线X社区](https://x.threatbook.cn/nodev4/vb4/article?threatInfoID=3101)。 如果有企业化需求,可以邮件 honeypot@threatbook.cn > 对接TIP的本地情报,您可以跟据页面的描述进行注册和使用。 使用该接口需要购买微步在线的TIP本地情报系统 image-20210318221558637 ## 通知配置 > 通知功能是蜜罐的核心功能之一 对于蜜罐捕获到的信息,跟据您不同的安全运营流程,您可能需要把该信息第一时间通知其它的安全设备,也可能需要把该信息通知给相关的安全运营人员。HFish用三种方式满足您的需求。 - Syslog通知 - 邮件通知 - Webhook通知 image-20210318215610629 > 用 Syslog 联动其它安全设备 您可以自定义接受通知设备的地址、协议和端口,用来接受OneFish捕获的攻击信息和报警。HFish最多支持5路syslog进行通知。 image-20210318215642971 > 用邮件通知相关安全人员 您可以通过配置相关的邮件服务器信息,来接受OneFish的通知和报警。 image-20210318215718987 > Webhook通知其它设备/人 很多的场景下我们都可以方便的使用webhook联动人或者设备。 - 对于当前企业办公中最为流行的3大即时通讯软件企业微信、钉钉、飞书的机器人,我们也做了适配,您在IM中建立一个机器人,把机器人的token复制到OneFish的webhook配置中,就可以第一时间在IM中获取蜜罐捕获的攻击告警了。 - 三家IM的官方文档如下,您可以对照进行参考 ```wiki - 企业微信官方文档 https://work.weixin.qq.com/help?doc_id=13376#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA - 钉钉官方文档 https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq - 飞书官方文档 https://www.feishu.cn/hc/zh-CN/articles/360040553973 ``` ## 告警策略 > 添加一个新的策略 ![image-20210318173355287](https://hfish.cn-bj.ufileos.com/images/2021-03-18-093357.png) > 对策略进行配置 ![image-20210209202737224](https://qiniu.cuiqingcai.com/2021-03-18-090743.png) > 通知当前分为威胁告警和系统通知两种类型 威胁告警是系统感知攻击时的告警;系统通知是系统自身运行状态的告警。 > 在设置通知方式前,您应该先完成了前边的通知配置 如果您完成了通知配置,那么这里三种不同的通知方式中就会出现您之前的配置,勾选即可。 # 使用和管理 ## 新建模版 首先要解释的是,在OneFish中,为了蜜罐更好的可拓展性,我们将蜜罐的层次分为三类 > 蜜罐服务 蜜罐的最基础元素是服务,截止到2021.3.18日更新,目前提供 MYSQL、SSH、FTP、Elasticsearch、REDIS、通用OA系统、WordPress、HTTP、VNC、Telnet、MEMCACHE、TFTP、CUSTOM 共13种服务。 image-20210318194212394 服务管理分为两个模块: - 服务搜索与管理模块 该模块可以搜索服务名称,筛选服务类型与筛选监听端口,辅助搜寻服务。 - 服务列表 该模块主要是展示服务名称、被模版引用数、默认监听端口和服务概述。 **其中,默认监听端口可以在模版详情中进行操作修改。** > 蜜罐模版 在服务之上,我们支持对蜜罐服务的组合,并称之为模版。 在软件初始化阶段,我们会自带两种模版。 image-20210318194755834 另外,可以通过新建模版自由添加 image-20210318195331781 image-20210318195941660 ## 新建节点 当您在【模板管理】页面添加完需要的蜜罐模板后,您就可以进行【增加节点】的操作了。 > 点击增加节点 image-20210318190541416 > 对要增加的节点进行具体的配置 image-20210318190641973 - 节点名称:可以自定义,用于您个人管理中识别设备的名称,长度不低于6个字符 - 部署位置:可以自定义,用于您个人管理中识别设备的位置 - 节点安装包:目前我们支持linux_x86、linux_arm、windows,三大平台下的32/64位的设备作为节点,您可以选择相应的版本 image-20210318190656299 > 选择配置好之后,我们就会生成一个节点安装包 image-20210318191631254 **值得一提的是,由于windows环境的特殊原因,并不能支持命令行部署,需要关闭掉页面后,在节点栏点击,下载安装包。** image-20210318191736929 节点配置:节点配置下拉框中,内容就是用户设置的所有模版。此外,**节点添加以后仍然可以修改模版**。 服务器地址:该服务器地址写您的s端地址,我们支持内网与云主机。请注意一定要注意您的s端地址书写。**假设c端添加上长期没有流量,我们建议您查看一下服务器地址是否正确。** 下面来跟大家一起看一下具体界面 image-20210318192101619 > 搜索框(红色) 搜索节点ip,筛选节点状态,查看流量以及模版。 > 导出框(绿色) 这里可以导出所有的节点内容,生成csv格式的文件。 > 节点列表界面(蓝色) 这里显示具体的节点名称,流量。当我们点击的时候可以展开,查看详细信息。其中女服务状态的在线、离线和禁用,可以在模版中进行修改。 ![image-20210318192240339](https://hfish.cn-bj.ufileos.com/images/image-20210318192240339.png) **注意事项** ```shell 1. 建议节点是全新的主机环境,除了节点的服务外不要运行其他的任何程序或开放相应的端口。 2. 建议在安装前修改默认的ssh端口,因为ssh蜜罐服务的端口是22,不修改端口的情况下部署ssh蜜罐,会让该蜜罐无法正常启动。 3. 节点的联通性测试结束,正式使用前,记得配置相应的安全策略。SSH 端口,只能被安全区的设备访问。蜜罐服务端口应该对所有网段开放。非蜜罐服务端口应该结束相关进程或调整 iptables&firewalld 规则限制访问。 ``` # 测试样例 ## 五、测试样例 ### SSH蜜罐 > 在终端里,尝试连接蜜罐的ssh端口,会显示“Permission denied, please try again.” image-20210319113406672 > 这时攻击列表会记录下所有测试过的用户名和密码 image-20210319113330040 ### FTP蜜罐 > 用FTP终端尝试连接FTP蜜罐端口,会在攻击列表中出现FTP蜜罐报警 image-20210319113309227 ### HTTP蜜罐 > HTTP蜜罐为http代理蜜罐,利用http代理工具连接蜜罐端口 image-20210319113242516 > 攻击列表中的显示信息如下 image-20210319113211933 ### TELNET蜜罐 > 利用TELNET应用连接蜜罐端口 image-20210319113132880 > 攻击列表中显示信息如下 image-20210319113101608 ### MYSQL蜜罐 > 用MYSQL工具连接蜜罐对应端口 ![image-20210311174259758](https://hfish.cn-bj.ufileos.com/images/20210311174259.png) ### WEB蜜罐 WEB蜜罐用浏览器访问相应的端口,并尝试输入user name和password后 image-20210319112136937 会提示用户名和密码错误 image-20210319112522399 服务端后台会获取攻击者用于尝试的用户名和密码 image-20210319112739513 # 总结 以上就是HFish本次更新的全部内容。在这个版本中,我们重点做了**一键升级功能**,只要我们有任何的更新,您在客户端都可以快速实现全线升级。 最后,希望HFish可以带给大家更好的蜜罐使用体验,帮助构建更好的网络生态环境。谢谢大家。 # 版本记录 [v 2.1.0] 2021-03-18 本版本是HFish的第二个版本,在这个版本中,我们针对年前的bug进行了深刻的反思和密集的修复。 此外,针对数据显示问题,我们着重改进了攻击列表的显示方式,希望提供一个有质、有效、可视化的攻击情况复现。 最后,感谢各位一直以来的支持,我们继续陪伴~