# 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
# 
> 专为诱捕溯源网络攻击者打造的蜜罐系统
# 什么是 HFish
> **`HFish`** 是一款基于 **`Golang`** 开发的跨平台高交互蜜罐系统
HFish承载了全新的架构理念和实现方案,增加了蜜罐在威胁情报和诱捕溯源领域的能力,帮助企业在红蓝对抗中自动化的对攻击者进行画像和追溯。
此外,我们将重点关注企业安全场景,从攻击、处置、溯源角度提升产品联通能力。从威胁分析、告警策略与办公管理多方面出发,为企业用户提供更高的可用性与可拓展性。
我们深知企业环境特殊性,为了便于快速部署和敏捷管理,HFish提供了一系列方便运维和管理的技术,包括:一键闪电部署、应用模板批量管理、节点服务动态调整等特性……
## 什么是蜜罐
**蜜罐** 技术本质上是一种对攻击方进行 **欺骗的技术**,通过布置一些作为 **诱饵的主机**、**网络服务** 或者 **信息**,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 **捕获** 和 **分析**,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
**蜜罐** 好比是 **情报收集系统**。蜜罐好像是故意让人攻击的目标,**引诱黑客前来攻击**。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
## 我们的故事
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
```
> 登陆后请及时修改您的密码
> 重置密码
需要重置密码,请切换到 server/tools 文件夹:
cd server/tools
然后执行:
./tools resetpwd
如果看到 reset admin password success,那就重置成功了
## 情报对接
> 对接精准的云端的威胁情报后,可以对攻击行为进行更准的研判,帮助我们更科学的进行处置。
对接了威胁情报后,当HFish捕获到了来自外网的攻击行为后,我们可以在攻击列表中了解攻击者的IP情报。HFish会把您在云端查询到的情报在本地缓存7天,保持您攻击情报时效性的同时,节省您的查询次数。
- 我们支持对接两种来自微步在线的威胁情报
> 对接微步在线云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本地情报系统
## 通知配置
> 通知功能是蜜罐的核心功能之一
对于蜜罐捕获到的信息,跟据您不同的安全运营流程,您可能需要把该信息第一时间通知其它的安全设备,也可能需要把该信息通知给相关的安全运营人员。HFish用三种方式满足您的需求。
- Syslog通知
- 邮件通知
- Webhook通知
> 用 Syslog 联动其它安全设备
您可以自定义接受通知设备的地址、协议和端口,用来接受OneFish捕获的攻击信息和报警。HFish最多支持5路syslog进行通知。
> 用邮件通知相关安全人员
您可以通过配置相关的邮件服务器信息,来接受OneFish的通知和报警。
> 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
```
## 告警策略
> 添加一个新的策略

> 对策略进行配置

> 通知当前分为威胁告警和系统通知两种类型
威胁告警是系统感知攻击时的告警;系统通知是系统自身运行状态的告警。
> 在设置通知方式前,您应该先完成了前边的通知配置
如果您完成了通知配置,那么这里三种不同的通知方式中就会出现您之前的配置,勾选即可。
# 使用和管理
## 新建模版
首先要解释的是,在OneFish中,为了蜜罐更好的可拓展性,我们将蜜罐的层次分为三类
> 蜜罐服务
蜜罐的最基础元素是服务,截止到2021.3.18日更新,目前提供 MYSQL、SSH、FTP、Elasticsearch、REDIS、通用OA系统、WordPress、HTTP、VNC、Telnet、MEMCACHE、TFTP、CUSTOM 共13种服务。
服务管理分为两个模块:
- 服务搜索与管理模块
该模块可以搜索服务名称,筛选服务类型与筛选监听端口,辅助搜寻服务。
- 服务列表
该模块主要是展示服务名称、被模版引用数、默认监听端口和服务概述。
**其中,默认监听端口可以在模版详情中进行操作修改。**
> 蜜罐模版
在服务之上,我们支持对蜜罐服务的组合,并称之为模版。
在软件初始化阶段,我们会自带两种模版。
另外,可以通过新建模版自由添加
## 新建节点
当您在【模板管理】页面添加完需要的蜜罐模板后,您就可以进行【增加节点】的操作了。
> 点击增加节点
> 对要增加的节点进行具体的配置
- 节点名称:可以自定义,用于您个人管理中识别设备的名称,长度不低于6个字符
- 部署位置:可以自定义,用于您个人管理中识别设备的位置
- 节点安装包:目前我们支持linux_x86、linux_arm、windows,三大平台下的32/64位的设备作为节点,您可以选择相应的版本
> 选择配置好之后,我们就会生成一个节点安装包
**值得一提的是,由于windows环境的特殊原因,并不能支持命令行部署,需要关闭掉页面后,在节点栏点击,下载安装包。**
节点配置:节点配置下拉框中,内容就是用户设置的所有模版。此外,**节点添加以后仍然可以修改模版**。
服务器地址:该服务器地址写您的s端地址,我们支持内网与云主机。请注意一定要注意您的s端地址书写。**假设c端添加上长期没有流量,我们建议您查看一下服务器地址是否正确。**
下面来跟大家一起看一下具体界面
> 搜索框(红色)
搜索节点ip,筛选节点状态,查看流量以及模版。
> 导出框(绿色)
这里可以导出所有的节点内容,生成csv格式的文件。
> 节点列表界面(蓝色)
这里显示具体的节点名称,流量。当我们点击的时候可以展开,查看详细信息。其中女服务状态的在线、离线和禁用,可以在模版中进行修改。

**注意事项**
```shell
1. 建议节点是全新的主机环境,除了节点的服务外不要运行其他的任何程序或开放相应的端口。
2. 建议在安装前修改默认的ssh端口,因为ssh蜜罐服务的端口是22,不修改端口的情况下部署ssh蜜罐,会让该蜜罐无法正常启动。
3. 节点的联通性测试结束,正式使用前,记得配置相应的安全策略。SSH 端口,只能被安全区的设备访问。蜜罐服务端口应该对所有网段开放。非蜜罐服务端口应该结束相关进程或调整 iptables&firewalld 规则限制访问。
```
# 测试样例
## 五、测试样例
### SSH蜜罐
> 在终端里,尝试连接蜜罐的ssh端口,会显示“Permission denied, please try again.”
> 这时攻击列表会记录下所有测试过的用户名和密码
### FTP蜜罐
> 用FTP终端尝试连接FTP蜜罐端口,会在攻击列表中出现FTP蜜罐报警
### HTTP蜜罐
> HTTP蜜罐为http代理蜜罐,利用http代理工具连接蜜罐端口
> 攻击列表中的显示信息如下
### TELNET蜜罐
> 利用TELNET应用连接蜜罐端口
> 攻击列表中显示信息如下
### MYSQL蜜罐
> 用MYSQL工具连接蜜罐对应端口

### WEB蜜罐
WEB蜜罐用浏览器访问相应的端口,并尝试输入user name和password后
会提示用户名和密码错误
服务端后台会获取攻击者用于尝试的用户名和密码
# 总结
以上就是HFish本次更新的全部内容。在这个版本中,我们重点做了**一键升级功能**,只要我们有任何的更新,您在客户端都可以快速实现全线升级。
最后,希望HFish可以带给大家更好的蜜罐使用体验,帮助构建更好的网络生态环境。谢谢大家。
# 版本记录
[v 2.1.0] 2021-03-18
本版本是HFish的第二个版本,在这个版本中,我们针对年前的bug进行了深刻的反思和密集的修复。
此外,针对数据显示问题,我们着重改进了攻击列表的显示方式,希望提供一个有质、有效、可视化的攻击情况复现。
最后,感谢各位一直以来的支持,我们继续陪伴~