HFish蜜罐的介绍和简单测试(一)
目录
0、什么是蜜罐
0.1、蜜罐的定义
0.2、蜜罐的优势
0.3、蜜罐与情报
1、HFish介绍
1.1、设计理念
1.2、HFish架构
1.3、HFish特点
1.4、常见蜜罐场景
2、快速部署
2.1、环境要求
2.2、联网环境,一键安装
2.3、安装效果
3、错误排查
3.1、管理端问题
3.1、节点问题
3.3、蜜罐服务问题
0、什么是蜜罐
0.1、蜜罐的定义
蜜罐 技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务 或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获 和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
0.2、蜜罐的优势
误报少,告警准确
蜜罐作为正常业务的 "影子" 混淆在网络中,正常情况下不应被触碰,每次触碰都可以视为威胁行为。例如,在其它检测型产品中,将正常请求误判为攻击行为的误报很常见,而对于蜜罐来说,几乎不存在正常请求,即使有也是探测行为。
检测深入,信息丰富
不同于其它检测型安全产品,蜜罐可以模拟业务服务甚至对攻击的响应,完整获取整个交互的所有内容,最大深度的获得攻击者探测行为之后的N个步骤,可检测点更多,信息量更大。
例如,对于SSL加密 或工控环境,蜜罐可以轻松伪装成业务,得到完整攻击数据。
主动防御,预见未来,生产情报
在每个企业,几乎每分钟都在发生这样的场景:潜伏在互联网角落中的攻击者发起一次攻击探测,防守方业务不存在安全漏洞,IDS告警后事情就不了了之了。
而应用蜜罐型产品后,转换为主动防御思路: 蜜罐响应了攻击探测,诱骗攻击者认为存在漏洞,进而发送了更多指令,包括从远端地址下载木马程序,而这一切不仅被完整记录下来,还可以转化为威胁情报供给传统检测设备,用于在未来的某个时刻,准确检测主机失陷。
可以发现,转换为主动防护思路后,威胁检测由针对单次、多变的攻击上升到应用威胁情报甚至TTPs(Tactics,Techniques, and Procedures)检测。
*失陷指标(Indicators of Compromise,IOC)
环境依赖少,拓展视野
由于是融入型安全产品,蜜罐不需要改动现有网络结构,并且很多蜜罐是软件形态,对各种虚拟和云环境非常友好,部署成本低。 蜜罐可以广泛部署于云端和接入交换机下游末梢网络中,作为轻量级探针,将告警汇聚到态势感知或传统检测设备中分析和展示。
0.3、蜜罐与情报
显而易见蜜罐 是非常准确、稳定和恰当的情报感知探针。 蜜罐最大的价值是诱使攻击者展示其能力和资产,再配合误报少,信息丰富等一系列优势,配合态势感知或本地情报平台可以稳定生产私有威胁情报。
1、HFish介绍
1.1、设计理念
HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。
HFish具有超过40种蜜罐环境、提供免费的云蜜网、可高度自定义的蜜饵能力、一键部署、跨平台多架构、国产操作系统和CPU支持、极低的性能要求、邮件/syslog/webhook/企业微信/钉钉/飞书告警等多项特性,帮助用户降低运维成本,提升运营效率。
1.2、HFish架构
HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
在HFish中,管理端只用于数据的分析和展示,节点端进行虚拟蜜罐,最后由蜜罐来承受攻击。

在最小化测试的情况,您可以直接通过安装管理端,通过管理端内的内置节点,直接进行蜜罐服务测试。
1.3、HFish特点
HFish当前具备如下几个特点:
-
安全可靠:主打低中交互蜜罐,简单有效;
-
功能丰富:支持基本网络 服务、OA系统、CRM系统、NAS存储系统、Web服务器、运维平台、无线AP、交换机/路由器、邮件系统、IoT设备等40多种蜜罐服务,支持用户制作自定义Web蜜罐,支持用户进行流量牵引到云蜜网、可开关的扫描感知能力、支持可自定义的蜜饵配置;
-
开放透明:支持对接微步在线X社区API、五路syslog输出、支持邮件、钉钉、企业微信、飞书、自定义WebHook告警输出;
-
快捷管理:支持单个安装包批量部署,支持批量修改端口和服务;
-
跨平台:支持Linux x32/x64/ARM、Windows x32/x64平台、国产操作系统、龙芯、海光、飞腾、鲲鹏、腾云、兆芯硬件。
1.4、常见蜜罐场景


2、快速部署
2.1、环境要求
HFish支持的部署主机
HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。
| Windows | Linux X86 | |
|---|---|---|
| 管理端(Server) | 支持64位 | 支持64位 |
| 节点端(Client) | 支持64位和32位 | 支持64为和32位 |
HFish内网所需配置
通常来说部署在内网的蜜罐,对性能的要求较低,接入公网的蜜罐会有更大的性能需求。
针对过往测试情况,我们给出两个配置。注意,如果您的蜜罐部署在互联网,会遭受到较大攻击流量,建议提升主机的配置。
| 管理端 | 节点端 | |
|---|---|---|
| 建议配置 | 2核4g200G | 1核2g50G |
| 最低配置 | 1核2g100G | 1核1g50G |
注意:日志磁盘占用情况受攻击数量影响较大,建议管理端配置200G以上硬盘空间。
HFish外网所需配置(必须更换mysql数据库)
通常说接入公网的蜜罐会有更大的性能需求。
针对过往测试情况,我们给出两个配置。注意,如果您的蜜罐部署在互联网,会遭受到较大攻击流量,建议提升主机的配置。
| 管理端(必须更换mysql数据库) | 节点端 | |
|---|---|---|
| 建议配置 | 5个节点以内,4核8g200G。 | 1核2g50G |
| 最低配置 | 2核4g100G | 1核1g50G |
注意:日志磁盘占用情况受攻击数量影响较大,建议管理端配置200G以上硬盘空间。
部署权限要求
管理端对root权限的需求
-
如果使用官网推荐的install.sh脚本安装,需要root权限,安装目录会位于opt目录下;
-
如果下载安装包手动安装,在默认使用SQLite数据库情况下,管理端的部署和使用不需要root权限,但如果要替换SQLite改为MySQL数据,则MySQL安装和配置需要root权限;
节点端对root权限的需求
节点端安装和运行无需root权限,但是由于操作系统限制,非root权限运行的节点无法监听低于tcp/1024的端口;
2.2、联网环境,一键安装
特别注意:Centos 是我们的原生开发和主力测试系统,我们最优推荐各位使用Centos系统进行安装。
当前HFish启动后会有两个进程,其中"hfish"进程为管理进程,负责监测、拉起和升级蜜罐主程序,"管理端"进程为蜜罐主程序进程,其执行蜜罐软件程序。 Linux版本HFish管理端数据库及配置文件都存储在 /usr/share/hfish 目录下,重装时会自动读取目录下的配置和数据。
如果您部署的环境为Linux,且可以访问互联网。我们为您准备了一键部署脚本进行安装和配置,在使用一键脚本前,请先配置防火墙
请防火墙开启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)
完成安装
登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
2.3、安装效果
本次测试使用Linux下联网环境安装,其他环境安装请参考官方手册。
测试环境是我的VPS。

选择1,安装和运行HFish

等待安装完毕。
配置VPS的防火墙后可以打开管理界面(注意url后写全部包括web)

自己测试使用SQLite数据库。

首先修改密码,因为部署在互联网。

登录以后可以看到节点状态和攻击状态
3、错误排查
3.1、管理端问题
管理端部署完成后,访问Web管理页面始终无法打开
解决办法:
1、确认浏览器访问地址是 https://[server]:4433/web/,注意不可缺少“/web/”这个路径
2、确认管理端进程的运行情况和TCP/4433端口开放情况,如果不正常需要重启管理端进程
# 检查 hfish-server的进程是否运行正常
ps ax | grep ./hfish | grep -v grep
# 检查TCP/4433端口是否正常开放
ss -ntpl
3、检查管理端主机是否开启了防火墙,导致目前无法访问,必要情况,考虑关闭防火墙
#centos7 检查防火墙状态systemctl status firewalld#centos7 检查防火墙开放端口firewall-cmd --list-ports
4、Linux环境使用date命令确认系统时间的准确
5、如果以上都没有问题,请将server和client日志提供给我们
节点端日志在安装目录的logs文件夹内,文件名为client.log
Linux管理端日志在/usr/share/hfish/log文件夹内,文件名为server.log
Windows管理端日志在C:\Users\Public\hfish\log文件夹内,文件名为server.log
3.1、节点问题
节点状态为红色离线
解决办法:
1、检查节点到管理端的网络连通情况,以下是几种常见情况
节点每60秒连接管理端的TCP/4434端口一次,180秒内连接不上即显示为离线。
刚完成部署或网络不稳定的时候会出现显示为离线。
通常情况,等待2~3分钟,如果节点恢复绿色在线,那蜜罐服务也会从绿色启用,变成绿色在线。
2、如果确认网络访问正常,节点在管理端上始终离线,需要检查节点上的进程运行情况。如果进程运行异常,需要杀死全部关联进程后,重启进程,并记录错误日志。
# 检查./client的进程是否运行正常
ps ax | grep -E 'services|./client' | grep -v grep
如果以上都没有问题,请将server和client日志提供给我们
节点端日志在安装目录的logs目录内,文件名为client.log
Linux管理端日志在/usr/share/hfish/log文件夹内,文件名为server.log
Linux管理端日志在C:\Users\Public\hfish\log文件夹内,文件名为server.log
Linux节点端后台运行方案:
nohup .~/client >>nohup.out 2>&1 &
Linux开机自启动方案
echo 'nohup .~/client >>nohup.out 2>&1 &' >> /etc/rc.local
Linux定时任务方案
echo '* * * * * nohup .~/client >>nohup.out 2>&1 &' >> /var/spool/cron/crontabs/root
3.3、蜜罐服务问题
节点在线,部分蜜罐服务在线,部分蜜罐服务离线
可通过触碰状态旁边的问号,确认离线原因。

bind:address already in use解决办法:
该报错情况往往是因为端口冲突
这个问题常见默认22端口的SSH服务,刚启动client的时候服务在线,过了一会儿后服务离线。
使用ss -ntpl命令检查该蜜罐服务的端口是否被占用?如果被占用,建议修改该业务的默认端口。
Windows操作系统上,如果用户启用了tcp端口监听,大概率会发现TCP 135、139、445、3389端口冲突,
这是用于Windows默认占用了这些端口,不建议在Windows上监听TCP 135、139、445、3389端口。
Linux操作系统端口冲突解决方案:
lsof -i:[port]
kill [pin]
重新启用该端口的蜜罐
**变更服务模板后,蜜罐新服务访问不到 **
在HFish当前的产品结构中,管理端**永远不会**主动连接节点进行节点配置的变更。
管理端仅负责生成一个配置,等待节点每60秒尝试连接管理端拉取。
蜜罐服务被攻击的结果,会实时上报到管理端。
=========================================================
以上内容大部分参考HFish官方文档,本篇是介绍和安装,下篇计划更新详细使用。
相关文章:
HFish蜜罐的介绍和简单测试(一)
目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境,一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...
2023面试题汇总二
一、CSS面试题 1. 清除浮动的方式有哪些? 为什么要清除浮动?因为浮动的盒子脱离标准流,如果父盒子没有设置高度的话,下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置cle…...
C# 支付宝接口在线收款退款
收款 在C#中使用支付宝在线支付功能,需要使用支付宝开放平台提供的SDK(软件开发工具包),通过SDK中提供的API(应用程序接口)实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤: 获…...
python例程:《企业编码生成系统》程序
目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,只需…...
基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置
目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...
内存操作函数
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...
免费搭建个人博客
免费搭建个人博客,并发布到公网 利用hexo搭建个人博客,通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js(尽量选择长期支持的版本) node.js官网:https://nodejs.org/en/ git官网:https://git-scm.com/book/zh/v2 安装…...
【Vue全家桶】详解Vue Router(一)
【Vue全家桶】Vue Router详解(一) Vue系列文章目录: 内容参考链接Vue(一)【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue(二)【Vue全家桶】声明式编程、MVVMVue(三)【Vue…...
9大 HIVE SQL 最频繁被问到的面试题
SQL是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...
学大数据算跟风吗?
随着互联网、物联网和人工智能等技术的不断发展,大数据技术逐渐进入人们的视野,成为一个备受关注的热点话题。那么,大数据专业好学吗?前景如何?下面我们来一起探讨一下。 一、大数据专业的学习难度 大数据技术是一种综…...
[C#]关于ListBox的坑
在用C#写个Demo程序的时候,使用ListBox保存读取到的每行内容。然后在重复读取的时候需要清除ListBox中的内容,我看到ListBox有清除的函数:lsbFiles.Items.Clear();以为这个函数就可以解决所有的问题,但是....于是想了个方法准备一…...
Apache POI 入门·第一话
文章目录1 摘要2 Apache POI2.1 介绍2.2 应用场景2.3 入门案例2.3.1 将数据写入Excel文件2.3.1.1 导入POI maven坐标2.3.1.2 代码开发2.3.1.3 实现效果2.3.2 读取Excel文件中的数据2.3.3 实现效果2.4 开发案例——导出运营数据Excel报表2.4.1 产品原型2.4.2 接口设计2.4.3 代码…...
8个python自动化脚本提高打工人幸福感~比心~
人生苦短,我用Python 最近有许多打工人都找我说打工好难 每天都是执行许多重复的任务, 例如阅读新闻、发邮件、查看天气、打开书签、清理文件夹等等, 使用自动化脚本,就无需手动一次又一次地完成这些任务, 非常方便…...
【嵌入式烧录/刷写文件】-1-详解Motorola S-record(S19/SREC/mot/SX)格式文件
目录 1 什么是Motorola S-record 2 Motorola S-record的格式 2.1 Motorola S-record的结构 2.1.1 “Record type记录类型”的说明 2.1.2 “Record length记录长度”的说明 2.1.3 如何计算“Checksum校验和” 2.2 Record order记录顺序 2.3 Text line terminator文本行终…...
图形视图界面 图形效果
Qt的标准图形效果类: QGraphicsBlurEffect提供模糊效果QGraphicsColorizeEffect提供染色效果QGraphicsDropShadowEffect提供阴影效果QGraphicsOpacityEffect提供透明效果 QGraphicsBlurEffect(模糊效果) 模糊效果会模糊源。此效果对于减少细…...
ElementUI学习笔记
目录 一、简单介绍 二、安装 1、下载 2、引入 三、布局 1、简介 2、使用 3、好处 四、布局容器 1、常见排布 2、调整样式 五、按钮 1、简单引用 2、改变样式 3、加载中效果 六、表格 1、简单使用 2、样式修改 七、对话框 1、简单使用 2、添加自定义内容 3、…...
安装KVM并创建虚拟机及基本使用
#环境说明:Centos7 环境准备: CPU开启虚拟化,给宿主机的CPU和内存分配足够多的配置 安装KVM 1.安装相关软件包 yum -y install qemu-kvm libvirt virt-manager virt-install virt-viewer 软件包简介: qemu-kvm: 为kvm提供…...
一种LCD屏闪问题的调试
背景 项目使用ESP32-S3 RGB接口驱动的LCD, 框架 idf-v5.0, LVGL-v7.11 显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错, 但开机一段时间后, 闪烁会明显减轻 记录 这块屏的显示驱动芯片为ST7701S, 查看芯片手册有说明特定的上…...
Java程序运行在Docker等容器环境有哪些新问题?
第30讲 | Java程序运行在Docker等容器环境有哪些新问题? 如今,Docker 等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景&#x…...
C语言面试最常问的三个关键字
文章目录前言一,static关键字的作用二,const 关键字的作用2.1, 修饰局部变量2.2,修饰指针2.3, 修饰函数形参2.4,修饰函数的返回值三,volatile关键字的作用前言 面试的时候,C语言最常…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
