我用 top 命令打印了当前的 CPU 占用率,发现 sh 程序的 CPU 占用率过高,我把它 kill 掉以后它过一段时间又会出现。。。请问这是什么原因导致的?或者我应该怎样解决呢?希望大家不吝赐教 Ww ~
1
hcymk2 2018-07-17 10:50:30 +08:00
pgrep -a sh
|
2
Bearsuny OP |
3
gaoyulong 2018-07-17 11:10:16 +08:00
被人攻击啦吧
|
5
araraloren 2018-07-17 11:10:48 +08:00
pxu 是什么用户
|
6
Bearsuny OP @araraloren pxu 是正常用户
|
7
raynor2011 2018-07-17 11:40:45 +08:00
top 切换下模式, 查看具体的指令
|
8
hand515 2018-07-17 11:46:31 +08:00
ntpd 不是用来对时的吗,怎么这么耗 CPU ?
|
9
d0m2o08 2018-07-17 13:42:34 +08:00 via iPhone
变成矿机了吧,top 按 c 看看 sh 后面的命令是啥 或者 netstat 看看有没有可疑的网络连接
|
10
whatever93 2018-07-17 13:50:34 +08:00
top -c
|
11
Bearsuny OP @d0m2o08 我按了 c 以后的结果是这样的 http://123.206.31.250/problem2.png ,应该是 ntpd 消耗 CPU 过高。但是我网上查找的时候也是一头雾水的样子。。。。
|
12
ilyh 2018-07-17 16:13:51 +08:00
ntp 反射攻击了解一下
|
13
LykanSec 2018-07-17 16:15:16 +08:00
看看有几个 ntpd 进程,正常情况下只有一个,有多的应该就是伪装成 ntpd 的挖矿马,去看看 ntpd 的父进程,看看文件具体位置
|
14
Bearsuny OP @LykanSec 我使用 ps wafux 去查看了一下,发现 ntpd 就这一个。。。图的话是 http://123.206.31.250/problem3.png,
|
15
Bearsuny OP @LykanSec 哇。。似乎不是这样的。。。我用 ps -ef|grep ntpd 和 ps -aux 去查了一下。。发现了一点不一样的地方 WW 查询的结果是这样的 http://123.206.31.250/problem4.png,
|
16
jasonyang9 2018-07-17 16:35:56 +08:00
```
# pstree -p ``` |
17
nicevar 2018-07-17 16:38:10 +08:00
第一反应就是在挖矿
|
18
Bearsuny OP @jasonyang9 http://123.206.31.250/log1.txt ,这个是打印出来的信息,ntpd 的进程号是 4574 和 59216
|
19
af463419014 2018-07-17 16:49:26 +08:00
恭喜你成了一个肉鸡
|
20
af463419014 2018-07-17 16:52:50 +08:00
你的服务器 ssh 端口是不是没有修改,仍然用的 22
ssh 是不是可以用 root 或者 admin 之类的常见用户名登录 密码是不是没有太复杂 |
21
Bearsuny OP @af463419014 唔。。那这样的话怎样才能把它从这台服务器中扔出去呢?
|
22
jasonyang9 2018-07-17 17:01:49 +08:00
这程序的 command line 是`ntpd`,但 command name 是`sh`,感觉不是善类
|
23
af463419014 2018-07-17 17:03:28 +08:00
@Bearsuny 也不一定是被攻击啦,再仔细排查下吧
pxu 是你自己创建的用户吗,自己的用户应该没问题,如果是别人创建的就有问题了 |
25
Bearsuny OP @af463419014 是我自己创建的用户的~谢谢你啦~我再找找哪个地方有问题。。不过现在这个服务器的 SSH 端口确实是 22。。。那如果我要改的话,是不是我改完了然后再把这个进程杀掉。这样他就不会很快的找到我了~
|
26
Bearsuny OP @LykanSec 您看我这样操作去找父进程和运行文件对不对。。http://123.206.31.250/problem5.png 。是不是它伪装起来了。。。T T
|
28
jasonyang9 2018-07-17 17:10:36 +08:00
这 2 个进程每个开了 15 个线程很整齐的在干活。。。
|
29
Bearsuny OP @jasonyang9 恩恩。。我想找它的父进程和运行文件也找不到。。图是在上面的回复中 problem5.png 里面。
|
30
liuxu 2018-07-17 17:11:56 +08:00
strace -p 59216 看看
|
31
Bearsuny OP @jasonyang9 而且那个 59216 进程它运行的时间是 126135:18 这么多。。那个 4574 的进程运行时间就只有 29:04 这些。。。
|
32
Bearsuny OP @liuxu 我输入了以后它打印的信息是这样的
strace: attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf |
33
Bearsuny OP @jasonyang9 我用 who 命令查看了一下当前的用户有哪些。。然后发现 pxu 竟然有两个。。。
pxu :0 2018-05-21 09:13 (:0) pxu pts/0 2018-05-21 09:32 (:0) ffeng pts/43 2018-07-17 16:07 (116.76.254.5) |
34
jasonyang9 2018-07-17 17:24:39 +08:00
|
35
Bearsuny OP @jasonyang9 哦哦~~谢谢你~~稍稍放心了一下。。。我还以为这个坏东西在服务器上自己建立了一个账户。。
|
36
jasonyang9 2018-07-17 17:38:43 +08:00
|
38
Bearsuny OP 不然明天我再向你们请教吧~我现在还不是 root 用户。。T T 掌管 root 用户的人回家了。。估计是不会把 sudo 用户的权限给我的。。我明天问问他看看执行结果如何~今天真是谢谢大家了 @jasonyang9 @liuxu @LykanSec ...大家是不是也到了吃饭的时间了 WW ~快去吃饭吧~
|
39
luozic 2018-07-17 18:18:26 +08:00
这种一般不是要禁用 root 远程登录,并且修改默认的 22ssh 端口么? 后面服务器初始化配置的时候就统一安全加固一下
|
41
msg7086 2018-07-18 01:35:17 +08:00
SSH 端口不改倒是没事,做好正常的防护就行了。
机器被黑了,原则上来说只有重装一条路,除非你特别有信心 root 账户没有被影响到。 |
42
xiaqi 2018-07-18 08:00:51 +08:00 via Android
|
43
xiaqi 2018-07-18 08:07:03 +08:00 via Android
认真看了上面回复,好像不一样。
当时我这里是杀掉了进程,然后又会重新启动,top 看的话,进程服务字每次随机都不一致! |
44
Bearsuny OP @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 ) 这部分没有什么问题的。 |
45
Bearsuny OP 大家,我执行完 strace 了。我怕后面的人看前面的东西不方便,所以就把咱们讨论的过程整理了一下,放在这个地方了
http://123.206.31.250/blog/tutorials/ntpd/ 在最下面是 strace 的执行结果。 @xiaqi @msg7086 @luozic @LykanSec @liuxu @jasonyang9 @af463419014 @ilyh @nicevar @d0m2o08 @hand515 @araraloren ......以及其他没有被 @的人~谢谢大家的对我的帮助。 |
46
nicevar 2018-07-18 11:52:55 +08:00
你的服务器 ssh 开着默认端口不做任何安全处理很容易成为矿机的,改一下端口是有必要的,否则大量的暴力破解程序会一直尝试,禁用 root 登陆,并且限制尝试次数最大连接数这些
|
47
luozic 2018-07-18 12:12:37 +08:00 via iPhone
ntp 你公开你的地址了么?这种 ntp 服务很容易被拿来做 dos 的
|
50
Bearsuny OP @luozic 哦哦~可是这台服务器我用 which ntpd 命令的时候,并没有发现 ntpd 的可执行文件。。所以我在猜这个 ntpd 进程是不是伪装的。
|
51
Bearsuny OP @nicevar 好的好的~但是现在的话,如果已经被攻击了,是不是这些方法无法处理已经被攻击的服务器?感觉上是进行防范的操作。所以我想问一下通常是先进行修补还是先把攻击的木马或脚本清除出去?
|
52
d0m2o08 2018-07-18 12:50:12 +08:00
lsof -p {sh 的子进程 pid}
|
53
araraloren 2018-07-18 15:27:45 +08:00
看了一下我机器内的 ntpd,用户是 ntp,正常情况下不会用其他用户来运行服务的吧。。
看看 ntpd 是不是有什么漏洞被利用了什么的。。 先把 ssh 换成密钥登陆~~ |
54
liuxu 2018-07-18 15:42:17 +08:00
top -H -p 59216
然后再 sudo strace -c -p 最高 CPU 的 PID |
55
Bearsuny OP @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
|