安全运维笔记


HFish安装

<h4>一、下载地址:</h4> <p><a href="https://github.com/hacklcx/HFish/releases">https://github.com/hacklcx/HFish/releases</a> <a href="https://github.com/hacklcx/HFish">https://github.com/hacklcx/HFish</a></p> <h4>二、docker安装</h4> <p>单年度部署 默认帐号密码限制:admin,如需修改可以通过加入-e USERNAME= -e PASSWORD=预先环境变量进行修改。-v $PWD:/opt 若要做数据持久化存储,可加参数挂载数据卷到主机机上,避免容器删除数据丢失。 docker run -d --name hfish -p 21:21 -p 22:22 -p 23:23 -p 3306:3306 -p 6379:6379 -p 8080:8080 -p 8989:8989 -p 9000:9000 -p 9001:9001 -p 11211:11211 imdevops/hfish:lates 21为FTP端口 22为SSH端口 23为Telnet端口 3306为Mysql端口 6379为Redis端口 8080为暗网端口 8989为插件扩展 9000为Web端口 9001为系统管理后台端口 11211为Memcache扩展 以上端口根据实际需要决定是否打开,并注意端口冲突。 集群部署 主节点部署 docker pull imdevops/hfish docker run -d --name hfish-master -p 21:21 -p 22:22 -p 23:23 -p 3306:3306 -p 6379:6379 -p 7879:7879 -p 8080:8080 -p 8989:8989 -p 9000:9000 -p 9001:9001 -p 11211:11211 imdevops/hfish:latest 客户端子节点部署 docker run -d --name hfish-client -p 21:21 -p 22:22 -p 23:23 -p 3306:3306 -p 6379:6379 -p 8080:8080 -p 8989:8989 -p 9000:9000 -p 11211:11211 -e CLUSTER_IP=master_ip:7879 -e NODE_NAME=clinet imdevops/hfish:latest 7879 为集群通信 RPC 端口 环境变量 CLUSTER_IP 为集群主节点IP地址 环境变量NODE_NAME为客户端节点名称,集群唯一,不可重名 使用说明 在后续使用过程中,如需修改配置文件或代码。使用如下命令进入容器内修改: docker exec -it 容器名 sh 设置</p> <p>服务端配置 本配置为 Demo 服务端需要启动 rpc , 修改状态 status 为 1 [rpc] status = 1 # 模式 0关闭 1服务端 2客户端 addr = 127.0.0.1:7879 # RPC 服务端地址 or 客户端地址 name = Server # 状态1 服务端 名称 状态2 客户端 名称 [admin] # RPC 状态为2 集群客户端的时候 admin 可以删掉 addr = 127.0.0.1:9001 # 管理后台启动地址 account = admin # 登录账号 password = admin # 登录密码 [api] status = 1 # 是否启动 API 1 启动 0 关闭 web_url = /api/v1/post/report # 管理后台启动地址 deep_url = /api/v1/post/deep_report # 管理后台启动地址 plug_url = /api/v1/post/plug_report # 插件蜜罐上报 API sec_key = 9cbf8a4dcb8e30682b927f352d6559a0 # API 认证秘钥 [plug] status = 0 # 是否启动 蜜罐插件 0 关闭 1 启动, 需要先启动 API addr = 0.0.0.0:8989 # 蜜罐插件 启动地址 [web] status = 0 # 是否启动 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 = 0 # 是否启动 暗网 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 = 0 # 是否启动 SSH 1 启动 0 关闭 addr = 0.0.0.0:22 # SSH 服务端地址 注意端口冲突,请先关闭服务器 openssh 服务 或 修改端口 [redis] status = 0 # 是否启动 Redis 1 启动 0 关闭 addr = 0.0.0.0:6379 # Redis 服务端地址 注意端口冲突 [mysql] status = 0 # 是否启动 Mysql 1 启动 0 关闭 addr = 0.0.0.0:3306 # Mysql 服务端地址 注意端口冲突 files = /etc/passwd,/etc/group # Mysql 服务端读取客户端任意文件; 多写逗号分隔,会随机取 [telnet] status = 0 # 是否启动 Telnet 1 启动 0 关闭 addr = 0.0.0.0:23 # Telnet 服务端地址 注意端口冲突 [ftp] status = 0 # 是否启动 Ftp 1 启动 0 关闭 addr = 0.0.0.0:21 # Ftp 服务端地址 注意端口冲突 [mem_cache] status = 0 # 是否启动 MemCache 0 关闭 1 启动 addr = 0.0.0.0:11211 # Memcache 服务端地址 注意端口冲突 rate_limit = 4 # 每秒响应次数 客户端部署 本配置为 Demo 客户端可删除 admin 配置项 客户端需要启动 rpc , 修改状态 status 为 2 [rpc] status = 2 # 模式 0关闭 1服务端 2客户端 addr = 127.0.0.1:7879 # RPC 服务端地址 or 客户端地址 name = Beijing_Clinet # 状态1 服务端 名称 状态2 客户端 名称 [api] status = 1 # 是否启动 API 1 启动 0 关闭 web_url = /api/v1/post/report # 管理后台启动地址 deep_url = /api/v1/post/deep_report # 管理后台启动地址 plug_url = /api/v1/post/plug_report # 插件蜜罐上报 API sec_key = 9cbf8a4dcb8e30682b927f352d6559a0 # API 认证秘钥 [plug] status = 0 # 是否启动 蜜罐插件 0 关闭 1 启动, 需要先启动 API addr = 0.0.0.0:8989 # 蜜罐插件 启动地址 [web] status = 0 # 是否启动 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 = 0 # 是否启动 暗网 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 = 0 # 是否启动 SSH 1 启动 0 关闭 addr = 0.0.0.0:22 # SSH 服务端地址 注意端口冲突,请先关闭服务器 openssh 服务 或 修改端口 [redis] status = 0 # 是否启动 Redis 1 启动 0 关闭 addr = 0.0.0.0:6379 # Redis 服务端地址 注意端口冲突 [mysql] status = 0 # 是否启动 Mysql 1 启动 0 关闭 addr = 0.0.0.0:3306 # Mysql 服务端地址 注意端口冲突 files = /etc/passwd,/etc/group # Mysql 服务端读取客户端任意文件; 多写逗号分隔,会随机取 [telnet] status = 0 # 是否启动 Telnet 1 启动 0 关闭 addr = 0.0.0.0:23 # Telnet 服务端地址 注意端口冲突 [ftp] status = 0 # 是否启动 Ftp 1 启动 0 关闭 addr = 0.0.0.0:21 # Ftp 服务端地址 注意端口冲突 [mem_cache] status = 0 # 是否启动 MemCache 0 关闭 1 启动 addr = 0.0.0.0:11211 # Memcache 服务端地址 注意端口冲突 rate_limit = 4 # 每秒响应次数 修改配置 [api] status = 1 web_url = /api/v1/post/report deep_url = /api/v1/post/deep_report sec_key = 9cbf8a4dcb8e30682b927f352d6559a0</p> <h6>status 是否启动 Api 1 启动 0 关闭</h6> <h6>web_url Api WEB蜜罐的路径</h6> <h6>deep_url Api 暗网蜜罐的路径</h6> <h6>sec_key 走接口上报,生产请修改 KEY</h6> <p>WEB Demo URL: <a href="http://WEB蜜罐地址/api/v1/post/report">http://WEB蜜罐地址/api/v1/post/report</a> POST: name : WEB管理后台蜜罐 # 项目名 info : admin&amp;&amp;12345 # 上报信息,&amp;&amp; 为换行符号 sec_key : 9cbf8a4dcb8e30682b927f352d6559a0 # API 安全密钥 特殊说明: URL api/v1/post/report 可在 config.ini 配置里修改 sec_key 可在 config.ini 配置里修改,修改后 WEB 模板也需要同时修改 暗网 Demo URL: <a href="http://暗网蜜罐地址/api/v1/post/deep_report">http://暗网蜜罐地址/api/v1/post/deep_report</a> POST: name : 暗网后台蜜罐 # 项目名 info : admin&amp;&amp;12345 # 上报信息,&amp;&amp; 为换行符号 sec_key : 9cbf8a4dcb8e30682b927f352d6559a0 # API 安全密钥 特殊说明: URL api/v1/post/deep_report 可在 config.ini 配置里修改 sec_key 可在 config.ini 配置里修改,修改后 暗网 模板也需要同时修改 黑名单 IP URL(Get): <a href="http://localhost:9001/api/v1/get/ip">http://localhost:9001/api/v1/get/ip</a> 获取全部钓鱼信息 URL(Get): <a href="http://localhost:9001/api/v1/get/fish_info">http://localhost:9001/api/v1/get/fish_info</a> 返回数据格式: { code: 200, data: [ { agent: &quot;本机&quot;, city: &quot;&quot;, country: &quot;本机地址&quot;, create_time: &quot;2019-08-26 21:29:00&quot;, id: 224, info: &quot;127.0.0.1:51548 已经连接&amp;&amp;stats&amp;&amp;&amp;&amp;set foo 0 6&quot;, ip: &quot;127.0.0.1&quot;, project_name: &quot;MemCache蜜罐&quot;, region: &quot;本机地址&quot;, type: &quot;MEMCACHE&quot; }, ], msg: &quot;success&quot; } 字段 说明 id 数据库唯一标识 project_name 项目名称 type 类型 agent 集群名称 ip IP地址 country 国家 region 省份/地区 city 城市 info 上钩信息 create_time 上钩时间 设置 WebHook 格式为 POST 请求 Json 格式 设置里写 自己的服务 API 即可 数据格式 字段 说明 id 唯一标识 model 操作,new or update project 项目名 type 类型 agent 集群名 ip IP地址 country 国家 region 省份 city 城市 info 上报信息 time 时间 特殊说明 第一次上报 model 为 new 同个 IP 上报同个连接的数据 model 为 update 意思是更新 Python Demo from flask import Flask, request import json app = Flask(<strong>name</strong>) @app.route('/api/callback', methods=['GET', 'POST']) def hello_world(): print json.dumps(request.json, indent=4) return 'Hello World!' if <strong>name</strong> == '<strong>main</strong>': app.run()</p>

页面列表

ITEM_HTML