Kali-linux破解操作系统用户密码
当忘记操作系统的密码或者攻击某台主机时,需要知道该系统中某个用户的用户名和密码。本节将分别介绍破解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破解操作系统用户密码的更多相关文章
- 破解Linux系统root用户密码
linux系统的启动过程 在介绍破解Linux系统root密码之前先了解一下linux系统的启动过程 开机自检(POST),初始化部分硬件 搜素可用于引导的启动设备(如磁盘的MBR) 读取并将控制权 ...
- 破解root用户密码 -rwx权限
破解root用户密码(本地登录) 1.光驱要放入系统光盘 2.重启os 3.修改启动菜单进入1运行级别 4.设置新密码 5.重启os linux的运行级别(默认3或5): 查看默认的运行级别 cat ...
- kali linux 2018.2 mysql密码修改后无效,外部无法连接问题。
kali linux 2018.2 mysql密码修改后无效,外部无法连接问题 Kali Linux 2018.2 默认MySQL数据库是mariadb,可能和MySQL有些细微的变化,只需要做如下处 ...
- Kali Linux破解wifi密码(无须外置网卡)
环境准备: 方式一(选择该方式):Kali Linux.笔记本一台.U盘(至少8G) 方式二:Kali Linux.外置网卡.笔记本一台.VM 特别说明,主要是使用方式一进行破解,如果有外置网 ...
- 如何重置硬盘遭到“损坏”的Linux系统root用户密码
传统印象下Linux是非常坚不可摧的,具有千年不更新,万年不重启的美名.而随着虚拟化的推进,很多跑在虚拟化上的Linux由于先前基础架构的脆弱,变得适应性“越来越不好”,体现在IP存储如果出现节点故障 ...
- 【Linux】Linux 找回Root用户密码
Root密码破解 Linux 忘记Root密码 ? 技术学习基本原则:不作恶 一.破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单按e进入编辑模式 3.编辑kernel那行添加/ ...
- Linux批量修改用户密码
对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用passwd user这样的命名来修改密码,但是这样会进入交互模式,即使使用脚本也不能很方便的批量修改,除非使用expect这样的 ...
- linux删除某用户密码
1.清空一个linux用户密码 # passwd -d user1 passwd: password expiry information changed. 2.指定key登录 ssh port111 ...
- python之05 操作系统用户密码修改
ubuntu的操作系统修改密码的操作方法: 一.在系统启动时按住shift键,出现下图的界面 二.按下e进入命令行,找到下图红色框中的文字并修改成rw init=/bin/bash 然后按F10启动, ...
随机推荐
- js复选框全选反选
本篇文章是关于复选框的,有2种形式:1.全选.反选由2个按钮实现:2.全选.反选由一个按钮实现. <!DOCTYPE html> <html> <head> < ...
- SpringBoot之整合Redis
一.SpringBoot整合单机版Redis 1.在pom.xml文件中加入redis的依赖 <dependency> <groupId>org.springframework ...
- docker 卸载
1首先搜索已经安装的docker 安装包 [root@localhost ~]# yum list installed|grep docker 或者使用该命令 [root@localhost ~]# ...
- 解决:IDEA 中 new Java Class 怎么没了?
前言:写代码时遇到的问题,所以记录下来.我的包名为“interface”,只有这个包及包下的文件不能建java文件. 问题 解决方式(对于普通包名) 点击应用,ok就可以了. 解决方式(对于包名为“i ...
- C#3.0匿名类和Lanmda表达式
1.初始化器:className variableName = new className(property1=value1…); 2.var可以声明一个没有类型的变量,根据赋值的不同改变数据类型 3 ...
- PHP new StdClass() 创建空对象
PHP可以用 $object = new StdClass(); 创建一个没有成员方法和属性的空对象.很多时候,程序员们会将一些参数配置项之类的信息放在数组中使用,但是数组操作起来并不是很方便,很多时 ...
- 002Conditional条件化创建bean
01.条件化配置bean @Bean @Conditional(MagicExistsCondition.class)---->条件化创建bean public MagicBean magicB ...
- 设置Web AppBuilder的HTTP代理
在使用Web AppBuilder快速搭建webgis应用时,我们往往需要访问外部互联网的在线gis服务资源.假如要通过代理服务器才能访问互联网的在线gis服务资源,那么则需要预先配置web appb ...
- Mac怎么生成.ssh文件
可使用如下命令生成 1 ssh-keygen -t rsa 因为mac系统也是从unix基础上演变过来的,所以很多核心的东西也是与unix相通的. 1.-t 是指定加密参数为ras,默认是dsa 2. ...
- vue2.0中的计算属性
计算属性是一个很邪门的东西,只要在它的函数里引用了data中的某个属性,当这个属性发生变化的时候,函数仿佛可以嗅探到这个变化,并自动重新执行. 上代码会源源不断的打印出a的值.如果希望b依赖data中 ...