蜜罐简介
蜜罐 技术本质上是一种对攻击方进行 欺骗的技术,通过布置一些作为 诱饵的主机、网络服务 或者 信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行 捕获 和 分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
蜜罐 好比是 情报收集系统。蜜罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。
蜜罐在拖延黑客攻击真正目标上也有一定作用。不过黑客可能发现一个电脑系统是蜜罐,进而提前退出。而更常见的用法是用来吸引网络的计算机病毒入侵,从而获得病毒样本用于研究或破解的计算机,杀毒软件公司会利用这些计算机来监视或获得计算机网络中的病毒样本。而在攻防演练中,蜜罐也是蓝队不可或缺的一种对于攻击者的防御手段 。
应用场景
蜜罐一般有两种应用场景,一种是企业内部为了应对攻击者进行防御而设立的,请注意,蜜罐并没有防御功能,它所能做的是诱捕攻击者进行攻击,拖延时间同时通知管理员进行防御。一般的设立如下图:
而还有一种则是外网中的设立,如图:
而我们把这两种结合起来,就可获得一个较为安全的生产环境,如图:
Hfish蜜罐
HFish是一款基于 Golang 开发的跨平台多功能主动诱导型开源国产蜜罐框架系统,为了企业安全防护做出了精心的打造,全程记录黑客攻击手段,实现防护自主化。
Hfish蜜罐的特点:
- 多功能 不仅仅支持 HTTP(S) 蜜罐,还支持 SSH、SFTP、Redis、Mysql、FTP、Telnet、暗网 等;
- 扩展性 提供 API 接口,使用者可以随意扩展蜜罐模块 ( WEB、PC、APP)
- 便捷性 使用 Golang + SQLite 开发,使用者可以在 Win + Mac + Linux 上快速部署一套蜜罐平台。
Hfish 项目地址:https://github.com/hacklcx/HFish/;Hfish 使用教程地址:https://hfish.io/。
蜜罐搭建
为了方便搭建,此处使用Docker搭建Hfish蜜罐,项目官方地址:https://hub.docker.com/r/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端口
实际启动情况如下图所示:
容器启动成功后可先访问下 Ubuntu 虚拟机 9000 端口看看 Web服务,发现是一个 WordPress 站点登录页面:
此时继续访问 9001 端口可访问查看 Hfish 蜜罐后台管理系统:
账户密码默认都是 admin(可进入容器使用vi HFish/config.ini
命令修改默认密码),成功进入平台,攻击数据暂时都还为空值:
攻击蜜罐
下面借助局域网内部的 Kali Linux 虚拟机对 Hfish 蜜罐系统进行模拟攻击,以观察 Hfish 蜜罐系统后台对攻击行为的捕抓和记录效果。
Nmap先扫描一波 Ubuntu 蜜罐主机的端口:
1、SSH蜜罐
(1)使用 Kali 虚拟机尝试 SSH 远程登录 Hfish 蜜罐系统的主机:
(2)此时可以在 Hfish 后台管理系统的“上钓列表”中成功看到攻击信息(记录了攻击者使用的账户名和密码,借此如果攻击者是使用脚本自动跑字典脚本对SSH服务进行爆破,Hfish即可帮助我们搜集攻击者的字典):
(3)如果是登陆成功的情况,攻击者使用的操作命令同样会被 Hfish 记录,借此我们可以收集攻击者的攻击过程和手段:
2、Telnet蜜罐
3、FTP蜜罐
4、MySQL蜜罐
5、Web蜜罐
其他蜜罐请查看官方使用文档,此处不再叙述了。
以上是经过上述一系列攻击后,Hfish 后台管理系统的攻击展示页面效果。
信息接口
Hfish 蜜罐提供了一套API接口便于我们对收集到的攻击汇总信息进行查看和整理,官方介绍如下:https://hfish.io/docs/#/help/api。
调用接口需要输入密钥,官方默认的API密钥如下:
report_key = 9cbf8a4dcb8e30682b927f352d6559a0 # API 上报认证秘钥
query_key = 585e2ba265d965b1929148d0f0e33133 # API 查询认证秘钥
1、利用API接口查寻蜜罐获取钓到的账号密码:
http://192.168.43.221:9001/api/v1/get/passwd_list?key=X85e2ba265d965b1929148d0f0e33133
如下图所示:
2、利用API接口获取蜜罐记录的全部钓鱼信息:
http://192.168.43.221:9001/api/v1/get/fish_info?key=X85e2ba265d965b1929148d0f0e33133
如下图所示:
而且由于秘钥硬编码, 攻击者可以直接利用默认配置中的key访问日志信息,反日蜜罐。为了避免蜜罐捕获的信息泄露被白嫖……建议修改上述官网默认的上报认证秘钥和查询密钥。
集群部署
以上我们通过单节点部署了 Hfish 蜜罐系统:
下面演示如何借助 Docker 部署 Hfish 蜜罐集群。
主节点部署
docker run -d --name hfish-master -p 21:21 -p 22:22 -p 23:23 -p 69:69 -p 3306:3306 -p 5900:5900 -p 6379:6379 -p 7879:7879 -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
子节点部署
docker run -d --name hfish-client -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 9200:9200 -p 11211:11211 -e CLUSTER_IP=master_ip:7879 -e NODE_NAME=clinet --restart=always imdevops/hfish:latest
解释下上述命令:
7879 为集群通信 RPC 端口;
环境变量 CLUSTER_IP 为集群主节点IP地址;
环境变量 NODE_NAME 为客户端节点名称,集群唯一,不可重名。
由于前面我们已经在 Ubuntu 虚拟机上部署过主节点(--name:hfish
),但是没有启用 7879 通信端口,故需要删除原来的容器重新启用一个 Hfish 容器:
然后再在局域网中 kali 虚拟机上部署子节点即可:
此时可以分别访问下 Kali 子节点和 Ubuntu 主节点的 Web 蜜罐:
查看 Ubuntu 主节点的 Hfish 后台管理系统,可以看到分布式集群中 Kali 虚拟机子节点:
最后看一下 Hfish 分布式集群的攻击统计情况:
蜜罐小结
Hfish 官方文档还介绍可借助 Hfish 插件让任意站点成为蜜罐,此处暂未实践,有兴趣的读者可进一步了解:Hfish插件(任意站点,皆可蜜罐)。
本文较为基础,仅涉及 Hfish 蜜罐的基础安装和使用,关于如何在公网 VPS 上分布式部署 Hfish 蜜罐并开展高级玩法(搜集全球攻击手段信息和攻击字典),可以参考 ciker 大神的文章:HFish 蜜罐使用心得。