请问在 Ubuntu 下, sh 程序占用 CPU 过高是什么原因导致的?

2018-07-17 10:34:46 +08:00
 Bearsuny

我用 top 命令打印了当前的 CPU 占用率,发现 sh 程序的 CPU 占用率过高,我把它 kill 掉以后它过一段时间又会出现。。。请问这是什么原因导致的?或者我应该怎样解决呢?希望大家不吝赐教 Ww ~

top 命令后的 CPU 占用率

5928 次点击
所在节点    Linux
55 条回复
msg7086
2018-07-18 01:35:17 +08:00
SSH 端口不改倒是没事,做好正常的防护就行了。
机器被黑了,原则上来说只有重装一条路,除非你特别有信心 root 账户没有被影响到。
xiaqi
2018-07-18 08:00:51 +08:00
很有可能我们遇到了同样的事情

看看 /etc/crontab 是否有异常的?
当时,我这里有个 xxxxxxx/gcc.sh 这样的一个任务
xiaqi
2018-07-18 08:07:03 +08:00
认真看了上面回复,好像不一样。
当时我这里是杀掉了进程,然后又会重新启动,top 看的话,进程服务字每次随机都不一致!
Bearsuny
2018-07-18 09:13:30 +08:00
@xiaqi 我看了 /etc/crontab 里面的内容:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
这部分没有什么问题的。
Bearsuny
2018-07-18 11:43:58 +08:00
大家,我执行完 strace 了。我怕后面的人看前面的东西不方便,所以就把咱们讨论的过程整理了一下,放在这个地方了
http://123.206.31.250/blog/tutorials/ntpd/
在最下面是 strace 的执行结果。
@xiaqi @msg7086 @luozic @LykanSec @liuxu @jasonyang9 @af463419014 @ilyh @nicevar @d0m2o08 @hand515 @araraloren ......以及其他没有被 @的人~谢谢大家的对我的帮助。
nicevar
2018-07-18 11:52:55 +08:00
你的服务器 ssh 开着默认端口不做任何安全处理很容易成为矿机的,改一下端口是有必要的,否则大量的暴力破解程序会一直尝试,禁用 root 登陆,并且限制尝试次数最大连接数这些
luozic
2018-07-18 12:12:37 +08:00
ntp 你公开你的地址了么?这种 ntp 服务很容易被拿来做 dos 的
Bearsuny
2018-07-18 12:20:20 +08:00
@luozic 那如果现在已经被 ddos 攻击的话,我不公开地址可以阻止它继续攻击么。。。。
luozic
2018-07-18 12:23:20 +08:00
@Bearsuny 不是你被 dos 攻击,是用你这个去 dos 攻击别人
Bearsuny
2018-07-18 12:46:04 +08:00
@luozic 哦哦~可是这台服务器我用 which ntpd 命令的时候,并没有发现 ntpd 的可执行文件。。所以我在猜这个 ntpd 进程是不是伪装的。
Bearsuny
2018-07-18 12:48:51 +08:00
@nicevar 好的好的~但是现在的话,如果已经被攻击了,是不是这些方法无法处理已经被攻击的服务器?感觉上是进行防范的操作。所以我想问一下通常是先进行修补还是先把攻击的木马或脚本清除出去?
d0m2o08
2018-07-18 12:50:12 +08:00
lsof -p {sh 的子进程 pid}
araraloren
2018-07-18 15:27:45 +08:00
看了一下我机器内的 ntpd,用户是 ntp,正常情况下不会用其他用户来运行服务的吧。。
看看 ntpd 是不是有什么漏洞被利用了什么的。。
先把 ssh 换成密钥登陆~~
liuxu
2018-07-18 15:42:17 +08:00
top -H -p 59216
然后再
sudo strace -c -p 最高 CPU 的 PID
Bearsuny
2018-08-14 16:06:46 +08:00
@af463419014 @araraloren @d0m2o08 @gaoyulong @hand515 @hcymk2 @ilyh @gaoyulong @LykanSec @liuxu @luozic @msg7086 @nicevar @raynor2011 @whatever93 @xiaqi 大家,我终于解决了。有了 root 权限以后,我直接进到有问题的进程里面,就是 `cd /proc/59216/` 然后 `ls -l exe` 定位到了可执行程序的位置。然后我看了可执行程序所在的文件夹内的文件内容后发现,这个进程确实伪装成了 ntpd 进程。然后我发现这个程序下面还有一个 cron.d 的文件,应该是设置自动启动服务的。所以我在 pxu 用户下面的自动启动服务中删掉有问题的,然后把那个可执行文件所在的文件夹整个删除掉了。就没有出现过这个问题了。在找命令的过程中,我还发现了一个博客和我的问题一致:[服务器被入侵事件小记]( http://ws.nju.edu.cn/blog/2018/01/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%A2%AB%E5%85%A5%E4%BE%B5%E4%BA%8B%E4%BB%B6%E5%B0%8F%E8%AE%B0/)。再次感谢大家 WW

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/471499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX