一开始的修改系统环境没什么好说的,接下来的写文件操作有点眼熟,如果用过 Redis 的人,应该能猜到,这里是对 Redis 进行配置 。
写这个配置,自然也就是利用了 Redis 把缓存内容写入本地文件的漏洞,结果就是用本地的私钥去登陆被写入公钥的服务器了,无需密码就可以登陆,也就是我们文章最开始的 /root/.ssh/authorized_keys 。
登录之后就开始定期执行计划任务,下载脚本 。好了,配置文件准备好了,就开始利用 Masscan 进行全网扫描 Redis 服务器,寻找肉鸡 。
注意看这 6379 就是 Redis 服务器的默认端口,如果你的 Redis 的监听端口是公网 IP 或是 0.0.0.0,并且没有密码保护,不好意思,你就中招了 。
总结
通过依次分析这 3 个脚本,就能看出这个病毒的可怕之处,先是通过写入 ssh public key 拿到登录权限,然后下载执行远程二进制文件,最后再通过 Redis 漏洞复制,迅速在全网传播,以指数级速度增长 。
那么问题是,这台服务器是怎么中招的呢?看了下 redis.conf,Bind 的地址是 127.0.0.1,没啥问题 。
由此可以推断,应该是 Root 帐号被暴力破解了,为了验证我的想法,我 Lastb 看了一下,果然有大量的记录:
文章插图
还剩最后一个问题,这个 gpg-agentd 程序到底是干什么的呢?我当时的第一个反应就是矿机,因为现在数字货币太火了,加大了分布式矿机的需求,也就催生了这条灰色产业链 。
于是,顺手把这个 gpg-agentd 拖到 Ida 中,用 String 搜索 bitcoin,eth,mine 等相关单词,最终发现了这个:
文章插图
打开 nicehash.com 看一下,一切都清晰了:
文章插图
安全建议
服务器:
- 禁用 ROOT
- 用户名和密码尽量复杂
- 修改 SSH 的默认 22 端口
- 安装 DenyHosts 防暴力破解软件
- 禁用密码登录,使用 RSA 公钥登录
- 禁用公网 IP 监听,包括 0.0.0.0
- 使用密码限制访问 Redis
- 使用较低权限帐号运行 Redis
【记一次Linux被入侵,服务器变“矿机”的全过程】
推荐阅读
- Linux中直接I/O原理
- 这些 Linux 指令你都掌握了吗
- 为什么长大是变温柔 长大应该是变得温柔
- 夏至节气养生 饮食谨记“三字诀”
- 大暑养生记得多吃三类食物
- 茶叶含有单宁酸 所以茶叶蛋一次只能吃一个
- 异地发生交通事故,记住四步流程
- 详解Linux命令中;、|、& 、&& 、 ||之间的区别
- 如何在 Linux 上识别同样内容的文件
- 还在找人推荐笔记本 什么牌子的笔记本好