服务器被入侵(疑似挖矿病毒)处理

服务器被入侵(疑似挖矿病毒)处理

 

一、环境介绍:

系统:ubuntu 18.04

内存:128G 

硬盘:500G(操作系统盘)+15T(数据盘)

a、查看物理CPU个数

root@ubuntu:~# cat /proc/cpuinfo| grep"physical id"| sort| uniq| wc -l

2

b、查看每个物理CPU中core的个数(即核数)

root@ubuntu:~# cat /proc/cpuinfo| grep"cpu cores"| uniq

cpu cores      :16

c、查看逻辑CPU总的个数(利用超线程技术实现。2个物理CPU;2x16=32核;每核2线程:32x2=64线程)

root@ubuntu:~# cat /proc/cpuinfo| grep"processor"| wc -l

64

d、查看总线程数,可以理解为总逻辑cpu的数量

root@ubuntu:~# grep 'processor' /proc/cpuinfo| sort -u | wc -l

64 

e、查看  CPU型号

内核:Linux ubuntu4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 19:21:19 UTC 2021 x86_64 x86_64x86_64 GNU/Linux

64 Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz  (利用超线程技术实现的64个逻辑CPU)

 文章主题之外补充:KVM、VMwre等等虚拟化,应该分配几颗CPU 是以总核数来确定的(如上16x2=32核),不是以逻辑(线程数)CPU 的数量来确定。

 


二、服务器状态排查一

1、如下图可见,%CPU us:用户占用cpu(用户CPU使用率)达到了50%,(us是用户CPU 使用率,便于理解:CPU 分为用户态和内核态,所以也分为用户CPU占用率、系统CPU 占用率(用户:就是在操作系统之上运行的各种应用软件;系统:就是在操作系统本身),理解可参考:https://www.cnblogs.com/bailongcaptain/p/12397679.html)。

 引用:之前看到过一篇文章介绍说:只要是跑着的线程,那么都是占用CPU的线程,如果一个进程有多个线程在同时运行,那么cpu占满是不可能的,每个线程本来就是会被操作系统分配时间片的。举个例子:如果3个线程同时运行,那么只有问题线程所使用的30%是满的,3个线程同时都是问题线程的概率是很小的(但不是没有可能),所以cpu总体使用率可能是50%以上,但不可能达到100%,遇到问题进程,这个首先得看是不是程序占得cpu,这个还是可以top一下,查看性能监测器,确定是某个程序的话,可以通过windbg抓dump进行分析。然后听到了一个感觉会有些烧脑的名词——线程监控,把内部线程和系统线程id结合,可能会在调试状态下查看CPU使用率,然后找到哪个函数CPU占用过高这么个场景会用到。备注:在我的环境中达到50% 服务器并不卡,可能在高点达到70~80%就会卡了。

 在我这个场景下,第一张图:用户CPU占用率达到了50%左右,Load average 负载达到了32左右,CPU总核数也是32

第二、三张图就能清晰的看到      CPULoad average 达到了32左右

top 命令后按“1“:

2、心里想:CPU load average 负载这么高,可能是磁盘IO出问题的时候,CPU都等着向磁盘写数据呢,或者磁盘有坏道,写的慢,CPU任务执行不完,就一直处于等待的状态,所以导致的负载这么高,排查iowait信息,如下显示:磁盘IO是正常的。


3、排查定时任务crontab中任务脚本,以及硬盘使用情况,内存使用情况,也都未发现异常。

4、列出进程id, 线程id和cpu占有率,同时按照cpu占有率排序

root@ubuntu:/etc#psH -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

以为用这个命令可以把隐藏的进程都显示出来,是我年轻了!!!


5、排查网络,服务器连接的IP以及监听的端口是否异常,并使用ifconfig查看网卡收发的流量情况

6、排查/etc/passwd   是否有可疑用户或者登录的权限设置有问题(就不附图片了)

 

7、排查/var/log/message  用户登录记录,我这用的是vim打开,里面的记录也都被清空了,此时还没有意识到/var/log下文件的重要性,这让我很后悔,原因嘛,等下就晓得了。


思路小结:以上排查后,偏偏CPU占用率很高,其他的很正常,这不符合逻辑呀!!!

附上此时内心独白:真TM奇了怪了!!! 到底是个啥导致的CPU占用率这么高???要么就等他自己爆吧,反正又不能重启;心里又想,难得遇到这么个场景,重启此时的服务器环境就没有了,问题始终要解决,鼓着上吧。

 


三、服务器排查二

1、重点:以上的排查这是部分的排查,要想找到问题所在,还是要耐住性子,虽然知道服务器里面有那么多的文件,遇到的问题就在这么多文件的其中,但是解决的途径也是在其中。

2、突然想到:一开始的/var/log/message 是直接用 vim 打开看的,并没有把/var/log下的所有的文件都看过,要不把 /var/log下的所有文件都看一遍,哈哈哈,这可能是真是运气,在/var/log/syslog里面尽然有很多的报错是关于SSH服务的,SSH服务一直在不断的重启,并且一直在调度分配新的job去执行重启,怀疑可能是一直就是因为这个原因导致的CPU占用率这么高;并且查看状态一直有ip在暴力破解密码,同时也统计了一下密码被暴力破解的次数:有12万多。我们的密码我感觉设置的也很简单,感觉都经受不了这么多次的尝试。(别人设置的,我的话最起码十位数起步,大小写,特殊字符)

activating(start) 这个状态是不正常的。

3、排查了ssh服务的配置文件/etc/ssh/sshd_config 文件,里面没有问题,手动重启了一遍,仍然是activating(start)这个错误的状态,打算重做SSH服务

4、重装SSH 服务,遇到了新的问题:

问题1、Errors were encountered whileprocessing

问题2、The following packages have unmet dependencies:

 openssh-server : Depends: openssh-client (=1:7.2p2-4ubuntu2.8)

                  Depends: openssh-sftp-serverbut it is not going to be installed

问题3:dpkg:erro processing package openssh-server(--configure) installed openssh-server package post-installation scriptsubprocess returned error exit status 1 errors were encontered while processing

问题4:dpkg: error processing package openssh-server (--configure):

 subprocess installed post-installation scriptreturned error exit status 10

Errorswere encountered while processing:

问题5:等等一连串的依赖报错之类的问题

以上的问题都是由于对ubuntu 的不熟悉,apt-get remove openssh-server 会出现一连串的问题,切记,要想把软件卸载干净就不要使用这个 apt-get remove xxxxx;

正确做法:apt-get purge openssh-server openssh-client ,就不会有上述的一些依赖问题。

心得:出现以上类似的其他软件包的问题,其实可能都是由于在之前使用了remove。场景:若是现在需要新装一个软件,出现了类似的上述的依赖报错问题,并且这个报错是之前卸载某个软件遗留下来的,可以通过:先which xxx 或者whereis xxx ,查询一下软件包的主要配置文件在哪,将他cp备份保存一份;接下来使用apt-get purge xxxx 来卸载依赖报错的软件(xxx是之前的卸载的软件,并且这个软件在报错中一定会体现的);然后apt-get install –f && apt-get install xxxx 将依赖报错的软件重新安装,在把新的配置文件对照着cp备份保存的配置一下,再然后apt-get update更新如软件包的信息,可以理解为更新下载源;最后再apt-get install 安装需要新装的那一个软件。

 

5、重装SSH服务遇到了个最棘手的问题,同时这个问题也证明了服务器确实已经被入侵过了。

问题1、unable tomake backup link of `./usr/bin/sshd’ before installing new version: Operationnot permitted

这句话的意思是:我如果要apt-get install openssh-server openssh-client ,需要先把/usr/bin/sshd 这个文件删除掉,并且能够对这个文件有权限进行读写执行操作

问题2、root超级管理员也没有权限对sshd文件进行操作,我知道的Linux下有lsattr 和chattr这俩命令是设置特殊权限的,但是从下图可见,使用这俩系统中自带的命令对sshd文件进行操作,显示权限被拒绝了。

我又要冒内心独白了:真NM的牛逼,完全懵逼了,这俩命令都不行,linux下还有啥命令或者第三方的商业软件能够这么拽???

 解决方法:

正常的lsattr应该是这样的,有----------;

lsattr俩命令再这两张图片里面完全不一样,猜测第一张图片里面的lsattr可能被修改或者替换了。接下我从相同版本的ubuntu

18.04上拷贝了lsattr和chattr 两份文件,重命名为:lsattr_new 和 chattr_new,并上传到了第一张图片的服务器中。

使用lsattr_new和 chattr_new 对sshd 进行操作,终于生效了。

接下来重装SSH服务,执行命令:apt-get update && apt-get install openssh-server openssh-client && systemct restart sshd 。

内心独白:心累~~~~一开始怀疑,因为ssh 服务一直不断再重启,再不停分配新的job,是这个原因导致的CPU占用率这么高。唉,是我天真了!!!没啥毛用!!!看来还是因为其他的原因,第二次想放着不管了,让他自己爆了再去重启。


继续继续-------俺只是那么一想

 


三、借助第三方商用软件——Bitdefender GravityZone排查

1、这个商用病毒查杀软件支持的平台以及系统版本还是挺全的,方式1、可以使用KVM或者VMware等虚拟机进行部署,这个适用于有虚拟化环境,只需要一台虚拟机就能够部署,最低要求8G内存;方式2、可以使用SAAS的方式进行部署,但是需要联网,这个适用于部署在物理机上。我这采用的是方式2

SAAS部署Bitdefender GravityZone步骤:

步骤1:登录控制台后,到这个页面下完整安装包(不能联网的机器就不能用这个包,需要先联网安装,然后再给你生成一个内网安装包)我这的环境是可以上网的。

步骤2:下载linux安装包;上传到服务器上后解压压缩包:tar –zxvf 包名;chmod +x installer ;./installer 进行安装

步骤3:使用图片中的命令进行扫描操作

扫描到有结果会自动清理(清理:是剥离恶意代码,重组正常的文件,清理之前会拷贝一份到隔离区)

步骤4:完成后可以在控制台,网络区域,点击这个设备,弹出信息框,扫描日志

客户端扫描完成后,会出一份扫描清理的报告;

控制台,左侧,隔离区也能看到扫描结果

步骤5:到控制台,左侧,ThreatXploer可以看到更多信息


四、挖矿病毒的处理

1、、/usr/local/lib/libnss.so 文件的作用:

执行top看到CPU占用率较高,但是显示的进程关于CPU的占用率都并不高,libnss.so 这个文件会动态连接库后门来隐藏进程信息 

root@clamav:/etc# wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64

busybox-x86_64      100%[==================>] 977.65K   173KB/s   in 5.8s   

2021-07-14 19:31:15 (170KB/s) - ‘busybox-x86_64’ saved [1001112/1001112]

root@clamav:/opt# chmod +xbusybox-x86_64

root@clamav:/opt# mvbusybox-x86_64 busybox

root@clamav:/opt# mkdirruqing

root@clamav:/opt/ruqing#/opt/busybox ls -al /usr/local/bin/libnss.so

-rw-r--r--    1 root    root         12952 Jul 14 19:34libnss.so

root@clamav:/opt/ruqing# /opt/busyboxls -al l /etc/ld.so.preload

-rw-r--r--    1 root    root         12952 Jul 14 19:34libnss.so

root@ubuntu:/etc#/opt/busybox cat ld.so.preload

/usr/local/lib/libnss.so

 

2、lsattr_new 和chattr_new 文章前面有介绍过,

参数含义:

i:不允许对文件进行删除、改名,也不能添加和修改数据

a:只能在文件中増加数据,但是不能删除和修改数据

u:在删除时,其内容会被保存,以保证后期能够恢复

使用lsattr_new查看libnss.so文件的特殊权限

root@ubuntu:/usr/local/bin#lsattr_new libnss.so

-u--ia--------e---lsattr

取消设置的权限

root@ubuntu:/usr/local/bin# chattr_new -uialibnss.so

root@ubuntu:/usr/local/bin# rm –rflibnss.so

 

3、在删除libnss.so文件后,执行任何命令都一直出现如下报错,这是因为关键的挖矿进程——zfsutils-md5sum还在运行,

/etc/ld.so.prelod利用Linux的/usr/local/lib/libnss.so预加载型恶意动态链接库的后门

ERROR: ld.so: object'/usr/local/lib/libnss.so' from /etc/ld.so.preload cannot be preloaded (cannotopen shared object file): ignored.

关于ld.so.preload文件的解释可参考:

https://blog.csdn.net/aganlengzi/article/details/21824553?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

使用lsattr_new 查看ld.so.preload文件的特殊权限

root@ubuntu:/etc# lsattr_new ld.so.preload

ERROR: ld.so: object'/usr/local/lib/libnss.so' from /etc/ld.so.preload cannot be preloaded (cannotopen shared object file): ignored.

-u--ia--------e--- ld.so.preload

# 执行以上命令后,退出重新登录,否则之前的bash是注入过libcurl.so的

# 下面的命令要等所有注入过libcurl.so.2.17.0的进程都退出后才有用,否则还会被改

取消设置的权限

root@ubuntu:/etc# chattr_new ld.so.preload

ERROR: ld.so: object'/usr/local/lib/libnss.so' from /etc/ld.so.preload cannot be preloaded (cannotopen shared object file): ignored.

root@ubuntu:/etc# pwd

ERROR: ld.so: object'/usr/local/lib/libnss.so' from /etc/ld.so.preload cannot be preloaded (cannotopen shared object file): ignored.

/etc

root@ubuntu:/etc# cat ld.so.preload

ERROR: ld.so: object'/usr/local/lib/libnss.so' from /etc/ld.so.preload cannot be preloaded (cannotopen shared object file): ignored.

/usr/local/lib/libnss.so

root@ubuntu:/etc# rm –rf ld.so.preload

 

4、键盘敲得干脆非响的一步,连呼Nice!!!

删除以上两个文件后,便能看到了一直被隐藏的进程zfsutiles-md5sum,该进程使用top、ps、unhide等命令均无法查出来。

从下图能够看到进程zfsutiles-md5sum,占用服务器上所有CPU,运行累计占用的时间以及CPU 占用率。

通过上图中的zfsutils-md5sum进程的pid是2649,使用命令:cd /proc/2649 下,可看到红框中内容,exe链接的/usr/lib/zfs-linx/l2arc.mod/zfsutils-md5sum就是病毒的主程序

使用命令:kill -9 2649,杀掉这个进程,CPU占有率立马恢复正常。

相当可惜,我尽然没有记录下这个关键性的kill,就出去冒烟了!!!

5、服务器中还有一个目录/root/.debug是包含挖矿病毒程序,因为不确定里面的部分内容,所以也需要将这个 文件夹删除。


五、遗留问题

以为找到病毒程序,并kill 掉占用CPU资源的进程就结束了??只想感叹人外有人,还没完呢!!!

1、问题1:系统的CPU 使用率虽然恢复正常,但仍然遗留有病毒程序,/usr/lib/zfs-linux/l2arc.mod/路径下的zfsutils-md5sum就是主运行程序,如下图,该zfsutils-md5sum文件使用重新替换过的lsattr_new 也不能查看该文件具有的特殊权限信息,同时对该文件进行操作一直提示权限被拒绝。

2、问题2:su – 普通用户 提示权限不够,对系统中权限设置进行了检查,是正确的,新建立test用户进行测试,结果也是提示权限拒绝,这是因为将前面提到的/root/.debug文件夹权限改为:700,属主属组均为root,才导致的su – 普通用户提示权限失效;将该目录权限改为755后,su – 普通用户功能恢复正常,可是该文件是含有病毒的程序,最后也将该文件夹删除了。猜测可能是因为环境依赖问题,打算重启一次服务器,重启后却发现,服务器网卡无法配置IP地址。重启前未对网卡配置文件进行过任何修改,同时后面也排查了网卡配置文件,重试了几次后都未能将网卡绑定上IP地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容