首页 > 技术文章 > 记——第一次服务器被挖矿

WoLykos 2019-11-25 16:49 原文

搭建了那么多台服务器,终于有人来搞我了。还有点小激动是怎么一回事 φ(>ω<*)
  

首先发现的,还是公司里一个主管网络的大佬。他盯着公司里每一个IP的上下行,然后发现:哎呀,这个机子有点不对劲啊。
遂通知主管,然后就到我这里了。
然后,由于本人的Linux知识还是太匮乏,书到用时方恨少,排查问题多弯路啊,ε=(´ο`*)))唉。
  

然后我突然想到,不是还有前辈在嘛。我简直就是个小机智呢~~
于是,在我不要脸外加软磨硬泡的“请教”下,大佬终于伸出手把我从泥坑里拉了出来。
  

由于事出紧急,我也就没截图了。
不过我还是重新把各个步骤整理了一哈,并拆掉了多余的南墙,如下:

  • 1、使用top查看资源情况。

      

  • 2、确认进程号
    ps -ef | grep 进程名

      

  • 3、查看服务位置
    ls -l /proc/进程号
      

  • 4、使用kill结束掉该服务
    kill -9 进程号
      

  • 5、删除.dhpcd的文件
    cd /home/用户名
    rm -rf .dhpcd
      

  • 6、查看所有用户的crontab
    for u in `cat /etc/passwd | cut -d":" -f1`;do sudo crontab -l -u $u;done
    PS:
    公式中的`记得改成半角符。
      

  • 7、更改用户名密码
    passwd 用户名
      

  • 8、切换问题用户删除crontab
    su - 用户名
    crontab -e
      

  • 9、删除用户
    userdel -r 用户名
      

  • 10、再次使用top查看
    top
    PS:
    如果CPU的占用率不高了,而且也没有一些奇奇怪怪的进程名,便算是解决了燃眉之急。
    为什么说是燃眉之急呢,后文会再详细说到。

      


当然,这里还得额外强调一下,

因为大多数病毒可能会写crontab(定时任务),所以这个东西一定要查!!!

  

那crontab是什么东西呢??

“crontab”是cron的配置文件,是“cron table”的简写。
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
在LINUX中,周期执行的任务一般由cron这个守护进程来处理ps -ef|grep cron。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件一般放在/var/spool/cron/这个目录下,包括每个用户甚至root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

cron服务
  service crond start //启动服务
  service crond stop //关闭服务
  service crond restart //重启服务
  service crond reload //重新载入配置
  service crond status //查看服务状态

   


  

OK,言归正传。

为什么前文说的是:“只解决了燃煤之急呢?”

  

很多时候,Hank们入侵你的服务器后,并不止单纯地写个定时任务,还可能会植入个触发事件,这是最麻烦的,因为你无从下手,就像潜伏病毒一样。
因此,我们还需要做好监视,但不可能top然后一直盯着看吧?熬鹰呢秀儿。
所以我写了一个脚本,自动运行top并抓取前几天记录,输出到文本文件中,如下:
monitor_top.sh

#!/bin/sh
top -bn 2 |grep -A 6 "Cpu">/backup/monitor_$(date "+%Y%m%d").txt

  

搞定!

之后我便只需要时不时打开文件洛克洛克,就一目了然啦~~~
✧(^_-✿

推荐阅读