Centos8 爆破、后门、命令替换事例

一、环境配置

  1. 在百度网盘下载Centos8应急响应靶机并在vm打开。首先获取靶机的所有权

    image-20240127133316802

  2. 之后运行靶机并选择已经复制靶机,之后选择放弃,这是因为没有对应的iso文件造成的。

    image-20240127133448284

  3. 之后重新运行靶机即可。

    image-20240127133553758

  4. 以zyr 用户的权限进入,密码123456

二、入侵排查

1、网络排查

当我们确定该机器已经被入侵之后,通常先看一下网络连接情况,切断机器与外界的网络连接,防止危害继续扩大。

我们在centos8左上角的活动调用终端,输入以下命令进行查看:

1
netstat -antlp

image-20240127134155940

目前因为只有这台受害靶机,没有入侵靶机,所以这里并不存在靶机与攻击机建立的端口连接。如果有连接的话我们可以通过 kill 命令切断端口连接,还可以用 lsof -p <PID> 查看到端口连接的进程应用程序,对恶意程序进行取证。

2、后门用户排查

先通过who命令查看一下当前靶机上登陆的用户image-20240127135323093

只有tty 本地登陆的的zyr 用户,确认并无他人在登陆该机器。

简单的看一下 /etc/passwd 文件

1
2
cat /etc/passwd
awk -F: '$3==0 {print$1}' /etc/passwd #查看uid权限为0的特权用户

image-20240127135642183

发现除了root之外还有一个 wxiaoge 的特权用户,我们再看一下/etc/shadow文件中能正常登陆的用户。

1
awk '/\$1|\$6/{print $1}' /etc/shadow

image-20240127140522749

可以看到wxiaoge 这个用户也是可以正常登录的。一般这个时候需要与客户进行沟通,确认wxiaoge 是恶意用户。

确认wxiaoge 是恶意用户之后,我们对该用户进行封禁,使用如下命令:

1
sudo usermod -L wxiaoge && sudo usermod -s /sbin/nologin username

image-20240127141234111

也可以对该用户进行删除,直接编辑 passwd 和 shadow文件即可。

3、计划任务排查

少了历史命令排查,但是我们通过查看history和普通用户家目录下的 .bash_history可以发现,历史命令都已经被清空,同时wxiaoge 并无家目录,只能作罢。

先查看一下计划任务列表:

1
crontab -l

image-20240127142109610

可以看到普通用户zyr 并没有计划任务,而root 用户存在一个每分每秒都会去运行的 .elf 文件,这个文件的名称也非常醒目,大概率是恶意文件。

image-20240127142313290

先简单的看一下该文件的信息,是一个755的可执行文件。

image-20240127143425348

可以将此文件放在沙箱中进行排查,确认是恶意文件。保留取证,后期可以在安全的环境下试着运行此恶意文件,观察网络环境等进行溯源。

我们使用crontab -e对计划任务进行编辑,或者使用crontab -r删除所有用户计划任务

1
crontab -e

删除恶意的计划任务。

image-20240127143118099

4、命令替换排查

我们可以先看一下环境变量的路径都有哪些

image-20240127143645212

然后采用rpm 命令逐个排查

1
2
3
4
5
rpm -Vf /sbin/*

#S 关键字代表文件大小发生了变化
#5 关键字代表文件的 md5 值发生了变化
#T 代表文件时间发生了变化

image-20240127144154476

image-20240127144219519

一些其他文件改变的话是无可厚非的,主要查看一些关键性命令的改变。

ps命令疑似被改变。试着查看一下ps命令的内容:image-20240127144528505

只有一行命令,还是很好解释的,去执行了一个 .elf 文件 和 一个隐藏文件下的ps 命令并进行了过滤。

将这两个文件放在沙箱中进行排查,.elf 是后门文件,进行取证后期溯源,而ps 是无毒文件。

试着执行该隐藏的ps文件。是被隐藏起来的正常的ps文件image-20240127145306386

将其恢复原位,并将恶意的ps杀掉

image-20240127145456777

5、总结

1、后门文件 :/root/shell.elf 、/centos_core.elf
2、后门账户:wxiaoge
3、找到恶意定时任务
4、ps命令被替留ps命令后门

三、溯源加固

1、查看入侵途径

看一下开放端口

image-20240127151217562

此时该机器处于关闭状态,并没有有用的端口开放。检查用户登陆日志/var/log/secure

image-20240127152050666

依据该文件大小,是存在大量日志的。

1
cat /var/log/secure | grep password	#简单过滤查看一下

image-20240127152226439

存在成功日志,指向 192.168.226.1 这个IP,而我本机的IP是192.168.122.1

对登陆成功的IP进行排序统计

1
cat secure | grep "Accepted password for root" | awk '{print $11}' | sort | uniq -c | sort -nr

image-20240127152726462

该IP有5次成功登陆次数,878 次失败登陆次数。

再查看一下爆破的时间:

1
grep "Accepted password for root" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

image-20240127153202604

image-20240127153223482

可以看到 192.168.226.1 这个IP从21:51:32 开始爆破到21:58:31 一直处于爆破状态,21:57:56爆破成功。

2、攻击路径还原

1、192.168.226.1 在21:57:56爆破成功,22:00:27登陆靶机,之后根据入侵排查出来的东西进行还原。

2、shell.elf 在00:51:12的时候进行了投放

image-20240127153702528

3、计划任务在 01:05:53 的时候建立

image-20240127154108391

4、centos_core.elf 在00:57:03 的时候投放

image-20240127154226236

5、ps文件在 00:59:45 进行了改动

image-20240127154418317

6、后门用户wxiaoge 在22:01:18的时候创建

image-20240127154614968

攻击流程总结:192.168.226.1 在1月13日 21:57:56通过ssh爆破成功,22:00:27登陆靶机,22:01:18创建后门用户wxiaoge、00:51:12 上传shell.elf、00:57:03上传centos_core.elf、00:59:45 上传恶意ps文件并改动正确的ps文件、01:05:53 建立计划任务。

3、系统加固

加固的地方有很多,在这里只列出部分用户加固。

1、修改root用户密码

1
sudo passwd

image-20240127162800354

2、删除不必要的用户

1
sudo userdel -r <用户名>

3、检测空口令用户

1
2
3
awk -F: '$2=="!!" {print $1}' /etc/shadow
然后对比/etc/passwd 的可登录用户
passwd <用户名> #给用户修改密码

4、口令配置文件

/etc/pam.d/system-auth

1
2
3
4
5
6
password requisite pam_cracklib.so retry=3 difok=3 minlen=10	#文件修改最小长度

auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 #错误次数超过3次进行锁定。要写在auth 的最上面

authconfig --passminlen=8 --passminclass=3 --update #passminlen密码长度,passminclass密码种类:数字,字母,特殊字符三项
...