当忘记操作系统的密码或者攻击某台主机时,需要知道该系统中某个用户的用户名和密码。本节将分别介绍破解Windows和Linux用户密码。

8.6.1 破解Windows用户密码

Windows系统的用户名和密码保存在SAM(安全账号管理器)文件中。在基于NT内核的Windows系统中,包括Windows 2000及后续版本,这个文件保存在“C:\Windows\System32\Config”目录下。出于安全原因,微软特定添加了一些额外的安全措施将该文件保护了起来。首先,操作系统启动之后,SAM文件将同时被锁定。这意味着操作系统运行之时,用户无法打开或复制SAM文件。除了锁定,整个SAM文件还经过加密,且不可见。

幸运的是,现在有办法绕过这些限制。在远程计算机上,只要目标处于运行状态,就可以利用Meterpreter和SAM Juicer获取计算机上的散列文件。获得访问系统的物理权限之后,用户就可以在其上启动其他的操作系统,如在USB或DVD-ROM设备上的Kali Linux。启动目标计算机进入到其他的操作系统之后,用户可以使用Kali中的John the Ripper工具来破解该Windows用户密码。

使用John the Ripper工具破解Windows用户密码。具体操作步骤如下所示。

(1)检查当前系统中的硬盘驱动。执行命令如下所示:

输出的信息表示当前系统中有一块磁盘,并只有一个分区。该文件系统类型是NTFS,也是Windows系统的所存放的磁盘。

(2)挂载硬盘驱动。执行命令如下所示:

root@kali:~# mkdir /sda1        #创建挂载点
root@kali:~# mount /dev/sda1 /sda1/ #挂载/dev/sda1分区

执行以上命令后,没有任何输出信息。

(3)切换目录,进入到Windows SAM文件的位置。执行命令如下所示:

root@kali:~# cd /sda1/WINDOWS/system32/config/

在该目录中,可以看到SAM文件。

(4)使用SamDump2提取SAM文件。执行命令如下所示:

root@kali:/sda1/WINDOWS/system32/config# samdump2 SAM system > /root/hash.txt
samdump2 1.1.1 by Objectif Securite
http://www.objectif-securite.ch
original author: ncuomo@studenti.unina.it
Root Key : SAM

从输出信息中可以看到提取了SAM文件。将该文件的内容重定向到了/root/hash.txt文件中。

(5)运行john命令,实现密码攻击。执行命令如下所示:

root@kali:/sda1/WINDOWS/system32/config# /usr/sbin/john /root/hash.txt --format=nt
Created directory: /root/.john
Loaded 6 password hashes with no different salts (NT MD4 [128/128 SSE2 + 32/32])
(Guest)
guesses: 4 time: 0:00:03:13 0.09% (3) (ETA: Mon May 12 06:46:42 2014) c/s: 152605K trying: 2KRIN.P - 2KRIDY8
guesses: 4 time: 0:00:04:26 0.13% (3) (ETA: Mon May 12 04:02:53 2014) c/s: 152912K trying: GR0KUHI - GR0KDN1
guesses: 4 time: 0:00:04:27 0.13% (3) (ETA: Mon May 12 04:15:42 2014) c/s: 152924K trying: HKCUUHT - HKCUGDS

8.6.2 破解Linux用户密码

破解Linux的密码基本上和破解Windows密码的方法非常类似,在该过程中只有一点不同。Linux系统没有使用SAM文件夹来保存密码散列。Linux系统将加密的密码散列包含在一个叫做shadow的文件里,该文件的绝对路径为/etc/shadow。

不过,在使用John the Ripper破解/etc/shadow文件之前,还需要/etc/passwd文件。这和提取Windows密码散列需要system文件和SAM文件是一样的道理。John the Ripper自带了一个功能,它可以将shadow和passwd文件结合在一起,这样就可以使用该工具破解Linux系统的用户密码。本小节将介绍破解Linux用户密码的方法。

使用John the Ripper工具破解Linux用户密码。具体操作步骤如下所示。

(1)使用unshadow提取密码散列。执行命令如下所示:

root@kali:~# unshadow /etc/passwd /etc/shadow > /tmp/linux_hashes.txt

执行以上命令后,会将/etc/passwd/文件与/etc/shadow/文件结合在一起,生成一个叫做linux_hashes.txt的文件,保存在/tmp/目录中。

(2)破解Linux用户密码。执行命令如下所示:

root@kali:~# john --format=crypt --show /tmp/linux_hashes.txt
root:123456:0:0:root:/root:/bin/bash
bob:123456:1000:1001::/home/bob:/bin/sh
alice:123456:1001:1002::/home/alice:/bin/sh
3 password hashes cracked, 0 left

从输出的结果中,可以看到当前系统中共有三个用户,其密码都为123456。

注意:使用John the Ripper开始破解Linux密码之前,需要使用支持破解不同类型密码散列的John the Ripper版本。如果用错版本或者使用未打补丁的John the Ripper,程序将返回错误信息No password hashes loaded(没有价值密码散列)。大多数现代Linux系统都使用SHA散列加密算法保存密码。

Kali-linux破解操作系统用户密码的更多相关文章

  1. 破解Linux系统root用户密码

    linux系统的启动过程  在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...

  2. 破解root用户密码 -rwx权限

    破解root用户密码(本地登录) 1.光驱要放入系统光盘 2.重启os 3.修改启动菜单进入1运行级别 4.设置新密码 5.重启os linux的运行级别(默认3或5): 查看默认的运行级别 cat ...

  3. kali linux 2018.2 mysql密码修改后无效,外部无法连接问题。

    kali linux 2018.2 mysql密码修改后无效,外部无法连接问题 Kali Linux 2018.2 默认MySQL数据库是mariadb,可能和MySQL有些细微的变化,只需要做如下处 ...

  4. Kali Linux破解wifi密码(无须外置网卡)

    环境准备:  方式一(选择该方式):Kali Linux.笔记本一台.U盘(至少8G)  方式二:Kali Linux.外置网卡.笔记本一台.VM   特别说明,主要是使用方式一进行破解,如果有外置网 ...

  5. 如何重置硬盘遭到“损坏”的Linux系统root用户密码

    传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...

  6. 【Linux】Linux 找回Root用户密码

    Root密码破解 Linux 忘记Root密码 ? 技术学习基本原则:不作恶 一.破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单按e进入编辑模式 3.编辑kernel那行添加/ ...

  7. Linux批量修改用户密码

    对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用passwd user这样的命名来修改密码,但是这样会进入交互模式,即使使用脚本也不能很方便的批量修改,除非使用expect这样的 ...

  8. linux删除某用户密码

    1.清空一个linux用户密码 # passwd -d user1 passwd: password expiry information changed. 2.指定key登录 ssh port111 ...

  9. python之05 操作系统用户密码修改

    ubuntu的操作系统修改密码的操作方法: 一.在系统启动时按住shift键,出现下图的界面 二.按下e进入命令行,找到下图红色框中的文字并修改成rw init=/bin/bash 然后按F10启动, ...

随机推荐

  1. 【13】MD5编码、Zlib压缩解压缩

    1.MD5加密 /// <summary> /// 使用MD5加密算法 /// </summary> /// <param name="md5MessageSt ...

  2. 撩课-Python-每天5道面试题-第4天

    一. for循环和while循环中的else代表什么意思? 当for循环和while循环顺利的遍历完成时, 就会执行else分支 如果循环过程中, 碰到continue, 只要没有打断循环, 就会继续 ...

  3. Hive & SparkSQL 比较

    Hive 在  Hadoop 集群上所有数据的访问都是通过 Java 编写的 MapReduce 作业来完成的,这些让 Java 程序员来完成没有问题. 但是对 SQL 程序员来说,写 MapRedu ...

  4. 使用Mac自带svn搭建服务器,并使用idea进行连接

    一.检查Mac自带SVN版本号 二.创建代码仓库 $ mkdir -p /Users/Shared/svn/repository $ svnadmin create /Users/Shared/svn ...

  5. BZOJ2987:Earthquake(类欧几里德算法)

    Sol 设 \(n=\lfloor\frac{c}{a}\rfloor\) 问题转化为求 \[\sum_{i=0}^{n}\lfloor\frac{c-ax}{b}\rfloor+1=\sum_{i= ...

  6. JavaScript周报#183

    This week’s JavaScript news Read this issue on the Web | Issue Archive JavaScript Weekly Issue 183Ma ...

  7. Node服务端极速搭建 - nvmhome

    本文意在让你掌握极速搭建Node服务端(任何Project) $ whoami name: kelvin email: kelvv@outlook.com homepage: www.kelvv.co ...

  8. Redirect local emails to a remote email account

    My previous post is a guide for setting up exim4, an SMTP mail server, to use Gmail as a smarthost. ...

  9. Android内存管理-OnTrimMemory

    Application中有两个与内存管理相关的方法:onLowMemory()和 onTrimMemory(int level),源码如下 @CallSuper public void onLowMe ...

  10. HW—词频统计

    第一次个人作业——词频统计 第一次做这种大作业,明显感觉陌生,各种规范和技能也是第一次使用,希望自己好运. 目录:一.基本要求 二.需求分析及时间估计 三.实现思路及过程 四.测试用例.时间性能分析及 ...