当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > RedHat Linux口令恢复任我行

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

Unix/Linux 中的 RedHat Linux口令恢复任我行


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 67 ::
收藏到网摘: n/a

  有许多原因可能导致用户口令的遗失,这对系统管理员而言,可能不是一个问题,只要以Root账号登录,再用Passwd命令更改用户口令就可以了。可是,如果丢失的是Root口令,这又怎么办?难道就束手无策、重装系统?这样不仅费时费力,而且还可能造成重要数据的丢失和应用程序的破坏。显然这种做法并不可取。



  其实,恢复Linux口令并不是一件很难的事情。Linux口令的恢复有2个方面: 一是给用户产生一个新的口令,使用户能够重新登录系统; 二是找出用户原来的口令,而不是以新口令代替旧口令。一般情况下,用户只希望能够再次登录进入系统即可,而不是获得原口令,也就是这里所说的第一个方面,相对而言,这方面要容易实现得多。

  Linux口令的恢复是系统维护的一种典型情况,本文中提到的一些方法从系统维护的角度出发,不仅适用于Linux口令的恢复,也适用于因为某些原因不能正常登录进系统时的维护工作,对Linux系统的管理维护有参考作用。

  本文中所有提到的恢复Linux口令的方法均在实践中测试通过,所用的Linux系统主要是RedHat Linux For x86,在实际口令恢复中,可能因Linux发行商、发行版本、处理器和硬盘等的不同而略有不同,但相差不会很大。其中一些方法也适用于其他Unix系统口令的恢复,甚至Windows等操作系统口令的恢复。

  一、口令恢复途径

  下面恢复Linux口令的途径适用于不同的情况,难易度各有不同。

  1. 紧急修复模式
  在无法启动Linux时,常常需要通过磁盘、光盘或其他方法启动Linux基本环境,进入Linux紧急修复模式。在紧急修复模式下,能够访问硬盘上的Linux系统文件,恢复系统正常,包括恢复口令等。

  2. 单用户模式
  Linux有多个运行级别,如单用户模式、无网络服务多用户模式、完全多用户模式和X11图形多用户模式等运行级别。单用户模式是指系统运行在惟一用户——Root用户模式下,进入此模式时,系统只是加载了可运行的最低软硬件配置,以Root直接进入,没有口令验证。

  在单用户模式下,可以用passwd命令来更改用户口令,也可以直接对/etc/passwd等账户口令文件进行读写,达到口令恢复的目的。

  3. 修改口令文件
  Linux口令文件有2种保存形式: 一种是把账户信息和经加密后的口令密文都保存在/etc/passwd文件中,此形式不够安全,在早期Unix中采用;另一种是把账户信息和口令密文分开存放,/etc/passwd文件用于保存账户信息,/etc/shadow文件用于保存口令密文。至于采用何种保存形式和加密算法,可以用/usr/sbin/authconfig程序来设置。

  对于没有shadow的passwd文件,只要把相应账户的口令字段删除,即可不经口令验证直接登录系统,例如某passwd文件的root账户如下:
  root:$1$dPTzzYkE$Zd3Vs6yCu
  VH8RC1gwKXX01:0:0:root:/root:/bin/bash

  将其修改为:
  root::0:0:root:/root:/bin/bash
 
  如果是有shadow的passwd文件,其口令字段以“x”字母代替,口令密文保存在Shadow文件中。可以删除passwd文件中的“x”字母,或者删除shadow文件中的口令密文,都可以使相应用户不经口令验证直接登录系统,达到口令恢复的目的。

  4. 口令还原
  有些情况下,想找出被丢失的原始口令,而不是登录系统去产生一个新的口令。但是,Linux使用的是DES(加密函数式是Crypt)或MD5(函数式是Md)加密算法,由于计算量之大,它们几乎都没有可能被逆向破解。DES口令密文是有13个ASCII字符的字符串,而MD5口令密文的启始字符总是“$1$”。

  虽然很难逆向破解,但要通过口令密文找出原始口令也不是不可能的,从一个字典或一些字符的排列组合中提取字符串,提取出来的字符串用同样的加密算法加密,将产生的密文与口令密文比较,如果一致则表明该字符串即为原始口令,从而达到口令还原的目的。如果口令很复杂,使用此种方法也是很难找出原始口令的,但用户对自己口令的长度、采用的字符等会有大致的印象,这使得成功的可能性会更大。

  破解Linux口令的工具有很多,如John the Ripper、Crack by Alex Muffett和Cracker Jack等等,其中John the Ripper的功能最为强大,速度也最快。

  5. 系统攻击破解
  如果能够关闭电源重新启动系统,那么很容易恢复口令,但有时Linux系统上运行着非常重要的服务,不能直接关闭电源,否则会对系统和数据产生破坏。

  像这种在系统运行的情况下获得系统口令,往往是比较困难的,但由于系统管理员对操作系统和应用程序的版本、配置等情况有着全面的了解,加上没有防火墙和入侵检测系统等的防护,那么发现和利用系统漏洞的机会还是不少的,口令恢复的成功机会还是有的。
 
  这方面涉及的内容太复杂,在此就不多做介绍了。如果确有这方面的需求,最好由专业人士来帮忙,以免破坏系统和数据。

  二、如何进入紧急修复模式

  由于软