CentOS密码破解与防破解
背景介绍
CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux(RHEL)的开源操作系统,广泛应用于服务器环境,管理员有时会忘记root密码,导致无法正常登录系统,本文将详细介绍如何在CentOS系统中破解和防止root密码被破解的方法。
一、CentOS密码破解方法
方法一:使用单用户模式
步骤归纳:
进入内核选择界面:启动服务器,进入内核选择界面按e
进入内核参数编辑界面。
修改内核参数:找到Linux16
这一段,在该段尾添加init=/bin/sh
,如果这一段中有LANG=zh_CN.UTF8
要改为LANG=en_US.UTF8
,然后按CTRL+X
执行进入单用户模式。
修改密码:进入单用户模式后查看到系统信息,看到当前系统只读挂载在/
下,需要修改一下权限不然无法修改密码,通过命令mount o rw,remount /
以读写方式重新挂载系统文件,然后这就可以passwd
修改密码了,修改完成后,touch /.autorelabel
创建标签文件,让selinux允许我们的修改,然后重启系统结束。
图文说明:
kernel选择界面:启动服务器,进入内核选择界面按 e 进入内核参数编辑界面。 内核参数修改:按⬇找到Linux16 这一段,在该段尾添加init=/bin/sh ,如果这一段中有LANG=zh_CN.UTF8要改为LANG=en_US.UTF8,然后按CTRL+X执行进入单用户模式。 修改密码:进入单用户模式后查看到系统信息,看到当前系统只读挂载在 / 下,需要修改一下权限不然无法修改密码,通过命令mount o rw,remount / 以读写方式重新挂载系统文件,然后这就可以passwd修改密码了,修改完成后,touch /.autorelabel创建标签文件,让selinux允许我们的修改,然后重启系统结束。
示例操作:
[root@localhost ~]# mount o rw,remount / [root@localhost ~]# passwd root New password: ****** Retype new password: ****** passwd: all authentication tokens updated successfully. [root@localhost ~]# touch /.autorelabel [root@localhost ~]# reboot
方法二:使用rd.break参数
步骤归纳:
进入内核选择界面:启动服务器,进入内核选择界面按e
进入内核参数编辑界面。
修改内核参数:找到Linux16
这一段,将ro
权限改为rw
,在该段尾添加init=/bin/sh
,然后按CTRL+X
执行进入单用户模式。
修改密码:进入单用户模式后查看到系统信息,看到当前系统挂载在/sysroot
下,权限为可读可写,直接就可以passwd
修改密码了,修改完成后,touch /.autorelabel
创建标签文件,让selinux允许我们的修改,然后重启系统结束。
图文说明:
kernel选择界面:启动服务器,进入内核选择界面按 e 进入内核参数编辑界面。 内核参数修改:按⬇找到Linux16 这一段,将ro权限改为rw,在该段尾添加init=/bin/sh ,然后按CTRL+X执行进入单用户模式。 修改密码:这里与第一个方法稍微有些不同,这里的系统是挂载在 /sysroot 下的,权限也是只读,所以同样需要修改权限,通过命令 mount o rw,remount /sysroot ,挂载目录为 /sysroot,(同方法一中,我们也可以在修改内核参数时将ro权限改为rw,然后就不用挂载这一步操作),然后我们还需要修改root到系统挂载的根下,然后就可以修改密码了,这里修改密码会出现方块是因为系统不能显示中文,熟练改密码操作的话这里也不影响,最后需要两次退出。
示例操作:
[root@localhost ~]# mount o rw,remount /sysroot [root@localhost ~]# chroot /sysroot [root@localhost ~]# passwd root New password: ****** Retype new password: ****** passwd: all authentication tokens updated successfully. [root@localhost ~]# touch /sysroot/.autorelabel [root@localhost ~]# exit [root@localhost ~]# exit [root@localhost ~]# reboot
二、CentOS密码防破解方法
为了防止他人通过上述方法破解CentOS系统的root密码,可以对GRUB进行加密,以下是具体的步骤:
GRUB加密步骤
步骤归纳:
编辑GRUB配置文件:正常进入系统,然后修改/etc/grub.d/10_linux
文件。
添加用户信息:在最后添加以下内容:
set superusers="zhangsan" password zhangsan 123456
重新生成GRUB文件:保存退出后,执行grub2mkconfig output=/boot/grub2/grub.cfg
重新生成GRUB文件。
详细说明:
编辑GRUB配置文件:使用vim或其他文本编辑器打开/etc/grub.d/10_linux
文件。
添加用户信息:在文件末尾添加如下内容,其中zhangsan
为用户名,123456
为密码。
set superusers="zhangsan" password zhangsan 123456
重新生成GRUB文件:保存并退出编辑器后,执行以下命令重新生成GRUB配置文件。
grub2mkconfig output=/boot/grub2/grub.cfg
示例操作:
[root@localhost ~]# vim /etc/grub.d/10_linux ... set superusers="zhangsan" password zhangsan 123456 ... [root@localhost ~]# grub2mkconfig output=/boot/grub2/grub.cfg
GRUB密码加密步骤
为了进一步增强安全性,还可以对GRUB密码进行加密,以下是具体步骤:
步骤归纳:
生成加密密码:使用grub2mkpasswdpbkdf2
命令生成加密密码。
编辑GRUB配置文件:将生成的加密密码添加到/etc/grub.d/10_linux
文件中。
重新生成GRUB文件:保存并退出编辑器后,执行grub2mkconfig output=/boot/grub2/grub.cfg
重新生成GRUB配置文件。
详细说明:
生成加密密码:使用grub2mkpasswdpbkdf2
命令生成加密密码,要为用户名zhangsan
生成加密密码,可以使用以下命令:
grub2mkpasswdpbkdf2 输入口令: #要生成的密码 Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.FF342FE130A13EFF...
编辑GRUB配置文件:将生成的加密密码添加到/etc/grub.d/10_linux
文件中。
set superusers="zhangsan" password_pbkdf2 zhangsan grub.pbkdf2.sha512.10000.FF342FE130A13EFF...粘贴加密密码
重新生成GRUB文件:保存并退出编辑器后,执行以下命令重新生成GRUB配置文件。
grub2mkconfig output=/boot/grub2/grub.cfg
示例操作:
[root@localhost ~]# grub2mkpasswdpbkdf2 输入口令: #要生成的密码 Reenter password: PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.FF342FE130A13EFF... [root@localhost ~]# vim /etc/grub.d/10_linux ... set superusers="zhangsan" password_pbkdf2 zhangsan grub.pbkdf2.sha512.10000.FF342FE130A13EFF...粘贴加密密码 ... [root@localhost ~]# grub2mkconfig output=/boot/grub2/grub.cfg
三、破解GRUB加密方法
如果设置了GRUB加密但忘记了密码,可以通过以下步骤进行破解:
进入BIOS设置
进入BIOS:重启计算机,在启动时按下相应的键(通常是F2
,Del
,Esc
等)进入BIOS设置。
选择CD启动:在BIOS中找到Boot
选项卡,选择CDROM
作为第一启动项,保存并退出。
进入救援模式
启动救援模式:插入包含CentOS救援模式的光盘或U盘,重启计算机,选择从光盘或U盘启动。
选择救援模式:在启动菜单中选择Troubleshooting
,然后选择Rescue a CentOS system
。
删除GRUB密码:在救援模式下,挂载系统分区并删除或编辑GRUB密码文件,可以使用以下命令删除/boot/grub2/user.cfg
文件。
mount /dev/sda1 /mnt vi /mnt/boot/grub2/user.cfg #删除或注释掉password相关行 umount /mnt reboot
四、相关FAQs
Q1: 如果忘记了CentOS的root密码怎么办?
A1: 可以通过以下步骤重置root密码:
1、重启系统并在内核选择界面按e
进入编辑模式。
2、找到Linux16
这一段,在该段尾添加init=/bin/sh
。
3、按CTRL+X
进入单用户模式。
4、使用命令mount o rw,remount /
重新挂载根目录为读写模式。
5、使用命令passwd
修改root密码。
6、创建标签文件touch /.autorelabel
并重启系统。
Q2: 如果设置了GRUB加密但忘记了密码怎么办?
A2: 可以通过以下步骤破解GRUB加密:
1、重启计算机并进入BIOS设置,选择从CDROM启动。
2、使用包含CentOS救援模式的光盘或U盘启动系统。
3、在救援模式下,挂载系统分区并删除或编辑GRUB密码文件(如/boot/grub2/user.cfg
)。
4、卸载分区并重启系统。