我是 printf520 提供今日热榜 API 的博主, Redis 感染了自动化挖矿蠕虫。目前已经修复

2019-07-19 12:16:56 +08:00
 timeromantic

首先谢谢发帖告知我 API 感染挖矿病毒的 V 友。 @zpfhbyx

事情围观: https://www.v2ex.com/t/584216#reply23 api 文档: https://www.v2ex.com/t/578957#reply6

目前已经做了修复处理

感染原因如下:

Redis 默认情况下,会绑定在 0.0.0.0:6379,在没有利用防火墙进行屏蔽的情况下,将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下利用 Redis 的相关方法,可以成功将自己的公钥写入目标服务器的 ~/.ssh 文件夹的 authotrized_keys 文件中,进而可以直接登录目标服务器;如果 Redis 服务是以 root 权限启动,可以利用该问题直接获得服务器 root 权限。

经过对捕获的事件进行分析,整个入侵流程大概是包含以下几个环节:

Redis 服务加固

8888 次点击
所在节点    程序员
52 条回复
wh1012023498
2019-07-19 13:32:21 +08:00
= = 这个 redis 安全问题。。不是早就暴露了吗。。
kzfile
2019-07-19 13:33:00 +08:00
我的也入侵了,结果因为是 windows 系统,挖矿脚本没跑起来
1iuh
2019-07-19 13:34:10 +08:00
据我所知,利用 redis 未授权漏洞是需要 flushall 的, 而且我想不到为什么还能只替换你知乎的 key。依据的你的描述来看,只是被脚本扫到了, 不是针对你的攻击。
另外你说持续时间为 0 这个我也无法认同,都有 V 友调用你接口发现问题了,怎么会持续时间为 0。
timeromantic
2019-07-19 13:37:09 +08:00
@1iuh 我说的持续时间为零是指的。他的脚本并未成功在我服务器上面挖矿,跑在 docker 容器。不过入侵我的 redis 倒是有一段时间。调用我 api 的朋友是不受影响的
timeromantic
2019-07-19 13:37:57 +08:00
@wh1012023498 老哥,又见到了你了,因为头像记得你
zpfhbyx
2019-07-19 13:57:30 +08:00
ScepterZ
2019-07-19 14:20:15 +08:00
解决方法呢,有办法不让 docker 绑定 0.0.0.0 吗
realpg
2019-07-19 14:21:30 +08:00
@RicardoY #17
ubuntu 的软件包是的

CENTOS 表示我们从来都是 0.0.0.0
ScepterZ
2019-07-19 14:23:16 +08:00
查了一下,docker run -p 127.0.0.1:6379:6379 就行了
fuxkcsdn
2019-07-19 16:34:43 +08:00
容器运行默认都只绑定在 127.0.0.1 上
除非你启动容器时用 -P 或者 -p 6379:6379
根据你的描述应该是后者
fuxkcsdn
2019-07-19 16:35:49 +08:00
上面打错了
-p 6379:6379 也只会绑定在 127.0.0.1 上,应该是 -p 0.0.0.0:6379:6379
x66
2019-07-19 16:42:37 +08:00
不懂就问:
1. 为什么是 cur ?而不是 curl ?
2. 什么情况下请求者会受到这个 json 中的命令攻击?
bin20060407
2019-07-19 16:45:50 +08:00
Redis 表示这锅我不背,默认是绑在 127.0.0.1 的
mangoDB
2019-07-19 19:14:22 +08:00
借楼学习一下,那个挖矿脚本如何会被触发呢?
难道需要好奇心比较重的用户,手动执行吗?
cuixiao603
2019-07-19 20:22:19 +08:00
同好奇如何触发
Trim21
2019-07-19 20:27:34 +08:00
为啥这个 sort 会让 Redis 被入侵,有没有大佬解释一下…
scnace
2019-07-19 20:51:28 +08:00
@cuixiao603 @mangoDB 触发应该是通过把 redis 的 dir 和 dbnamefile 指向 /etc/crontab 然后把这个 value 写入到 crontab 里面(但是好像 curl 拼错了?

LZ 能看下自己的 crontab 列表确认下吗?难道是写完之后又改回去了?
scnace
2019-07-19 20:53:05 +08:00
@scnace typo : dbnamefile => dbfilename
sampeng
2019-07-19 23:35:49 +08:00
这个史前时代的问题…你居然把 redis 扔公网上。佩服佩服…
JasperWong
2019-07-20 00:32:19 +08:00
我也中过这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/584369

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX