Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
Bearsuny
V2EX  ›  Linux

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

  •  
  •   Bearsuny · Jul 17, 2018 · 7280 views
    This topic created in 3030 days ago, the information mentioned may be changed or developed.

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

    top 命令后的 CPU 占用率

    55 replies  •  2018-08-14 16:06:46 +08:00
    hcymk2
    hcymk2
    Jul 17, 2018
    1
    pgrep -a sh
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    2
    @hcymk2 这个是我执行完命令以后,列出来的东西。

    [图]( http://123.206.31.250/problem1.png)
    gaoyulong
    gaoyulong
    Jul 17, 2018
    3
    被人攻击啦吧
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    4
    @gaoyulong 我也觉得是。。但是我不知道该如何处理。。。T T 请问您知道要怎样解决么?
    araraloren
    araraloren
    Jul 17, 2018
    5
    pxu 是什么用户
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    6
    @araraloren pxu 是正常用户
    raynor2011
    raynor2011
    Jul 17, 2018
    7
    top 切换下模式, 查看具体的指令
    Finest
    Finest
    Jul 17, 2018
    8
    ntpd 不是用来对时的吗,怎么这么耗 CPU ?
    d0m2o08
    d0m2o08
    Jul 17, 2018 via iPhone
    9
    变成矿机了吧,top 按 c 看看 sh 后面的命令是啥 或者 netstat 看看有没有可疑的网络连接
    whatever93
    whatever93
    Jul 17, 2018
    10
    top -c
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    11
    @d0m2o08 我按了 c 以后的结果是这样的 http://123.206.31.250/problem2.png ,应该是 ntpd 消耗 CPU 过高。但是我网上查找的时候也是一头雾水的样子。。。。
    ilyh
    ilyh
    Jul 17, 2018
    12
    ntp 反射攻击了解一下
    LykanSec
    LykanSec
    Jul 17, 2018
    13
    看看有几个 ntpd 进程,正常情况下只有一个,有多的应该就是伪装成 ntpd 的挖矿马,去看看 ntpd 的父进程,看看文件具体位置
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    14
    @LykanSec 我使用 ps wafux 去查看了一下,发现 ntpd 就这一个。。。图的话是 http://123.206.31.250/problem3.png,
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    15
    @LykanSec 哇。。似乎不是这样的。。。我用 ps -ef|grep ntpd 和 ps -aux 去查了一下。。发现了一点不一样的地方 WW 查询的结果是这样的 http://123.206.31.250/problem4.png,
    jasonyang9
    jasonyang9
    Jul 17, 2018
    16
    ```
    # pstree -p
    ```
    nicevar
    nicevar
    Jul 17, 2018
    17
    第一反应就是在挖矿
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    18
    @jasonyang9 http://123.206.31.250/log1.txt ,这个是打印出来的信息,ntpd 的进程号是 4574 和 59216
    af463419014
    af463419014
    Jul 17, 2018
    19
    恭喜你成了一个肉鸡
    af463419014
    af463419014
    Jul 17, 2018
    20
    你的服务器 ssh 端口是不是没有修改,仍然用的 22
    ssh 是不是可以用 root 或者 admin 之类的常见用户名登录
    密码是不是没有太复杂
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    21
    @af463419014 唔。。那这样的话怎样才能把它从这台服务器中扔出去呢?
    jasonyang9
    jasonyang9
    Jul 17, 2018
    22
    这程序的 command line 是`ntpd`,但 command name 是`sh`,感觉不是善类
    af463419014
    af463419014
    Jul 17, 2018
    23
    @Bearsuny 也不一定是被攻击啦,再仔细排查下吧
    pxu 是你自己创建的用户吗,自己的用户应该没问题,如果是别人创建的就有问题了
    LykanSec
    LykanSec
    Jul 17, 2018
    24
    @Bearsuny ntpd 的默认用户应该是 root 啊,看看这两个进程 id 是不是父进程,运行的文件在哪里
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    25
    @af463419014 是我自己创建的用户的~谢谢你啦~我再找找哪个地方有问题。。不过现在这个服务器的 SSH 端口确实是 22。。。那如果我要改的话,是不是我改完了然后再把这个进程杀掉。这样他就不会很快的找到我了~
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    26
    @LykanSec 您看我这样操作去找父进程和运行文件对不对。。http://123.206.31.250/problem5.png 。是不是它伪装起来了。。。T T
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    27
    @LykanSec 图在这个地方 http://123.206.31.250/problem5.png
    jasonyang9
    jasonyang9
    Jul 17, 2018
    28
    这 2 个进程每个开了 15 个线程很整齐的在干活。。。
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    29
    @jasonyang9 恩恩。。我想找它的父进程和运行文件也找不到。。图是在上面的回复中 problem5.png 里面。
    liuxu
    liuxu
    Jul 17, 2018
    30
    strace -p 59216 看看
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    31
    @jasonyang9 而且那个 59216 进程它运行的时间是 126135:18 这么多。。那个 4574 的进程运行时间就只有 29:04 这些。。。
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    32
    @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
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    33
    @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)
    jasonyang9
    jasonyang9
    Jul 17, 2018
    34
    @Bearsuny #33

    应该没问题

    :0 是在本地登录的
    pts/n 是从 SSH 登录的

    都用了 pxu 帐号
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    35
    @jasonyang9 哦哦~~谢谢你~~稍稍放心了一下。。。我还以为这个坏东西在服务器上自己建立了一个账户。。
    jasonyang9
    jasonyang9
    Jul 17, 2018
    36
    @Bearsuny #32 提示用 root 身份跑:

    ```
    sudo strace -p 59216
    ```
    liuxu
    liuxu
    Jul 17, 2018
    37
    @Bearsuny 用 root 权限跑
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    38
    不然明天我再向你们请教吧~我现在还不是 root 用户。。T T 掌管 root 用户的人回家了。。估计是不会把 sudo 用户的权限给我的。。我明天问问他看看执行结果如何~今天真是谢谢大家了 @jasonyang9 @liuxu @LykanSec ...大家是不是也到了吃饭的时间了 WW ~快去吃饭吧~
    luozic
    luozic
    Jul 17, 2018
    39
    这种一般不是要禁用 root 远程登录,并且修改默认的 22ssh 端口么? 后面服务器初始化配置的时候就统一安全加固一下
    Bearsuny
    Bearsuny
    OP
    Jul 17, 2018
    40
    @luozic 好的好的~明天我尝试修改 ssh 端口~谢谢您 WW
    msg7086
    msg7086
    Jul 18, 2018
    41
    SSH 端口不改倒是没事,做好正常的防护就行了。
    机器被黑了,原则上来说只有重装一条路,除非你特别有信心 root 账户没有被影响到。
    xiaqi
    xiaqi
    Jul 18, 2018 via Android
    42
    很有可能我们遇到了同样的事情

    看看 /etc/crontab 是否有异常的?
    当时,我这里有个 xxxxxxx/gcc.sh 这样的一个任务
    xiaqi
    xiaqi
    Jul 18, 2018 via Android
    43
    认真看了上面回复,好像不一样。
    当时我这里是杀掉了进程,然后又会重新启动,top 看的话,进程服务字每次随机都不一致!
    Bearsuny
    Bearsuny
    OP
    Jul 18, 2018
    44
    @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
    Bearsuny
    OP
    Jul 18, 2018
    45
    大家,我执行完 strace 了。我怕后面的人看前面的东西不方便,所以就把咱们讨论的过程整理了一下,放在这个地方了
    http://123.206.31.250/blog/tutorials/ntpd/
    在最下面是 strace 的执行结果。
    @xiaqi @msg7086 @luozic @LykanSec @liuxu @jasonyang9 @af463419014 @ilyh @nicevar @d0m2o08 @hand515 @araraloren ......以及其他没有被 @的人~谢谢大家的对我的帮助。
    nicevar
    nicevar
    Jul 18, 2018
    46
    你的服务器 ssh 开着默认端口不做任何安全处理很容易成为矿机的,改一下端口是有必要的,否则大量的暴力破解程序会一直尝试,禁用 root 登陆,并且限制尝试次数最大连接数这些
    luozic
    luozic
    Jul 18, 2018 via iPhone
    47
    ntp 你公开你的地址了么?这种 ntp 服务很容易被拿来做 dos 的
    Bearsuny
    Bearsuny
    OP
    Jul 18, 2018
    48
    @luozic 那如果现在已经被 ddos 攻击的话,我不公开地址可以阻止它继续攻击么。。。。
    luozic
    luozic
    Jul 18, 2018 via iPhone
    49
    @Bearsuny 不是你被 dos 攻击,是用你这个去 dos 攻击别人
    Bearsuny
    Bearsuny
    OP
    Jul 18, 2018
    50
    @luozic 哦哦~可是这台服务器我用 which ntpd 命令的时候,并没有发现 ntpd 的可执行文件。。所以我在猜这个 ntpd 进程是不是伪装的。
    Bearsuny
    Bearsuny
    OP
    Jul 18, 2018
    51
    @nicevar 好的好的~但是现在的话,如果已经被攻击了,是不是这些方法无法处理已经被攻击的服务器?感觉上是进行防范的操作。所以我想问一下通常是先进行修补还是先把攻击的木马或脚本清除出去?
    d0m2o08
    d0m2o08
    Jul 18, 2018
    52
    lsof -p {sh 的子进程 pid}
    araraloren
    araraloren
    Jul 18, 2018
    53
    看了一下我机器内的 ntpd,用户是 ntp,正常情况下不会用其他用户来运行服务的吧。。
    看看 ntpd 是不是有什么漏洞被利用了什么的。。
    先把 ssh 换成密钥登陆~~
    liuxu
    liuxu
    Jul 18, 2018
    54
    top -H -p 59216
    然后再
    sudo strace -c -p 最高 CPU 的 PID
    Bearsuny
    Bearsuny
    OP
    Aug 14, 2018❤️1
    55
    @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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1361 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 20:11 · PVG 04:11 · LAX 12:11 · JFK 15:11
    ♥ Do have faith in what you're doing.