前言
8月初的日子里,自己遨游在各个安全社区时,也习惯性的查看一下自己的机器在相关平台上暴露的信息,发现自己拥有的一台公网机器被人打上了含有“攻击”行为的标签,在我看着标签时脑海里突然有了个想法,别人既然可以通过一些手段找到我的机器,分析我的行为,那我可不可以反过来,也可以了解一下我的机器受攻击情况以及黑客是如何攻击我的、同时掌握其攻击行为呢?这样别人攻击我机器的时候,我也可以进行反向溯源操作。
于是自己脑海里冒出了一堆想法,正好自己也在学习蜜罐相关的知识,故想到可以使用蜜罐部署一些玩意,并将其弄成极其具有诱惑性的站点或服务,例如Zabbix、phpmyadmin、SSH服务等,等着猎物来上钩。
接下来就开始倒腾,便将自己的服务器皆使用上了蜜罐,在一段时间后,高交互的SSH蜜罐也收集到了一些挖矿脚本等文件,当然这些文件也经过系统以及联网检测都是恶意文件。唯独的一个文件却引起了我的好奇,它的标签显示的是安全,且文件大小也很小,一开始以为它是经过某些处理绕过了杀软,但是仅43字节大小的安全文件,里面内容肯定不会太多,黑客会在这个文件里弄了什么呢?
攻击行为分析
带着好奇,于是便将文件下载下来,拖到虚拟机使用文本文档打开,同时跟踪一下SSH行为,它的SSH行为很简单:
上图可知,成功登录上SSH后,向/etc/resolv.conf
文件中写入了两条解析记录,且该样本文件的内容也确实如此。
有关/etc/resolv.conf
文件的作用后期会单独写一篇文章介绍一下Linux下DNS解析过程相关知识。
而/etc/resolv.conf
文件中的第一条nameserver的IP并不是公共DNS地址中的IP,可见该IP是受黑客所控制的一个地址;第二条则是Google公共DNS地址。
那么攻击者意图就很简单,就是DNS劫持你的域名解析行为,此举可神不知鬼不觉的让你在访问的域名正确情况下给你重定向到一个错误的站点。
例如我在本地经过一些设置使用DNS劫持百度页面为我的自定义站点:
此时在对应重定向的IP上开启一个站点,并访问:
上图可以看到百度的官网页面跳到了我精心设置好的一个劫持的站点页面上。当然上述行为操作也可在本地hosts文件下修改操作,同样可以达到该效果。
但是直接劫持DNS的效果比写hosts文件更简单高效,且隐蔽性更好。攻击者平时可以不将该IP的53端口放开,那么Linux系统在解析域名时,在前面的解析工作皆未查到相关域名的IP下,此时到/etc/resolv.conf
文件里的nameserver提供的DNS地址来进行域解析时,当第一个nameserver地址查询没有结果反馈时就会依次使用下面的nameserver进行查询,直到有一个DNS地址提供了返回结果后才结束向下的查询操作,由于第二个的Google公共地址是正常提供解析的,那么返回的则是正确的解析结果;此时你的机器对域名的访问皆是正常的结果,你的使用操作与平时无异。此刻即使你的机器已经被黑客访问且留下隐患,若不借助一些工具分析,你可能无法知道机器的问题所在。
若过了一段时间,这时攻击者将该IP的DNS解析服务放开又或者它只劫持了非常用的域名地址解析,此时,你的机器上的DNS解析结果就受/etc/resolv.conf
中的第一个nameserver所影响,如果这时在不知情的情况下通过某域请求下载一个文件运行,例如安装包安装等,那么攻击者就可以通过DNS劫持相关域的解析结果将你重定向到一个自己精心制作的含有木马文件的站点文件上。待文件下载完成后运行该文件时,那么恭喜你,你的机器就这么被“拿下”了。
而对该IP使用nslookup
解析域,发现也确实是返回了错误的域解析(GOV保命):
可能这时候就有疑惑了,为何黑客已经登录了你的机器,干嘛不直接执行恶意文件呢?
这儿可能有如下几点:
1、更好的隐蔽性。若前期机器防护性不是很完善,前面的黑客操作可能不会引起相关行为的告警,且你的机器也仍是正常运行,与平时运行无异,待到过了一些时日,或过了防火墙的日志记录有效期,攻击者再神不知鬼不觉的将IP启用解析或恶意重定向解析某些偏门域名,直到机器沦陷,届时就很难追溯到一开始的行为了,排查花费的精力也就越大。
2、监控你的解析行为,得知你的机器访问的域情况,收集受害人的行为信息。
3、扩大攻击面。后期服务成熟后,可以通过域解析获取到更多有用的信息。
防范
针对上述行为,我们的防范可以有如下几种:
1、定时检测Linux系统下的/etc/resolv.conf
、/etc/hosts
、/etc/host.conf
等文件,检测其内容是否存在异常,以及相关IP是否异常。
2、DNS应使用公共的地址,做好定时检测。
3、最好远离不受信任的网站,避免下载任何免费的东西。
2 条评论
用的什么蜜罐,呢能够分享下吗?
对比了一些蜜罐,选择的是HFish