通过HFish初识蜜罐技术

2019-11-18 7,616

什么是蜜罐?

蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。

好比是情报收集系统。罐好像是故意让人攻击的目标,引诱黑客前来攻击。所以攻击者入侵后,你就可以知道他是如何得逞的,随时了解针对服务器发动的最新的攻击和漏洞。还可以通过窃听黑客之间的联系,收集黑客所用的种种工具,并且掌握他们的社交网络。

蜜罐分类

实系统蜜罐

实系统蜜罐是最真实的蜜罐,它运行着真实的系统,并且带着真实可入侵的漏洞,属于最危险的漏洞,但是它记录下的入侵信息往往是最真实的。这种蜜罐安装的系统一般都是最初的,没有任何SP补丁,或者打了低版本SP补丁,根据管理员需要,也可能补上了一些漏洞,只要值得研究的漏洞还存在即可。然后把蜜罐连接上网络,根据目前的网络扫描频繁度来看,这样的蜜罐很快就能吸引到目标并接受攻击,系统运行着的记录程序会记下入侵者的一举一动,但同时它也是最危险的,因为入侵者每一个入侵都会引起系统真实的反应,例如被溢出渗透、夺取权限等。

伪系统蜜罐

什么叫伪系统呢?不要误解成假的系统,它也是建立在真实系统基础上的,但是它最大的特点就是平台与漏洞非对称性

大家应该都知道,世界上操作系统不是只有Windows一家而已,在这个领域,还有LinuxUnixOS2BeOS等,它们的核心不同,因此会产生的漏洞缺陷也就不尽相同,简单的说,就是很少有能同时攻击几种系统的漏洞代码,也许你用LSASS溢出漏洞能拿到Windows的权限,但是用同样的手法去溢出Linux只能徒劳。根据这种特性,就产生了伪系统蜜罐,它利用一些工具程序强大的模仿能力,伪造出不属于自己平台的漏洞,入侵这样的漏洞,只能是在一个程序框架里打转,即使成功渗透,也仍然是程序制造的梦境——系统本来就没有让这种漏洞成立的条件,谈何渗透?实现一个伪系统并不困难,Windows平台下的一些虚拟机程序、Linux自身的脚本功能加上第三方工具就能轻松实现,甚至在Linux/Unix下还能实时由管理员产生一些根本不存在的漏洞,让入侵者自以为得逞的在里面瞎忙。实现跟踪记录也很容易,只要在后台开着相应的记录程序即可。

这种蜜罐的好处在于,它可以最大程度防止被入侵者破坏,也能模拟不存在的漏洞,甚至可以让一些Windows蠕虫攻击Linux——只要你模拟出符合条件的Windows特征!但是它也存在坏处,因为一个聪明的入侵者只要经过几个回合就会识破伪装,另者,编写脚本不是很简便的事情,除非那个管理员很有耐心或者十分悠闲。

以上部分摘选自百度百科,简化一下

蜜罐定义

诱使攻击方攻击,通过攻击行为对攻击方进行各种分析。

蜜罐类型

1.漏洞百出的真实系统

2.模拟不属于自己系统(比如说服务器是linux,模拟一个windows服务器特征,让攻击者进入迷宫。)

很显然第一种实系统蜜罐的优势是能够在真实的情况下记录下入侵者的一举一动,但是由于与真实系统密切联系,入侵者每一个入侵都会引起系统真实的反应,万一真实系统被溢出或者渗透等,是非常危险的。

伪系统蜜罐就像是让入侵者进入了一个迷宫,但是入侵者还不知道自己在其中,他会自以为是的在里面瞎忙活,自己的记录也会被跟踪,虽然这种蜜罐相等安全,但是蜜罐对于有效的攻击行为却难以捕捉。

蜜罐作用

1.  迷惑入侵者,保护服务器
2. 
诱捕网络罪犯

3.  数据收集

4.   ......


注意事项

法律问题 : 出乎意料的是,监控蜜罐也要承担相应的法律后果,譬如说,有可能违反《反窃听法》。虽然目前没有判例法,但熟悉这方面法律的人士大多数认为,双方同意的标语是出路所在。也就是说,给每个蜜罐打上这样的标语:使用该系统的任何人同意自己的行为受到监控,并透露给其他人,包括执法人员。

蜜罐部署

为了更好的了解蜜罐,我从github搭建一个开源的蜜罐项目。



看到了好多功能呀,而且蜜罐还有很大的拓展性。

部署方式有单机部署,集群部署,Docker部署等方式,这里我选择在虚拟机里用docker部署。

在虚拟机用docker搭建

ubuntu系统做测试

一、首先把镜像pull下来


docker pullimdevops/hfish


二、一键部署

然后我选择单节点部署,账号密码默认都是admin,在虚拟机就先不修改了。


这是官方文档给出的端口说明,这里就体现了docker搭建的好处,如果在服务器上测试的时候占用2122端口会很麻烦,docker里可以直接做不同的端口映射。



docker run -d--name hfish -p21:21 -p22:22 -p23:23 -p3306:3306 -p6379:6379  -p9000:9000 -p9001:9001 -p11211:11211 imdevops/hfish:latest

如果需要更改密码可以在执行docker命令的时候在docker run后面加入-e USERNAME= -e PASSWORD=传入环境变量进行修改。

这里我们开启FTPSSHTelentMysqlRedisWeb蜜罐后台

对应端口分别是21 2223 3306 6379 9000 9001

11211端口是Memcache 端口,用来提升网站访问速度

我这个虚拟机没有用所以可以用21 22 等端口,大家如果搭建的话要注意端口冲突。

docker ps可以查看端口映射的规则

           

使用过程中如果想对服务配置等进行修改,再用docker起一个shell


docker exec -it容器名sh

初探蜜罐

开启的端口中,只有9001是属于我们的后台管理,其他的都是蜜罐,一开始我还对着蜜罐输入admin

都被记录下来了2333333

先去后台看一下

访问 ip:9001 输入账号密码admin

可视化很简明,可以看到上方列表还有其他功能,这里暂时不研究.


web钓鱼

源码只有一个wordpress的静态界面,赤裸裸的欺骗啊


我把T

itle改成星盟安全团队

主机访问一下虚拟机的web蜜罐



随便输入账号密码




弹出错误提示,去看一下后台捕捉到没有





攻击信息一目了然

看一下index.html调用了x.js 登录行为直接是一个js的欺骗



打开burp测试一下,如果攻击者不往静态的方向思考,可能会在这里绕一段时间。把index.html改成index.php就更具有迷惑性了。


自带的web页面只有一个登录钓鱼

如果想要收集信息,可以接入自己的api,官方文档也有说明


 

当然这个项目是支持自定义web蜜罐的,我就先不去深入研究了。有兴趣的小伙伴可以去尝试一下。

FTPssh钓鱼

尝试连接ssh




连接ftp



Telent钓鱼



 

telent可以直接连接上,并且攻击者在shell中输入的命令都会被记录,可能在攻击者沾沾自喜的时候,已经暴漏了越来越多的行为。

mysql服务钓鱼

kali系统爆破一下mysql


hydra -L/home/ling/user.txt -P /home/ling/pass.txt 192.168.226.129 mysql




有些尴尬,爆破成功了,去后台看一下


后台也检测到了连接,连接也没用,反正是假的。反而会暴漏攻击者的行为意向等

总结

测试了 webftpssh telent mysql服务

攻击者的登录行为都可以被捕捉到

而且以下信息都会被记录


其中mysql可以让攻击者使用弱口令登录,从进一步分析攻击者行为。

telent服务可以直连,并记录攻击者的操作行为。

 

后台管理仪表盘中如果攻击者多的话才会体现视图优势,做测试看上去空荡荡的。

拓展

1.集群部署

2.邮件报警

3.自定义web蜜罐

4.接入API收集信息

5.黑白名单限制

通过一个开源项目去简单的了解蜜罐技术,感觉自己的思路开拓了很多,在部署蜜罐的时候站在攻击者的角度去考虑问题,可能会得到很多奇妙的想法。

由于我刚开始去了解蜜罐技术,文章中有很多不足之处,敬请谅解。


项目地址: HFish(https://github.com/hacklcx/HFish)

参考:https://baike.baidu.com/item/%E8%9C%9C%E7%BD%90%E6%8A%80%E6%9C%AF/9165942?fr=aladdin


本文作者:星盟安全团队

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/118587.html

Tags:
评论  (0)
快来写下你的想法吧!

星盟安全团队

文章数:25 积分: 75

星盟安全团队---"VENI VIDI VICI"(我来,我见,我征服),我们的征途是星辰大海。从事各类安全研究,专注于知识分享。

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号