抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Hfish Docker蜜罐部署

安装准备

实验环境:物理机 Apple M1芯片,2020. macOS Monterey

Docker版本:

Hfish的介绍

GitHub项目:https://github.com/hacklcx/HFish

项目介绍的很清楚了,我就不赘述了

Hfish的部署

Docker的安装步骤可以参考之前的blog:
sql靶场搭建

获取镜像

1
docker pull imdevops/hfish 

容器部署

1
docker run -d --name hfish -p 21:21 -p 22:22 -p 23:23 -p 69:69 -p 3306:3306 -p 5900:5900 -p 6379:6379 -p 8080:8080 -p 8081:8081 -p 8989:8989 -p 9000:9000 -p 9001:9001 -p 9200:9200 -p 11211:11211 --restart=always imdevops/hfish:latest

在物理机访问

1
http://[本机IP]:9001

初始账户密码: admin admin

修改配置文件

1
docker exec -it [容器名] sh

修改管理员账户密码

1
vi HFish/config.ini

做个测试,用kali去nmap扫描本机,查看会不会有蜜罐那边的告警

蜜罐搭建成功

最新版本安装 2.8.0

官方安装文档:https://hfish.io/#/2-1-docker?id=docker%e5%ae%89%e8%a3%85%e8%af%b4%e6%98%8e

步骤1:确认已安装并启动Docker

1
docker version

步骤2:拉取最新版本的镜像

1
docker pull threatbook/hfish-server:latest

步骤3:端口映射、容器部署

1
2
3
4
5
docker run -d -p 22:22 -p 9090:9090 -p 6379:6379 -p 135:135 -p 139:139 -p 3389:3389 -p 4433:4433 -p 9093:9093 -p 9194:9194 -p 9099:9099 -p 23:23 -p 3307:3307 --name hfish -v /usr/share/hfish:/usr/share/hfish --restart=always --privileged=true threatbook/hfish-server:latest



docker run -d --name hfish -p 22:22 -p 9090:9090 -p 6379:6379 -p 135:135 -p 139:139 -p 3389:3389 -p 4433:4433 -p 9093:9093 -p 9194:9194 -p 9099:9099 -p 23:23 -p 3307:3307 -v /usr/share/hfish:/usr/share/hfish --restart=always --privileged=true threatbook/hfish-server:latest

【数据持久化:在宿主机/usr/share/hfish目录下建立data目录用于存放攻击数据,建立logs目录用于存放日志。】

步骤4:配置后续自动升级(框内全部复制,粘贴,执行即可)

1
2
3
4
5
6
7
8
9
10
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

【自动升级:每小时请求最新镜像进行升级,升级不会丢失数据。】

步骤5:登陆HFish

登陆地址:https://ip:4433/web/

初始用户名:admin

初始密码:HFish2021

docker的Hfish连接数据库

我们将数据库搭建在宿主机中,而非docker中,这样为了保护数据安全

dokcer容器内连接宿主机Mysql

mac安装mysql

社区版mysql-ARM架构8.0.28

mysql客户端dbeaver

修改配置文件

1
vim ~/.bash_profile

在配置文件中输入

1
export PATH=${PATH}:/usr/local/mysql/bin

执行修改后的文件

1
source .bash_profile

解决mac重新启动终端source .bash_profile就要输入执行一下.
在终端输入:vim ~/.zshrc
在文件中输入: source ~/.bash_profile

这样在重新启动终端mysql命令就可以直接执行。

设置宿主机mysql允许docker的虚拟网卡ip访问

在宿主机的终端创建mysql数据库,并允许远程访问

1
2
3
 mysql -uroot -p
# 创建一个叫hfish的数据库
create database hfish;

在mysql客户端,进一步创建并设计数据库

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
-- ----------------------------
-- Table structure for `hfish_info`
-- ----------------------------
DROP TABLE IF EXISTS `hfish_info`;
CREATE TABLE `hfish_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(20) NOT NULL DEFAULT '',
`project_name` varchar(20) NOT NULL DEFAULT '',
`agent` varchar(20) NOT NULL DEFAULT '',
`ip` varchar(20) NOT NULL DEFAULT '',
`country` varchar(10) NOT NULL DEFAULT '',
`region` varchar(10) NOT NULL DEFAULT '',
`city` varchar(10) NOT NULL,
`info` text NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS = 1;
-- ----------------------------
-- Table structure for `hfish_colony`
-- ----------------------------
DROP TABLE IF EXISTS `hfish_colony`;
CREATE TABLE `hfish_colony` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`agent_name` varchar(20) NOT NULL DEFAULT '',
`agent_ip` varchar(20) NOT NULL DEFAULT '',
`web_status` int(2) NOT NULL DEFAULT '0',
`deep_status` int(2) NOT NULL DEFAULT '0',
`ssh_status` int(2) NOT NULL DEFAULT '0',
`redis_status` int(2) NOT NULL DEFAULT '0',
`mysql_status` int(2) NOT NULL DEFAULT '0',
`http_status` int(2) NOT NULL DEFAULT '0',
`telnet_status` int(2) NOT NULL DEFAULT '0',
`ftp_status` int(2) NOT NULL DEFAULT '0',
`mem_cache_status` int(2) NOT NULL DEFAULT '0',
`plug_status` int(2) NOT NULL DEFAULT '0',
`last_update_time` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `un_agent` (`agent_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
SET FOREIGN_KEY_CHECKS = 1;
-- ----------------------------
-- Table structure for `hfish_setting`
-- ----------------------------
DROP TABLE IF EXISTS `hfish_setting`;
CREATE TABLE `hfish_setting` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` varchar(50) NOT NULL DEFAULT '',
`info` varchar(50) NOT NULL DEFAULT '',
`update_time` datetime NOT NULL,
`status` int(2) NOT NULL DEFAULT '0',
`setting_name` varchar(50) NOT NULL DEFAULT '',
`setting_dis` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `index_key` (`type`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of `hfish_setting`
-- ----------------------------
BEGIN;
INSERT INTO `hfish_setting` VALUES ('1', 'mail', '', '2019-09-02 20:15:00', '0', 'E-mail 群发', '群发邮件SMTP服务器配置'), ('2', 'alertMail', '', '2019-09-02 18:58:12', '0', 'E-mail 通知', '蜜罐告警会通过邮件告知信息'), ('3', 'webHook', '', '2019-09-03 11:49:00', '0', 'WebHook 通知', '蜜罐告警会请求指定API告知信息'), ('4', 'whiteIp', '', '2019-09-02 20:15:00', '0', 'IP 白名单', '蜜罐上钩会过滤掉白名单IP');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;

![Screen Shot 2022-03-08 at 4.45.33 PM](/Users/gryffinbit/Desktop/Screen Shot 2022-03-08 at 4.45.33 PM.png)

修改宿主机mysql配置,允许外部访问

1,登进MySQL之后,

2,输入以下语句,进入mysql库:

1
use mysql

3,更新域属性,’%’表示允许外部访问:

1
update user set host='%' where user ='root';

4,执行以上语句之后再执行:

1
FLUSH PRIVILEGES;

z

Hfish连接宿主机mysql数据库

连接成功

参考文章

蜜罐搭建踩坑

docker compose官方文档

docker compose菜鸟教程

评论