一次简单的服务器 cpu 占用率高的快速排查实战

一次简单的服务器 cpu 占用率高的快速排查实战

前两天,朋友遇到一个线上 cpu 占用率很高的问题,我们俩一起快速定位并解决了这个问题。在征求朋友同意后,特发此文分享整个过程。本文以对话的形式展开,加上我的内心独白。文中对话与实际对话略有出入。

友: 在吗?

我: 怎么了兄弟?

友: 这边有一台服务器客户说 cpu 占用率高,怀疑挖矿了。svchost-high-cpu

我:wpr 抓一下吧,这是个服务进程。

旁白:一看截图是 svchost 进程,最先想到的是抓一个系统运行过程。正常情况下,svchost 是微软的服务进程。

我: 看看是什么服务。

旁白:尽量缩小范围,此时我潜意识里还以为是朋友自己的程序出了问题。

我: 先看看命令行 看看是哪类服务。

旁白:通过命令行可以看出启动的是什么类型的服务。

svchost-command-line

友:
svchost-command-line

我: svchost 应该不会放到 c:\temp下面的,应该是个病毒了。

旁白:正常的 svchost 不会在 c:\temp 下出现,而是在 C:\Windows\System32\ 下。

我: 看看这个程序有微软签名吗?

旁白:为了进一步确认,请朋友确认这个 svchost 是否有微软的签名。如果没签名,是病毒无疑了。

友:

svchost-property
svchost-property

我: 这个文件没签名的?

旁白:WC,没想到还真是病毒。

我: 应该是被人动过手脚了。

signed-svchost
signed-svchost

我:autoruns 看下启动项。

旁白:确定是病毒后,接下来的任务就是杀毒了。先查下这个病毒是怎么运行起来的吧。

从上面的截图中我看到了 svchost.exe 的父进程是 taskhost.exe。

我:schedule task 下面找到可疑的启动项,删掉。这个进程可以直接杀了,应该是中毒了。

旁白:从上面的截图中我看到了 svchost.exe 的父进程是 taskhost.exe。

友:

scheduled-tasks
scheduled-tasks

**我:**管理员权限开了吗?看上去没有可疑的。

旁白:朋友开了管理员权限,也没有发现可疑项目。

我: 看下服务里面有没有可疑的。

旁白:有可能是通过服务启动的。

友:

service-status
service-status

我: 可疑!

highlighted-service-status
highlighted-service-status

友: 这个里面也没签名。

unsigned-taskhost
unsigned-taskhost

友: 中毒了。

scan-virsus-by-360
scan-virsus-by-360

友: 谢谢!

旁白:朋友还顺便发了个红包,太客气了!

完!

posted @ 2020-08-11 13:29  BCN  阅读(1636)  评论(0编辑  收藏  举报