APP下载

基于Windows系统的口令破解技术的实现

2019-03-07严学军

电脑知识与技术 2019年35期

摘要:该文分析Windows下的口令保存机制,以及常用的破解方法。通过离线和在线两种方式来实现对口令的破解,实现破解主要基于KALI的攻击工具。

关键词:口令破解;离线破解;在线破解;kali系统

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2019)35-0044-02

1 Windows口令安全

随着计算机使用的普及,使用计算机的人越来越多,虽然有很多操作系统可供选择,但是现在主流的操作系统主要是Windows。大多数人在使用Windows的时候,会设置登录Win-dows的密码,设置的密码有的比较简单,例如使用密码123456、888888、123等等,好一点的可能是使用一些自己的生日以及长度小于8位的字母与数字组合,同时用户往往不会使用组策略中的安全策略,去设置对密码猜测破解的防护,更不用说还有用户直接使用空口令进行登录,或者一些内置账号例如guest被允许使用,这样的一些使用习惯往往导致密码很容易被各种攻击方法爆破出来。同时,现在主流的情况下,计算机都是接入网络使用,而网络是不安全的,在网络里有很多攻击者专门对未加上安全防护的计算机进行攻击和口令破解,而且攻击技术和手段现在越来越多,这也造成了Windows口令经常被人破解,从而导致计算机被黑客入侵或者资料泄露,造成很大损失。

2 Windows的口令机制

Windows使用了安全账号管理器机制,账号保存在数据库文件sam文件中,当用户登录时候,用户输入的账号信息要与sam数据库中的记录一致,才被允许登录。Sam文件保存在系统目录%sytem%/system32/config下,在开机状态下该文件是无法复制的,但是如果是关机状态下,这个时候可以采取离线攻击手段,攻击者很容易通过一些攻击手段,例如使用kail的live方式登录,通过kali工具集可以很容易读取到sam文件,另外即便是开机状态也可以使用在线攻击方式,攻击者通过其他的攻击方式,例如通过系统漏洞进行攻击,连接并控制了该计算机,然后可以在线读取并下载sam数据库信息。

在WINDOWS下通过工具提取到的密码hash有两个,一个是LM-Hash,另外一个是NT-Hash,对应了两种不同的加密方式。首先谈一下LM-Hash以及它的生成原理:密碼首先被转换为大写,然后被转换为16位字符串,这16为字符串被分成两部分,再通过函数做一次转换,然后对转换后的部分再进行一次DES加密,将2组加密后的内容拼接在一起构成LM-Hash值。因为LM口令使用了较弱的DES密钥和算法,比较容易破解,于是微软保持了向后兼容性的同时推出了NT-Hash,与LM-Hash相比,NT-Hash对大小写敏感,由于是向后兼容,通常是两种方式一起使用。下面再谈一下NT-Hash以及它的生成原理:先将密码转化成ASCII字符串,再转换为十六进制字符串,然后转换成Unicode字符串,最后再对该字符串采用消息摘要算法运算,产生一个16字节的NT-Hash值。

3 口令破解的基本原理

口令破解主要使用社会工程学破解以及暴力破解两种方式。社会工程学方式主要是尽量多地获取你的个人信息,例如获取你的生日、亲人生日、电话号码等,然后通过猜测的方式实现破解。暴力破解主要是通过跑字典来进行,属于穷举法的一种,因为字典并不是无限量大的,通常需要采用一些方式来构造字典,可以按照一定的排列方式对字母、数字、特殊字符进行组合。另外还有一种方式采用彩虹表来构造字典,彩虹表实际上是字典的HASH值表达方式,并且对排列方式进行了一些优化,而且在彩虹表中查找的时候也采用了优化方式。因为采用字典方式破解的时候实际上需要把口令字符串组合先转换成HASH值,再和系统中的HASH值进行比对,如果直接把HASH值保存在字典中,这样就不需要先进行转换,所以计算机在运算时候可以少做一次HASH转换,这样可以大大增加破解速度,同时查询字典的方式得到优化,所以彩虹表的效率比字典要高。总体而言,破解的成功率取决于字典的构造方式、大小和计算机的硬件条件(现在有些破解需要CPU支持)和运行速度。

4 口令破解的实现

4.1离线方式实现破解Windows系统口令

离线口令攻击通过获取计算机上sam文件信息,然后使用相应工具对sam进行破解。笔者采用虚拟机上完成攻击,离线破解WIN7口令。首先通过BIOS设定WIN7虚拟机的启动方式为CD-ROM Drive,定位Kali的ISO为虚拟光盘,启动时候选择kali的live方式,登录到kaili后,执行如下命令:

root@kali:~#mount/dev/sdal/mnt #挂载硬盘到/mnt

root@kali:~#cd/mnt/Windows/System32/config

root@kali:/mnt/Windows/System32/config#samdump2 SAM-o sam.hash#导出sam到sam.hash

可以看到通过系统内置的字典成功破解了几个用户。通过john命令还可以显示Sam.hash文件内容,如下图所示。

上面命令执行部分的第四第五个字段分别为LM-Hash和NT-Hash。在kali系统下也可以采用ophcrack工具,通过下载的彩虹表进行破解。

4.2在线破解

在线破解方式一般可以通过系统漏洞,利用一些密码探测工具,例如HYDRA等工具直接破解对方的FTP服务的口令,进而获得对方系统的账号和口令,另外也可以通过对系统中存在的漏洞先进行渗透,获得对方系统的操作权限,从而可以下载对方的sam文件中的信息,直接破解对方口令。下面以Win-dows XP为例,在XP上存在着MS08-067漏洞(通过该漏洞可以远程控制Windows XP计算机),通过kali系统进行攻击。攻击命令如下:

msf5>use exploit/windows/smb/ms08_067_netapi#打开ms08_067攻击模块

msf5 exploit(windows/smb/ms08_067_netapi)>set target 34#设置目标计算机类别号

msf5 exploit(windows/smb/ms08_067_netapi)>set thosts192.168.1.6#设置远程计算机IP

msf5 exploit(windows/smb/ms08_067_netapi)>run#实施攻击

……

[*]Meterpreter session 1 opened(192.168.1.149:4444→192.168.1.6:1036)at2019-05-28 20:52:31+0800

meterpreter>hashdump#下載口令信息

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::

Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::

HelpAssistant:1000:11f3621c220bb15cb613aa94330f1686:4d48771dcOefba71d12cfOa601b297f3:::

lily:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfeOd16ae931b73c59d7eOc089c0:::

ls:1005:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::

SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:f4886de5a773e4bac2a9a37dad2d013c:::

zs:1004:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::

可以看到已经获得口令hash,然后通过在线网站反查hash值即可以获得相应账号的口令。

5 综述

通过以上分析和对口令破解的实现,如果需要Windows系统口令有一定的安全性,这需要设置强度很高的口令,口令位数和复杂性都需要提高,这样即便是跑字典破解,破解还是有一定难度的。

【通联编辑:朱宝贵】

收稿日期:2019-10-15

作者简介:严学军,讲师,硕士,主要研究方向为网络安全方向等。