事情是这样的
我自以为复杂的随机密码,结果还是被破解了,怀疑还是撞库进去的
恩,阿里云就的免费的动态感知就开始报出异常了:SSH远程非交互式一句话异常指令执行
上面这句话不用理解,反正就是从俄怀明州的一个ip用root用户登录到机器上,下载了俩病毒文件,并且happy的运行了起来
并未对服务器上其他程序进行破坏性操作,嗯,我很庆幸。经过查询,貌似是个把你的服务器变成BTC矿机的病毒,并且能够自行对互联网上的其他ip进行攻击扩散病毒
接下来,可以想像到的,这个攻击轻易的就被阿里云发现了,并且封掉了若干dst端口的访问,其中包括了重要的22端口
以上是和阿里云技术客服的一部分对话
那么,关键问题是,我们怎么才能准确的找到病毒,干掉病毒呢
现场截图,我没有留,但是我尽可能还原现场
思路如下:
- 先确认封禁的端口
- 进而找到程序的进程号
- 进而删除病毒程序
- 再杀掉进程
- 检查crontab定时任务
- 结束
假设我们被封禁的端口号是:22
// 切换root权限
sudo su// 筛选被封禁的端口号连接
netstat -anp | grep :22
最右边一列,为进程号/程序名
假设,这时候问题进程为13411,问题程序为remmina
PS: remmina是我的远程服务器管理工具,一般病毒可能是个随机字符串,特征还是很明显的
// 查看进程的工作目录
pwdx 13411// 查看程序进程的执行命令
ps -ef | grep 13411
经过上面两部,我们一定能找到程序的执行位置,以及程序本体
// 我们第一步就是删除程序文件
cd /home/bh && rm -f /usr/bin/remmina;
如果有坚强的进程,就顺着pid一直顺上去,不对的程序都干掉// 现在病毒的执行程序都干掉了,接下来就是要杀进程了
kill -9 13411// 最后要检查crontab有没有可疑的定时任务
crontab -e// 干掉奇怪的程序,那么就结束了
以上,基本上可以应对所有被封禁固定端口的场景
如果是非阿里云的服务器,就比较头疼了,要及时发现都是个难事儿。
不过这种挖矿的病毒,占用cpu资源还是比较厉害的,通常通过检查cpu占用率定位程序进程
偷偷的,偷信息的病毒就完蛋了
最关键的还是,不要让别人轻易的登录你的服务器哦
服务器登录,建议初始化的时候,建立好sudo用户,就把root账户封掉吧。然后用户登录要用ssh-key的无密码登录会更加安全哦。这样撞库几乎不可能成功。