一、安装(单机部署)
下载地址为:https://github.com/hacklcx/HFish/releases
github内下载需要的版本
解压之后进入目录需将db目录设为777权限
Linux + Mac 启动方式:
tar -zxvf fish-0.2-linux-amd64.tar.gz # 名字是下载的压缩包,根据实际情况修改
cd hfish-0.2-linux-amd64 # 名字是解压后压缩包,根据实际情况修改
chmod 777 -R db # sqlite 临时文件需要最高权限
./HFish run
windows启动方式
# 鼠标右键解压压缩包,打开命令终端 (cmd.exe) 进入程序跟目录
cd c:/hfish-0.2-linux-amd64 # 名字是解压后压缩包,根据实际情况修改
# Windwos也要将db目录改为777权限:右键>>属性>>安全>>users>>完全控制
./HFish.exe run
二、安装(Docker部署)
拉取镜像文件
docker pull imdevops/hfish
容器启动
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
各个端口介绍
21 为 FTP 端口 22 为 SSH 端口 23 为 Telnet 端口 3306 为 Mysql 端口 6379 为 Redis 端口 8080 为 暗网 端口 8989 为 插件 端口 9000 为 Web 端口 9001 为 系统管理后台 端口 11211 为 Memcache 端口 69 为 TFTP 端口 5900 为 VNC端口 8081 为 HTTP代理池 端口 9200 为Elasticsearch端口 以上端口根据实际需要决定是否打开,并注意端口冲突。
三、访问HFish
本机启动 localhost:9001 ,服务器启动 server_ip:9001
默认账号:admin
默认密码:admin
HFish蜜罐系统登入页面;访问9001端口
登入成功
四、服务端配置
配置文件名config.ini
本配置为 Demo 服务端需要启动 rpc , 修改状态 status
为 1
[rpc]
status = 1 # 模式 0关闭 1服务端 2客户端
addr = 0.0.0.0:7879 # RPC 服务端地址 or 客户端地址
name = Server # 状态1 服务端 名称 状态2 客户端 名称
[admin] # RPC 状态为2 集群客户端的时候 admin 可以删掉
addr = 0.0.0.0:9001 # 管理后台启动地址
account = admin # 登录账号,不能带 #
password = admin # 登录密码,不能带 #
db_type = sqlite # sqlite or mysql
db_max_open = 50 # 最大连接池,0 表示无限制
db_max_idle = 50 # 最大空闲数,0 表示无限制
db_str = ./db/hfish.db?cache=shared&mode=rwc # sqlite or mysql 连接字符串
# sqlite : ./db/hfish.db?cache=shared&mode=rwc
# mysql : 账号:密码@tcp(地址:端口)/数据库名?charset=utf8&parseTime=true&loc=Local
[api]
status = 1 # 是否启动 API 0 关闭 1 启动
web_url = /api/v1/post/report # WEB蜜罐上报 API
deep_url = /api/v1/post/deep_report # 暗网蜜罐上报 API
plug_url = /api/v1/post/plug_report # 插件蜜罐上报 API
report_key = 9cbf8a4dcb8e30682b927f352d6559a0 # API 上报认证秘钥
query_key = X85e2ba265d965b1929148d0f0e33133 # API 查询认证秘钥
[plug]
status = 1 # 是否启动 蜜罐插件 0 关闭 1 启动, 需要先启动 API
addr = 0.0.0.0:8989 # 蜜罐插件 启动地址
[web]
status = 1 # 是否启动 WEB 1 启动 0 关闭, 启动 API 后 WEB 方可上报结果
addr = 0.0.0.0:9000 # WEB 启动地址,0.0.0.0 对外开放,127.0.0.1 对内开放 可走 Nginx 反向代理
template = wordPress/html # WEB 模板路径
index = index.html # WEB 首页文件
static = wordPress/static # WEB 静态文件路径 注意:必须存在两个目录,html 文件 和静态文件 不能平级
url = / # WEB 访问目录,默认 / 可更改成 index.html index.asp index.php
[deep]
status = 1 # 是否启动 暗网 1 启动 0 关闭, 启动 API 后 方可上报结果
addr = 0.0.0.0:8080 # 暗网 WEB 启动地址
template = deep/html # 暗网 WEB 模板路径
index = index.html # 暗网 WEB 首页文件
static = deep/static # 暗网 WEB 静态文件路径 注意:必须存在两个目录,html 文件 和静态文件 不能平级
url = / # 暗网 WEB 访问目录,默认 / 可更改成 index.html index.asp index.php
[ssh]
status = 1 # 是否启动 SSH 0 关闭 1 低交互 2 高交互
addr = 0.0.0.0:22 # SSH 服务端地址 注意端口冲突,请先关闭服务器 openssh 服务 或 修改端口
[redis]
status = 1 # 是否启动 Redis 0 关闭 1 启动
addr = 0.0.0.0:6379 # Redis 服务端地址 注意端口冲突
[mysql]
status = 1 # 是否启动 Mysql 0 关闭 1 启动
addr = 0.0.0.0:3306 # Mysql 服务端地址 注意端口冲突
files = /etc/passwd,/etc/group # Mysql 服务端读取客户端任意文件; 多写逗号分隔,会随机取
[telnet]
status = 1 # 是否启动 Telnet 0 关闭 1 启动
addr = 0.0.0.0:23 # Telnet 服务端地址 注意端口冲突
[ftp]
status = 1 # 是否启动 Ftp 0 关闭 1 启动
addr = 0.0.0.0:21 # Ftp 服务端地址 注意端口冲突
[mem_cache]
status = 1 # 是否启动 MemCache 0 关闭 1 启动
addr = 0.0.0.0:11211 # Memcache 服务端地址 注意端口冲突
[http]
status = 1 # 是否启动 HTTP代理 0 关闭 1 启动
addr = 0.0.0.0:8081 # HTTP代理地址 注意端口冲突
[tftp]
status = 1 # 是否启动 tftp 0 关闭 1 启动
addr = 0.0.0.0:69 # tftp 服务端地址 注意端口冲突
[elasticsearch]
status = 1 # 是否启动 ES蜜罐 0 关闭 1 启动
addr = 0.0.0.0:9200 # ES蜜罐 服务端地址 注意端口冲突
[vnc]
status = 1 # 是否启动 VNC蜜罐 0 关闭 1 启动
addr = 0.0.0.0:5900 # VNC蜜罐 服务端地址 注意端口冲突
五、客户端配置
本配置为 Demo 客户端可删除 admin 配置项
客户端需要启动 rpc , 修改状态 status 为 2
[rpc]
status = 2 # 模式 0关闭 1服务端 2客户端
addr = 0.0.0.0:7879 # RPC 服务端地址 or 客户端地址
name = Client # 状态1 服务端 名称 状态2 客户端 名称
[api]
status = 1 # 是否启动 API 0 关闭 1 启动
web_url = /api/v1/post/report # WEB蜜罐上报 API
deep_url = /api/v1/post/deep_report # 暗网蜜罐上报 API
plug_url = /api/v1/post/plug_report # 插件蜜罐上报 API
report_key = 9cbf8a4dcb8e30682b927f352d6559a0 # API 上报认证秘钥
query_key = X85e2ba265d965b1929148d0f0e33133 # API 查询认证秘钥
[plug]
status = 1 # 是否启动 蜜罐插件 0 关闭 1 启动, 需要先启动 API
addr = 0.0.0.0:8989 # 蜜罐插件 启动地址
[web]
status = 1 # 是否启动 WEB 1 启动 0 关闭, 启动 API 后 WEB 方可上报结果
addr = 0.0.0.0:9000 # WEB 启动地址,0.0.0.0 对外开放,127.0.0.1 对内开放 可走 Nginx 反向代理
template = wordPress/html # WEB 模板路径
index = index.html # WEB 首页文件
static = wordPress/static # WEB 静态文件路径 注意:必须存在两个目录,html 文件 和静态文件 不能平级
url = / # WEB 访问目录,默认 / 可更改成 index.html index.asp index.php
[deep]
status = 1 # 是否启动 暗网 1 启动 0 关闭, 启动 API 后 方可上报结果
addr = 0.0.0.0:8080 # 暗网 WEB 启动地址
template = deep/html # 暗网 WEB 模板路径
index = index.html # 暗网 WEB 首页文件
static = deep/static # 暗网 WEB 静态文件路径 注意:必须存在两个目录,html 文件 和静态文件 不能平级
url = / # 暗网 WEB 访问目录,默认 / 可更改成 index.html index.asp index.php
[ssh]
status = 1 # 是否启动 SSH 0 关闭 1 低交互 2 高交互
addr = 0.0.0.0:22 # SSH 服务端地址 注意端口冲突,请先关闭服务器 openssh 服务 或 修改端口
[redis]
status = 1 # 是否启动 Redis 0 关闭 1 启动
addr = 0.0.0.0:6379 # Redis 服务端地址 注意端口冲突
[mysql]
status = 1 # 是否启动 Mysql 0 关闭 1 启动
addr = 0.0.0.0:3306 # Mysql 服务端地址 注意端口冲突
files = /etc/passwd,/etc/group # Mysql 服务端读取客户端任意文件; 多写逗号分隔,会随机取
[telnet]
status = 1 # 是否启动 Telnet 0 关闭 1 启动
addr = 0.0.0.0:23 # Telnet 服务端地址 注意端口冲突
[ftp]
status = 1 # 是否启动 Ftp 0 关闭 1 启动
addr = 0.0.0.0:21 # Ftp 服务端地址 注意端口冲突
[mem_cache]
status = 1 # 是否启动 MemCache 0 关闭 1 启动
addr = 0.0.0.0:11211 # Memcache 服务端地址 注意端口冲突
[http]
status = 1 # 是否启动 HTTP代理 0 关闭 1 启动
addr = 0.0.0.0:8081 # HTTP代理地址 注意端口冲突
[tftp]
status = 1 # 是否启动 tftp 0 关闭 1 启动
addr = 0.0.0.0:69 # tftp 服务端地址 注意端口冲突
[elasticsearch]
status = 1 # 是否启动 ES蜜罐 0 关闭 1 启动
addr = 0.0.0.0:9200 # ES蜜罐 服务端地址 注意端口冲突
[vnc]
status = 1 # 是否启动 VNC蜜罐 0 关闭 1 启动
addr = 0.0.0.0:5900 # VNC蜜罐 服务端地址 注意端口冲突