记一次Linux被入侵,服务器变“矿机”的全过程( 三 )


一开始的修改系统环境没什么好说的,接下来的写文件操作有点眼熟,如果用过 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 看了一下,果然有大量的记录:
 

记一次Linux被入侵,服务器变“矿机”的全过程

文章插图
 
 
还剩最后一个问题,这个 gpg-agentd 程序到底是干什么的呢?我当时的第一个反应就是矿机,因为现在数字货币太火了,加大了分布式矿机的需求,也就催生了这条灰色产业链 。
于是,顺手把这个 gpg-agentd 拖到 Ida 中,用 String 搜索 bitcoin,eth,mine 等相关单词,最终发现了这个:
 
记一次Linux被入侵,服务器变“矿机”的全过程

文章插图
 
 
打开 nicehash.com 看一下,一切都清晰了:
 
记一次Linux被入侵,服务器变“矿机”的全过程

文章插图
 
 
安全建议
服务器:
  • 禁用 ROOT
  • 用户名和密码尽量复杂
  • 修改 SSH 的默认 22 端口
  • 安装 DenyHosts 防暴力破解软件
  • 禁用密码登录,使用 RSA 公钥登录
Redis:
  • 禁用公网 IP 监听,包括 0.0.0.0
  • 使用密码限制访问 Redis
  • 使用较低权限帐号运行 Redis
到此,整个入侵过程基本分析完了,如果大家对样本有兴趣,也可以自行去 Curl,或是去虚拟机执行上面的脚本 。鉴于本人能力有限,文中难免会出现疏忽或是错误,还请大家多多指正 。
 

【记一次Linux被入侵,服务器变“矿机”的全过程】


推荐阅读