HFish 介绍

HFish是一款安全、简单可信赖的跨平台蜜罐软件,允许商业和个人用户免费使用。

项目地址

Github:hacklcx/HFish - Github
Gitee:lauix/HFish - Gitee

在 CentOS 7.9/Ubuntu 18.04 LTS 环境下联网部署

毕竟是一键安装,操作步骤都相同。

准备事项

  1. 安装前确保机器能够正常联网;
  2. 保留常用的默认服务端口(如 22,21,80,3306 等)给蜜罐使用;
  3. 管理端应部署在安全区,不建议用户将HFish管理端管理端口TCP/4433暴露在互联网;
  4. 足够的性能配置。

联网部署

切换到 root 权限运行下列代码;

1
bash <(curl -sS -L https://hfish.io/webinstall.sh)

01.png

登陆链接:https://[ip]:4433/web/
账号:admin
密码:HFish2021
(登陆后记得修改默认密码)

02.png

离线部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 选择一个路径存放程序
mkdir hfish

# wget 或 curl 下载程序包
wget https://hfish.cn-bj.ufileos.com/hfish-2.9.1-linux-amd64.tgz

# 解压到 hfish 目录下(或在一开始就进入 hfish 目录进行操作,则不需要 -C 指定目录)
tar zxvf hfish-2.9.1-linux-amd64.tgz -C hfish

# 根据实际情况开放防火墙端口(ECS 则在对应的控制台中开放端口,4433 为 Web 界面,4434 用于节点通信)
firewall-cmd --add-port=4433/tcp --permanent
firewall-cmd --add-port=4434/tcp --permanent
firewall-cmd --reload

# 运行 HFish
cd hfish
sudo ./install.sh

# 最后访问 https://ip:4433/web/,使用 admin:HFish2021 登录

配置数据库

可以选择 SQLite 或 Mysql/MairaDB,根据实际情况即可,并且也可以后期手动更换。

HFish系统默认使用的SQLite数据库,自带的已经初始化好的db具体路径为/usr/share/db/hfish.db

03.png

04.png

修改默认端口

HFish 的配置文件以及数据存放在/usr/share/hfish/下(而程序本体在/opt/hfish/下),其中的config.toml就是配置文件,根据实际环境修改 web_addr端口。

1
2
3
4
[webapp]
api_addr = ":41321"
web_addr = ":41322"
web_root = "web"

配置文档:联网和安全说明

节点管理

环境管理>节点管理下会看到一个内置节点,这是程序安装时自带,可以暂停但无法删除。如果有多台节点点击新增,填入参数即可。
05.png
展开节点配置,在这里可以新增或删除蜜罐服务,此外自定义蜜罐也是在这里添加部署。
06.png

自定义蜜罐

环境管理>服务管理下,可以看到程序内置的一系列蜜罐服务,而在右上方则有一个新增服务的按钮,我们可以通过它来添加自定义Web蜜罐。
07.png
自定义Web蜜罐可以根据实际业务场景搭建,起到欺骗和引导作用,关于详细的搭建步骤还请移步到下方提示的链接中。
08.png

配置文档:自定义Web蜜罐 | HFish

实际效果演示

这是一个搭建在 9090 端口上的 WordPress 蜜罐,属于低交互式的,通过指纹识别可以看出并非真正的 WordPress。
09.png
尝试输入用户名和密码进行爆破,此时会弹出提示框。
10.png
而实际上这次攻击以及被系统记录下来了,包括 IP 地址,攻击载荷以及所使用的用户名和密码。
11.png
12.png
结合微步在线情报对接 API 可以获取 IP 的信誉信息,从而进行研判溯源等操作。
13.png
最后放一个很有B格的攻击态势大屏
14.png

Docker 部署

尝试 podman 的读者也可以直接使用下列方式,不过在部分细节上所有不同,例如配置 watchtower 进行自动升级中绑定的docker.sock

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 首先创建 hfish 目录,用于 Docker 数据持久化
sudo mkdir /usr/share/hfish/

# 安装管理端
docker run -itd --name hfish \
-v /usr/share/hfish:/usr/share/hfish \
--network host \
--privileged=true \
threatbook/hfish-server:latest

# 配置后续自动升级
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
--label=com.centurylinklabs.watchtower.enable=false \
--privileged=true \
containrrr/watchtower \
--cleanup \
hfish \
--interval 3600

# 查看正在运行的容器
docker ps

# 查看所有容器
docker ps -a

# 启动容器
docker start hfish

# 停止容器
docker stop hfish

# 删除容器
docker rm hfish

连接数据库

1
2
3
# 先创建好数据库之后,再进入 Web 端进行配置
mysql -uroot -p
> CREATE DATABASE IF NOT EXISTS hfish DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

参考文章

Linux下载部署 | HFish免费蜜罐平台