我的RHCE之路——RedHat 6 破解grub 恢复grub方法
今天是周日,每周这个时候都要去参加培训。每周在周六和周日两天,最可恶的是那个烦人的公交车,一到周末那人不是一般的多,而且还超慢,基本都是走1个小时的。囧!!!
————前记
今天课上,老师讲了RHEL的启动顺序和Grub的更改,加密等操作,回到家里闲来无事,自己试了试,结果一试可以,二试就出事了~~~~
grub文件位于/boot/grub/grub.conf中,这是编写启动目录、启动顺序、启动超时、grub加密设置的,具体格式如下:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 $1$BS8He0$apeFnXu/6fJ5wU5vGdtZV1
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-131.0.15.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-131.0.15.el6.i686 ro root=UUID=c0113efd-0492-41ee-b6ab-a0c5071ea769 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-131.0.15.el6.i686.img
大体上是这样的,课上老师先讲的怎么破解root密码,听完”火了“,这RHEL怎么就这么不安全呢??不费吹灰之力就能把root权限得到,这个也太不行了吧。于是就自己尝试给grub添加密码,增加系统的安全性。
首先在spalashimage下边一行加上生成的grub-md5-crypt的MD5加密值,这里的格式如下
password --md5 XXXXXXXX #这里的XXXXX代表生成密码
reboot了一下,不错,输入设定的密码,可以加载启动,于是开始尝试把这行密码放在root下边,恩,也不错,这样可以无论怎么启动都需要密码:
先总结下:
# 密码放在splashimage=(hd0,0)/grub/splash.xpm.gz 下可以对grub可以选择的菜单加密,也就是说对通过单用户启动的passwd来破解密码有一定的 防护作用
# 密码放在title下,可以实现对所有的加载程序加密,也就是无论怎么启动,从哪里启动都需要密码
于是也试试放在别的地方,别的地方也没什么好说的了,就说说我怎么出问题的地方吧,
在这一行拷贝过程中,发现 md5前边有两个”-“,一个”-“可以吗,于是试了试,这时候这一行是放在title下,可以预见,如果使用密码启动,说明两个和一个的”-“是一样的作用,但是如果不能启动,那说明我的系统也就完蛋了~~~
结果是我的系统完蛋了~~~~
在网上找了找资料,还真有破解grub密码的资料,有的版本有些过时,现在给大家写出来,有问题的时候有个参考(勿做Cracker!)
首先准备redhat 的安装光盘(我的是6.1的,直接用的镜像,vmware虚拟机),然后按F2选择从CD-ROM启动,选择倒数第二个(中间有一个boot的),直接enter就行了
这是进入的Linux rescue模式,这里可以帮你更改grub的文件,选择一个语言和键盘,这里好像有个选择恢复的文件在哪里,我选择的是cd-rom(忘了确切的位置),网络不需要设置的,系统会提示挂载,必须OK,然后进入bash界面,这里的bash功能不是很全,但还是可以使用的。
首先当然是 cd / 然后 ls一下看看有什么东西,哇塞,怎么和正常的Linux那么像啊?!不过找了一下没有boot目录,也就是说你不能在这里改了;然后网上说可以改/etc/grub.conf,但我确实没找到。
汗啊,怎么就找不到呢??? 难道我真的要重新安装了吗??于是想想,既然是挂载上来的文件,那么挂载目录里会不会有?于是
cd /mnt
ls
打开sysimage猛然发现boot目录,马上看看有没有grub.conf 没有,结果真有,用vi打开(这个bash没有vim),加上一个”-“,重启OK
总算有惊无险,不早了,也该睡了~~