蜜罐系统HFish的部署与功能实测

2023-11-02 06:28

本文主要是介绍蜜罐系统HFish的部署与功能实测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 引入

根据参考1对蜜罐的定义:

  1. 蜜罐(Honeypot)是一个计算机科学领域的术语,指用于检测或防御未经授权的行为或黑客攻击的陷阱。其名称来源于其工作原理类似于用来诱捕昆虫的蜜罐。
  2. 蜜罐通常伪装成看似有利用价值的网路、资料、电脑系统,并故意设置了bug,用来吸引骇客攻击。由于蜜罐事实上并未对网路提供任何有价值的服务,所以任何对蜜罐的尝试都是可疑的。蜜罐中还可能装有监控软件,用以监视骇客入侵后的举动。

根据参考3,我们可以知道蜜罐的价值:

  1. 蜜罐是对攻击者的欺骗技术,用以监视、检测、分析和溯源攻击行为,其没有业务上的用途,所有流入/流出蜜罐的流量都预示着扫描或者攻击行为,因此可以比较好的聚焦于攻击流量。
  2. 蜜罐可以实现对攻击者的主动诱捕,能够详细地记录攻击者攻击过程中的许多痕迹,可以收集到大量有价值的数据,如病毒或蠕虫的源码、黑客的操作等,从而便于提供丰富的溯源数据。另外蜜罐也可以消耗攻击者的时间,基于JSONP等方式来获取攻击者的画像。
  3. 但是蜜罐存在安全隐患,如果没有做好隔离,可能成为新的攻击源。

有没有什么快速部署一个蜜罐进行体验的方法呢?

2. HFish

从参考3可以看到关于HFish的更多描述:

  1. HFish是一款针对企业安全场景的社区型免费蜜罐,旨在提高用户在失陷感知和威胁情报领域的综合能力。它从内网失陷检测、外网威胁感知和威胁情报生产三个场景出发,为用户提供独立且实用的功能,通过中低交互蜜罐来增强用户的安全防护能力。
  2. HFish具有多种独特的特性,包括超过40种蜜罐环境、免费的云蜜网、高度自定义的蜜饵能力、一键部署、跨平台多架构支持、国产操作系统和CPU的适配、极低的性能要求、以及多种告警方式如邮件、syslog、webhook、企业微信、钉钉和飞书等。这些特性有助于降低用户的运维成本,提高运营效率。
  3. HFish支持分布式多节点部署。HFish采用B/S架构,系统由管理端和节点端组成,管理端用来生成和管理节点端,并接收、分析和展示节点端回传的数据,节点端接受管理端的控制并负责构建蜜罐服务。在HFish中,管理端只用于数据的分析和展示,节点端进行虚拟蜜罐,最后由蜜罐来承受攻击。

在linux下,可以参考4来进行快速的安装部署。

3. ubuntu下部署单节点HFish的步骤

  1. 确认ubuntu防火墙状态
(base) root@xdfweds:~# ufw status
Status: inactive

笔者这里防火墙是关闭的,否则需要参考4来让防火墙开启4433、4434端口。

  1. 在root模式运行如下命令来安装HFish
bash <(curl -sS -L https://hfish.net/webinstall.sh)
  1. 远程浏览器打开 登陆链接:https://[ip]:4433/web/
  • 默认用户名密码见参考4
  1. 选择SQlite
    在这里插入图片描述

4. 实测效果

  1. 登录后,稍等3分钟,就能在首页看到,笔者这台阿里云服务器,在这几分钟之内,就被扫描了151次,被攻击了5次
    在这里插入图片描述

  2. 攻击列表
    能看到所有攻击的来源IP,也能进行搜索过滤
    在这里插入图片描述

  3. 扫描感知
    该页面用于展示HFish蜜罐节点被TCP、UDP和ICMP三种协议的全端口扫描探测行为。
    即使节点相关端口没有开放,HFish仍能记录下扫描行为,此外,HFish还会记录节点主机本身外联行为。目前扫描感知列表内能够展示的信息如下: 扫描IP,威胁情报,被扫描节点,被扫描IP,扫描类型,被扫描端口,节点位置, 扫描开始时间,扫描持续时间。
    在这里插入图片描述

可以看到,就部署HFish后的5分钟之内,主机就遭受来自很多个不同国家的扫描。

  1. 失陷感知页面
    这需要配置诱饵才可能有效果,关于诱饵的配置,详见参考5.

(1)什么是诱饵
诱饵泛指任意伪造的高价值文件(例如运维手册、邮件、配置文件等),用于引诱和转移攻击者视线,最终达到牵引攻击者离开真实的高价值资产并进入陷阱的目的。

(2)蜜饵使用场景
HFish的蜜饵在 牵引 攻击者的功能上增加了 精确定位失陷 能力,即每个蜜饵都是 唯一的,攻击者入侵用户主机后,如果盗取蜜饵文件中的数据并从任意主机发起攻击,防守者仍能知道失陷源头在哪里。

(3)举个例子:
攻击者侵入企业内部某台服务器,在其目录中找到一个payment_config.ini文件,文件中包含数据库主机IP地址和账号密码,
攻击者为隐藏自己真实入侵路径,通过第三台主机访问数据库主机

从笔者部署访问的页面中可以看到
在这里插入图片描述

HFish默认给定了四个文件蜜饵,还可以人工修改文件的内容。
在这里插入图片描述

  1. 攻击来源
    当前页面存储了尝试连接和攻击节点端的每一个IP,及该IP的过往攻击记录。
    在这里插入图片描述

  2. 账号资产
    攻击者在所有HFish蜜罐登录界面中输入的账号、密码都将被记录和整理,可用于:统计当前被攻击的账号密码,用于内部自查;使用「企业信息监控」功能,填写企业域名、邮件、员工姓名等敏感信息,实时监控外部失陷账户。

  3. 样本检测
    样本检测能力由微步在线云沙箱免费提供支持。其能提供完整的多维检测服务,通过模拟文件执行环境来分析和收集文件的静态和动态行为数据,结合微步威胁情报云,分钟级发现未知威胁。

  4. 漏洞模拟与威胁检测
    HFish的威胁检测将使用 YARA语言,对所有蜜罐收集到的攻击原始信息进行关键词检测。其中,漏洞模拟与检测类型的规则为云端更新,开启网络访问权限后,该部分规则为自动更新。
    详细说明:漏洞模拟与威胁检测使用介绍见参考6.
    如下是部署后默认提供的漏洞检测:
    在这里插入图片描述

也可以查看各个漏洞检测的YARA细节,比如“Java Applet JMX远程代码执行(CVE-2013-0422)”是这样写的:
在这里插入图片描述

  1. 服务管理

这是默认给定的蜜罐服务,还可以新增服务,这开源的功能就已经很强大了。
在这里插入图片描述

  1. 大屏
    大屏显示很漂亮。
    在这里插入图片描述

5. 卸载

参考7给出了卸载步骤。下面是ubuntu上卸载的步骤:

root@abababa:~# ps aux | grep hfish
root      499442  0.2  0.2 711436 12012 pts/0    Sl   21:23   0:02 /opt/hfish/hfish
root      499453  2.0  7.7 1088160 312768 ?      Ssl  21:23   0:16 /opt/hfish/hfish-server -d /opt/hfish/3.3.3
root      499713  0.0  0.0   8900   724 pts/4    S+   21:37   0:00 grep --color=auto hfish
root@abababa:~# kill 499442
root@abababa:~# kill 499453
root@abababa:~#
root@abababa:~#
root@abababa:~# ps aux | grep hfish
root      499719  0.0  0.0   8900   724 pts/4    S+   21:38   0:00 grep --color=auto hfish
root@abababa:~# rm -rf /opt/hfish
root@abababa:~# rm -rf /usr/share/hfish

先kill掉hfish,然后rm两个位置即可。

6. 总结

本文从蜜罐的定义,到如何安装部署一个真实的蜜罐系统,再到蜜罐系统的细节功能进行讲解。

7. 参考

  1. https://zh.wikipedia.org/zh-hans/%E8%9C%9C%E7%BD%90_(%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8)
  2. https://websec.readthedocs.io/zh/latest/defense/honeypot.html
  3. https://github.com/hacklcx/HFish
  4. https://hfish.net/#/2-2-linux
  5. https://hfish.net/#/4-4-internetdecoy
  6. https://hfish.net/#/4-3-detection
  7. https://hfish.net/#/5-7-uninstall

这篇关于蜜罐系统HFish的部署与功能实测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328737

相关文章

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英