1.2 Windows账号和密码的获取与破解
Windows账号和密码的获取主要针对获取了系统权限的情况,尤其是3389登录的情况。还有一种情况,就是通过提权0day执行其他可执行程序,例如通过执行“wce-w”命令直接获取系统登录过的账号明文。在大多数情况下,都需要对系统账号和密码Hash值进行获取。常见的密码获取软件有GetHashes、gsecdump、PwDump、SAMInside等,常用的密码破解软件有LC5/LC6、SAMInside、Ophcrack、Hashcates等。
1.2.1 使用GetHashes获取Windows系统密码Hash值
目前GetHashes的最高版本是1.6,它是InsidePro公司早期的一款Hash密码获取软件,该公司网址为http://www.InsidePro.com。该公司还有SAMInside、PasswordsPro及Extreme GPU Bruteforcer三款密码破解软件。目前,该网站的新版本SAMInside已经将GetHashes等软件整合在一起了。
1.GetHashes命令格式
GetHashes命令的格式如下。
GetHashes <SAM registry file> [System key file] Or GetHashes $Local
一般使用“GetHashes $Local”来获取系统的密码Hash值,该命令仅在system权限下才能成功执行。一般根据个人爱好,可以将GetHashes工具软件改为其他名称,例如在后面的案例中就将其命名为“getpw”。
2.使用GetHashes获取系统Hash值实例
将GetHashes重命名为“getpw”,将其复制到欲获取密码Hash值的系统盘中,然后执行“getpw$local”命令,如图1-1所示,顺利获取其密码Hash值。在本案例中使用的是Radmin的Telnet。单击“文本”→“保存为”选项将结果保存为一个新文件,然后使用UltraEdit编辑器对其进行编辑,仅保存密码Hash值部分,在后面使用LC5导入密码Hash值,即可破解系统的密码。
图1-1 获取系统Hash值
注意
·在使用GetHashes获取系统的密码Hash值时,必须拥有System权限,也就是说,要在反弹Shell或者Telnet下获取。
·如果系统中安装了杀毒软件或者防火墙,可能由于杀毒软件和防火墙的保护而导致密码获取失败。通过研究发现,由于Gethashes的威力巨大,主要用于在入侵过程中获取系统的密码Hash值,因此绝大多数杀毒软件已经将GetHashes加入病毒库了。
1.2.2 使用gsecdump获取Windows系统密码
gsecdump是在Windows环境下获取密码的主要工具之一,其功能强于GetHashes,目前已经被定义为病毒,例如HackTool.FFC(AVG)、HackTool.Win32.Agent.ym(Kaspersky)、 HTool-GSECDump(McAfee)、W32/Hacktool.AY(Norman)、Trojan.Moo(Symantec)、HKTL_AGENT(Trend Micro),其主要特点是在某些情况下能够获取域控密码,是不可多得的密码获取工具软件。
1.下载和使用gsecdump
gsecdump目前的最新版本为2.0b5,由于其使用的广泛性,因此被Google浏览器及多款杀毒软件定义为病毒,其官方网站已经不再提供下载地址。如果要使用gescdump,可以给info@truesec.co发邮件索取下载地址。
2.gsecdump参数
直接运行gsecdump,如图1-2所示,默认显示帮助信息。也可以使用“gsecdump-h”命令获取帮助信息。其参数如下。
图1-2 gecdump运行参数
· -h/:显示帮助信息。
· -a/:获取所有密码信息。
· -s/:从SAM和域控中获取Hash值。
· -l/:获取LSA信息,基本没用。
· -u/:获取活动的登录Hash值,即当前登录用户的Hash值。
· -w/:获取无线密码。
· -S/:强制评估版本为系统版本。
3.使用gsecdump获取系统密码
在通常情况下,使用“gsecdump-a”命令获取所有用户的密码Hash值,如图1-3所示。也可以使用“gsecdump-u”命令获取当前登录用户的密码Hash值。
图1-3 获取系统中所有用户的Hash值
1.2.3 使用PwDump获取域控密码
PwDump是Quarkslab出品的一款用户密码提取开源工具,其完整源代码可以从https://github.com/quarkslab/quarkspwdump获取。目前,PwDump支持Windows XP/Server 2003/Vista/7/Server 2008版本,且相当稳定,可以抓取Windows平台上多种类型的用户凭据,包括本地账户、域账户、缓存的域账户和Bitlocker,具体信息如下。
· Local accounts NT/LM hashes+history:本机NT/LM Hash和历史登录记录。
· Domain accounts NT/LM hashes+history:域中的NT/LM Hash和历史登录记录。
· Cached domain password:缓存中的域管理密码。
· Bitlocker recovery information (recovery passwords & key packages):使用Bitlocker恢复后遗留的信息。
1.使用PwDump获取本地账号的Hash值
PwDump必须在DOS命令提示符下运行。直接运行QuarksPwDumpv0.2b.exe,如图1-4所示,默认显示帮助信息,其参数含义如下。
图1-4 使用PwDump获取本地账号的Hash值
· -dhl:导出本地Hash值。
· -dhdc:导出内存中的域控Hash值。
· -dhd:导出域控Hash值,必须指定NTDS文件。
· -db:导出Bitlocker信息,必须指定NTDS文件。
· -nt:导出ntds文件。
· -hist:导出历史信息,可选项。
· -t:导出类型。可选项,默认导出John类型。
· -o:导出文件到本地。
2.使用PwDump导出账号信息实例
使用命令“QuarksPwDumpv0.2b.exe-dhl-o 1.txt”将导出本地Hash值到当前目录下的1.txt文件中。如图1-5所示,有3个账号导出到1.txt文件中。打开1.txt文件,可以看到导出Hash值的具体账号和值。
图1-5 导出本地账号信息到文件
3.配合Ntdsutil工具导出域控密码
Ntdsutil.exe是一个为Active Directory提供管理设施的命令行工具。可使用Ntdsutil.exe进行Active Directory的数据库维护,管理和控制单台主机操作,创建应用程序目录分区,以及删除由未使用Active Directory安装向导(DCPromo.exe)成功降级的域控制器留下的元数据。Ntdsutil.exe还可以用来获取域控数据库ntds.dit文件,具体命令如下。
(1)创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
(2)使用Ntdsutil挂载活动目录的快照
ntdsutil snapshot "mount {GUID}" quit quit
{GUID}是动态获取的,如图1-6所示。
图1-6 导出快照文件
(3)复制快照的本地磁盘
copy MOUNT_POINT\windows\NTDS\ntds.dit c:\ntds.dit
(4)卸载快照
ntdsutil snapshot "unmount {GUID}" quit quit
(5)删除快照
ntdsutil snapshot "delete {GUID}" quit quit
使用命令“QuarksPwDump.exe--dump-hash-domain--ntds-file c:\ntds.dit”将导出的ntds.dit文件中Hash值全面导出。一个完整的实例如下。
tdsutil snapshot "activate instance ntds" create quit quit ntdsutil snapshot "mount {a0455f6c-40c3-4b56-80a0-80261471522c}" quit quit
快照{5e0d92d3-992d-42b9-bbd5-9c85e5dc7827}已挂接为C:\$SNAP_201212082315_VOLUMEC$\,代码如下。
copy C:\$SNAP_201212082315_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit ntdsutil snapshot "unmount {5e0d92d3-992d-42b9-bbd5-9c85e5dc7827}" quit quit ntdsutil snapshot "delete {5e0d92d3-992d-42b9-bbd5-9c85e5dc7827}" quit quit QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit
说明
获取Hash值最好在同一台服务器上执行,即将QuarksPwDump.exe直接放在导出ntds.dit的服务器上执行导出命令。如果仅仅将ntds.dit复制后下载到本地,可能会出现无法读取的错误。网上也曾经出现一个NTDS.dit密码快速提取工具NTDSDump,读者可以自己进行测试。如果想下载ntds.dit到本地恢复,还需要执行“reg save hklm\system system.hive”命令,将system.hive和ntds.dit全部复制到本地进行域控密码的获取。
1.2.4 使用PwDump获取系统账号和密码
在网络攻击中,通过一些溢出程序成功溢出被攻击计算机后,最重要的一个步骤就是获取该计算机中的用户账号和密码。特别是在成功控制操作系统为服务器的计算机以后,获取系统中的账号和密码更是攻击者的首要任务。使用计算机中用户原来的账号和密码登录3389终端,优于在系统中增加或者克隆账号,因为在系统中增加或者克隆账号容易被发现,从而导致被控计算机丢失。获取系统账号和密码的方法很多,本案例使用比较流行的PwDump和LSASecretsView来获取系统中的账号和密码。
1.上传文件到欲获取密码的计算机中
PwDump 4.02版本中有两个文件:一个是Pwd4.dll,另外一个是Pwdump4.exe(在早期版本中,其DLL文件为lsaext.dll)。将这两个文件上传到欲获取账号和密码的计算机的系统目录下。
2.在Shell中执行获取密码的命令
本案例中通过Radmin的Telnet来执行命令。到系统根目录中执行“pwd4/l/o:*.*.*.82.sam”命令,将系统中的账号和密码信息导出到*.*.*.82.sam文件。导出成功后,会给出一些提示信息,如操作系统版本情况及有多少个用户等,如图1-7所示,然后将其sam文件传输回本地计算机。
图1-7 执行获取密码的命令
说明
·本例中直接将Pwdump4.exe的名称更改为“pwd4.exe”,是为了在操作中少输入字母。
· “pwd4”后面的参数“/l”表示导出到本地,“/o:filename”表示输出到filename文件。
1.2.5 使用SAMInside获取及破解Windows系统密码
在通过SQL注入等方式获取网站的WebShell后,就可以利用系统的各种漏洞进行提权,提权成功后,就可以通过远程终端登录系统。此时,为了长期控制或者进一步渗透网络,攻击者需要获取系统正常用户的密码。获取系统密码Hash值的软件很多,在本节中主要介绍如何使用SAMInside来获取系统的Hash值,以及如何结合彩虹表快速破解操作系统用户的密码。
1.下载和使用SAMInside
SAMInside的官方下载地址为http://www.insidepro.com/download/saminside.zip,目前最新版本为2.7.0.2,该版本中不再提供GetHashes工具。官方提供的是试用版本,一些高级功能无法使用,但并不影响获取系统密码Hash值。SAMInside可以获取包括Windows Server 2008以下版本操作系统的用户密码Hash值。在获取这些Hash值后,可以通过彩虹表或者字典等进行破解,进而获取系统的密码。SAMInside不需要安装,将下载的saminside.zip解压到本地磁盘即可使用。
2.使用Scheduler导入本地用户的Hash值
直接运行SAMInside,如图1-8所示,单击第3个小图标,然后选择“Import Local Users via Scheduler”选项,将本地用户的Hash值导出。虽然SAMInside中还提供了从LSASS导出本地用户的机制,但该方法在一些操作系统中容易出错(这两个方法均可使用)。
图1-8 使用Scheduler导入本地用户的Hash值
3.查看导入的Hash值
在使用SAMInside导入本地用户的Hash值时,必须具有管理员权限。在一些情况下,管理员会对磁盘进行权限限制,这时需要为SAMInside授权后才能获取系统用户的Hash值。如图1-9所示,一共获取了4个用户的Hash值,该值按照User、RID、LM-password、NT-password、LM-hash、NT-hash和Description的顺序进行显示。如果LM-password列和NT-password列显示为“Disabled”,则表示该账户被禁用了。超过14位的密码在LM-password列中会以全0显示(在老版本中以“AA3D”开头的值也表示密码位数超过14位,例如“simeon:1005:AAD3B435B51404EEAAD3B435B51404EE:5E9C2FAAE669F5D06F33014E33AC2CFC:::”,其密码就超过了14位)。
图1-9 查看导入的Hash值
4.导出系统用户的Hash值
单击“File”→“Export Users to PWDUMP File”选项,将获取系统用户的密码Hash值导出为一个文件,其内容如图1-10所示,然后将该文件导入Ophcrack中进行破解。SAMInside本身也能破解系统Hash值,不过破解速度和效果不如Ophcrack。对一些简单的密码,SAMInside可以直接显示,对此感兴趣的读者可以直接尝试使用SAMInside破解系统Hash值。
图1-10 导出系统用户的Hash值
1.2.6 使用oclHashcat破解Windows系统账号密码
oclHashcat号称“世界上最快的密码破解工具”及“世界上第一个和唯一的基于GPGPU规则的引擎”,提供免费多GPU(高达128个GPU)、多Hash、多操作系统(Linux和Windows本地二进制文件)、多平台(OpenCL和CUDA支持)、多算法,资源利用率低,基于字典攻击,支持分布式破解。
oclHashcat for AMD的下载地址为http://hashcat.net/files/oclHashcat-1.31.7z。oclHashcat for Nvidia的下载地址为http://hashcat.net/files/cudaHashcat-1.31.7z。
oclHashcat系列软件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU进行密码破解,在操作系统上支持Windows、Linux平台,并且需要安装官方指定版本的显卡驱动程序(如果驱动程序版本不对,可能导致程序无法运行)。NV users GPU破解驱动需要ForceWare 331.67及更高版本,AMD用户则需要Catalyst 14.9及更高版本。可以通过Catalyst自动侦测和下载检测工具来检测当前系统应该下载哪个版本,下载地址为http://support.amd.com/en-us/download/auto-detect-tool,还可以通过360的软件管理界面直接搜索“Catalyst”,选择合适的版本安装。
(1)准备工作
① 准备Kali Linux操作系统或者虚拟机。
② 准备Windows 7操作系统或者虚拟机。
③ 准备字典。可以自己生成字典工具,也可以从网上获取字典。推荐字典下载网站:http://contest-2010.korelogic.com/wordlists.html, http://www.insidepro.com/dictionaries.php。
④ 在Windows 7中新增一个用户antian365,设置其密码为password。单击“开始”→“运行”选项,输入“cmd”并按“Shift+Ctrl+Enter”组合键,输入命令“net user antian365 password/add”(以管理员权限启动cmd.exe程序也可),执行成功后如图1-11所示。测试完毕,可以通过“net user antian365/del”命令删除该账号。
图1-11 添加测试账号
⑤ 下载。SAMInside官方网站目前已经停止SAMInside软件的开发了,读者可以到华军软件园下载,地址为http://gwbnsh.onlinedown.net/down2/saminside.v2.6.1.0.chs.rar。
(2)获取密码Hash值
有多个软件可以获取Windows 7操作系统的Hash值,例如WCE、mimikatz、Cain及SAMInside。在Windows Vista及以上版本中都有UAC权限控制机制。UAC(User Account Control,用户账户控制)是微软为提高系统安全性在Windows Vista中引入的技术,它要求用户在执行可能影响计算机运行或更改影响其他用户设置的操作之前提供权限或管理员密码。通过在这些操作启动前对其进行验证,UAC可以帮助防止恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改,因此获取密码的工具都需要以管理员身份运行。
选择SAMInside.exe程序,单击右键,在弹出的快捷菜单中选择“以管理员身份运行”选项,然后在SAMInside程序主界面上单击第3个图标,选择“Import local user using Scheduler”选项来获取密码,如图1-12所示,即可获取本机所有账号的密码Hash值等信息。
图1-12 获取密码Hash值
(3)整理Hash值
在SAMInside中可以导出所有账号的Hash值,也可以复制单个账号的Hash值。单击“File”菜单中的“导出用户到pwdump文件”命令,即可导出获取的Hash值。也可以选择Hash值,单击右键,在弹出的快捷菜单中选择“复制”→“NT hash”选项获取NT Hash值。对于Windows Vista以上版本的操作系统,即使是普通的密码,也是以“AAD3B”开头的一串字符。这个值目前在Ophcrack等工具中无法破解,在SAMInside中会显示为一串“0”字符。将NT Hash值整理到一个文件中,将其命名为“win2.hash”,如图1-13所示。
图1-13 整理需要破解的Hash值
(4)破解Hash值
将准备好的字典ptemp.txt和需要破解的Hash值文件win2.hash复制到oclHashcat32程序所在文件夹下,执行如下命令进行破解。
oclHashcat32-m 1000-a 0-o winpass1.txt --remove win2.hash ptemp.txt
“-m 1000”表示破解密码类型为NTLM; “-a 0”表示采用字典破解;“-o”表示将破解后的结果输出到winpass1.txt中;“--remove win2.hash”表示将移除破解成功的Hash值;“ptemp.txt”为密码字典文件。
如果密码字典文件较大,可能会显示“[s]tatus [p]ause [r]esume [b]ypass [q]uit=>”。输入“s”将显示破解状态,输入“p”将暂停破解,输入“r”将继续破解,输入“b”表示忽略破解,输入“q”表示退出。所有成功破解的结果都会自动保存在oclHashcat.pot文件中。破解结束,会显示如图1-14所示的信息。
图1-14 显示破解信息
(5)查看破解结果
运行“type winpass1.txt”命令查看破解结果,如图1-15所示,该账号的密码为“password”。
图1-15 查看密码破解结果
oclHashcat功能强大,能够破解常见的密码加密算法。Discuz!论坛密码算法md5(md5($pass).$salt)的破解命令为“oclHashcat32-m 2611-a 0-o winpass1.txt--remove dz.hash ptemp.txt”; Linux SHA512加密的破解命令为“oclHashcat32-m 1800 sha512linux.txt p.txt”; Linux下的MD5加密破解命令为“oclHashcat32-m 500 linuxmd5.txt p.txt”。
1.2.7 使用L0phtCrack破解Windows及Linux密码
L0phtCrack(LC)是一款强大的密码审计工具,目前最新版本为6.0.20,官方下载地址为http://www.l0phtcrack.com/lc6setup_v6.0.20.exe。LC6的官方版本只能试用15天,且功能有限制。目前使用较多的是L0phtCrack 5.02注册版,简称LC5。它是一款网络管理员的必备的工具,可以用来检测Windows、UNIX用户是否使用了不安全的密码,同时也是最好、最快的Windows NT/2000/XP及UNIX管理员账号密码破解工具之一。事实证明,简单的或容易被破解的管理员密码是最大的安全威胁,因为攻击者在破解后往往能以合法的身份登录计算机系统而不被察觉。
1.破解本地账号和密码
本地账号和密码一般用于审计、测试及查看密码强度等,属于展示性质。
(1)安装与汉化注册
直接双击并运行LC5setup.exe,然后按照提示进行安装和设置。由于安装过程比较简单,这里就不赘述了。
(2)选择取得加密口令的方式
初次使用LC5时会自动运行LC5向导。如果不想在每次启动时都运行这个向导,可以选中“下次启动不再显示此向导”选项(如果是第一次使用LC5,建议仔细阅读向导前面的文字,对建立会话的过程有一个大致的理解)。来到“取得加密口令”窗口,如图1-16所示,这里列出了LC5破解密码的4种途径,因为笔者具有本机管理员权限,所以默认选择第一种方式。
图1-16 选择密码导入方式
(3)选择破解方法
在“选择破解方法”窗口中有“快速口令破解”、“普通口令破解”、“复杂口令破解”和“自定义”4个选项,如图1-17所示,可以根据实际情况,按照“先简单,后复杂”的模式进行选择。
图1-17 选择破解方法
(4)选择报告风格
默认分为5种会话,可以全部选中。选择报告风格主要便于在破解过程中直观显示破解结果等信息,如图1-18所示。
图1-18 选择报告风格
(5)开始破解
向导设置完毕,LC5会将本地账号全部导入。单击“会话”→“开始破解”选项或者菜单栏下面的三角形图标,开始对系统账号进行破解。如图1-19所示,获取本地账号3个,其中administrator和antian365为有密码的账号。
图1-19 开始破解口令
在LC5的用户主界面会显示域、机器名、用户名、LM认证口令等(也就是在“选择报告风格”窗口选定的内容)。用户可以根据实际需要,单击“查看”菜单,在“选择显示的项目”区域重新进行设置。在主界面上,最重要的就是显示破解出来的口令。
2.导入Hash文件进行破解
(1)获取系统Hash值
有关获取系统Hash值的内容在前面已经介绍过,这里就不赘述了。将获得的Hash值保存为TXT文件,单击“会话”→“导入”选项,出现如图1-20所示的窗口,在其中选择“从文件导入”→“从PWDUMP文件”选项,选择Hash文件进行导入。在从文件导入中可以看到4个选项,分别是“从SAM文件”、“从LC4文件”(LC5早期版本)、“从PWDUMP文件”及“从UNIX Shadow文件”(破解Linux密码)。
图1-20 选择导入Hash值
·从SAM文件:关于SAM表的位置,Windows NT/2000位于C:\WinNT\system32\config\目录下,Windows XP/2003/Vista位于C:\Windows\system32\config\目录下。要想获得SAM表,可以通过光盘或者其他工具进入DOS环境,将其复制出来。
·从LC4文件:LC4是LC5的前一个版本。默认LC将未完成的任务保存成以“.LCs”结尾的文件,这样就可以在下次直接打开已经保存的任务继续破解,省去了每次都要重复破解的麻烦。LC5是兼容LC4的,如果有LC4未完成的任务,或者在某种特定情况下只能用LC5将用户信息读出,先保存成LC4文件再用LC5读取也不失为一种好办法。
·从PWDUMP文件:通过其他Hash获取工具获得Hash值后保存的文本。
·从UNIX Shadow文件:在*nix中,用户的信息(包括用户密码)本来都是存放在/etc/passwd中的。但是,基于很多原因,例如其他应用程序需要将用户的用户名转换为uid,/etc/passwd就必须可以被所有人访问。所以,LCS引用了一种新的机制,将所有用户的密码信息存放在/etc/shadow中,而这个文件只有在获得root权限后才可以读取,这样就保证了系统的安全性。如果我们想要使用LC5对*nix下的用户密码强壮性进行检测,就必须得到那台主机的/etc/shadow文件。
(2)设置会话选项
会话选项中包括LC5密码破解的所有选项,主要是字典破解、混合字典攻击及暴力破解和散列攻击的设置,如图1-21所示。早期Windows 2000及Windows XP操作系统使用较多,后期出现了Windows Server 2008及Windows Server 2012等高级版本,因此Hash值前半部分为“AA3D”的字符串是无法破解的,将显示为“no password”,这时就需要勾选“破解NTLM认证口令”复选框。
图1-21 设置密码破解选项
·复杂字典破解:LC5默认自带2个字典,在“字典破解”设置区选中相应的选项,然后添加相应的密码字典文件即可。一般来讲,需要用户自己生成字典,特别是有针对性地生成字典。常用的字典生成器有黑客字典、木头字典生成器、易优字典生成器、密码字典生成器、超级字典生成器和社工字典生成器等。
·混合字典的攻击:混合字典就是把现在字典里的单词进行随机组合,再次去匹配密码。选中这一项,破解率会大大提高。在单独使用字典失败的情况下,可以尝试使用这种方法。
·彩虹表:预先将密码Hash值按照一定的规则生成文件,在使用LC5破解时直接比对文件中的值。很多网站提供彩虹表的下载。在“预定”设置区勾选“使用”复选框,“散列文件列表”按钮将变为可用状态。单击该按钮,打开“预定散列列表”对话框,如图1-22所示。
图1-22 添加彩虹表
·暴力破解:如图1-23所示,先勾选“使用”复选框,这样右边的“字符设置”下拉列表将处于可用状态。估计一下需要破解的密码可能使用的字符可以大大提高效率。如果知道要破解的密码是11位,那么是手机号的可能性很大;如果了解要破解的密码的人的情况,例如生日、姓名、喜欢的宠物,则最好使用自定义字符。在进行暴力破解时,一般选择先易后难的模式,即先字母,后字母+数字+普通符号,最后是字母+数字+所有符号。
图1-23 使用暴力破解
3.Linux密码破解
笔者比较熟悉Linux,所以就拿Linux来举例子。首先要明确的一点是:*nux下的密码文件是/etc/shadow,不是/etc/passwd。下面演示一下远程获取的过程。
在使用LC5获取*nux的密码的时候,是通过SSH方式登录服务器获取的,所以在使用LC5远程获取/etc/shadow文件时,一定要确保有管理员权限,并且远程服务器一定要开启SSH服务。
(1)从远程计算机导入
打开“导入”对话框,选择“远程计算机”选项,单击“增加”按钮,弹出“从远程电脑导入”对话框,选择UNIX系统,如图1-24所示。
图1-24 从远程计算机导入
(2)输入证书
单击“确定”按钮,弹出“输入证书”对话框,如图1-25所示,输入管理员的用户名和密码,并保存这些证书供以后使用。
图1-25 输入证书
(3)设置破解方案
打开会话选项窗口,定制破解方案。在这里使用字典破解、混合字典攻击和暴力破解3种模式,如图1-26所示。
图1-26 设置密码破解方式
(4)开始破解
如图1-27所示,将远程计算机中的用户全部导入,开始破解。注意右半部分的进度,b用户的密码被破解出来了。此时,破解进度还没到一半,时间不到20秒,总的来说速度很快,效果也挺好。
图1-27 破解Linux密码
1.2.8 使用Ophcrack破解系统Hash密码
在密码破解中使用最多的工具是LC5,但LC5的破解时间相对较长。本节将给出一个在5分钟内破解不超过14位系统密码的例子(绝大多数情况下仅需要几十秒)——这意味着当一个系统存在漏洞时,攻击者可以在很短的时间内控制并渗透内部网络!
1.安装Ophcrack
Ophcrack的安装过程非常简单,按照提示安装即可。在安装过程中不要下载彩虹表。在安装设置中会提供3个下载选项,分别用于下载Windows XP(380MB)、Windows XP(703MB)和Windows Vista(461MB)彩虹表,如图1-28所示。笔者在安装过程中选择后,仅下载文件就花费了数小时。这个表可以在程序安装完成后再下载,否则Ophcrack要在彩虹表下载完成后才能使用。
图1-28 安装时建议不下载彩虹表
2.使用Ophcrack
运行Ophcrack,如图1-29所示,该软件主要有“Load”、“Delete”、“Save”、“Tables”、“Crack”、“Help”及“Exit”7个模块。“Load”主要负责装载Hash或者SAM文件,“Delete”主要用于删除破解条目,“Save”主要用于保存破解结果或者破解Session,“Tables”主要用于设置彩虹表,“Crack”用于开始执行破解,“Help”用于查看帮助文件,“Exit”用于退出。
图1-29 Ophcrack软件主界面
3.下载彩虹表
可以到Ophcrack提供的彩虹表下载网站http://ophcrack.sourceforge.net/tables.php下载彩虹表,在本案例中分别下载了3个免费的彩虹表。
4.设置彩虹表
在Ophcrack主界面单击“Tables”按钮,就会出现如图1-30所示的“Table Selection”界面。在默认状态下,所有彩虹表都没有安装。通过该界面我们了解到,一共有8个彩虹表,其中有3个是免费的。
图1-30 选择彩虹表
单击并选中其中的一个条目,在本例中选择“XP free fast”,然后单击“Install”按钮,系统会自动访问Ophcrack的安装目录。由于本例是将3个压缩文件解压到F盘,如图1-31所示,因此选择“tables”目录,一次性安装获取的另外2个彩虹表。
图1-31 选择要安装的彩虹表
注意
·在Ophcrack中,彩虹表的上级目录名称必须为“tables”,否则彩虹表安装将会失败。
·彩虹表安装成功后,其条目会变成绿色,而且可以查看一共有多少个表,如图1-32所示。
图1-32 彩虹表安装成功
5.准备破解材料
这里的破解材料主要是指通过GetHashes、PwDump等软件获取的系统Hash密码值。
6.开始破解
(1)加载SAM文件
单击“Load”按钮,选择“PWDUMP file”选项,如图1-33所示。一共有6个选项,第1个主要用于对单个Hash值的破解,第2个是对获取的PwDump文件进行破解,第3个是对加密的SAM文件进行破解,第4个和第5个主要用来审计或者破解本地和远程Hash值。
图1-33 选择破解类型
(2)查看密码Hash值
在本例中选择一个已经PwDump的文件,如果PwDump系统的Hash密码没有错误,则会在Ophcrack主界面中正确显示。如图1-34所示,在主界面中分别显示了“User”、“LM Hash”、“NT Hash”、“LM Pwd1 ”、“LM Pwd2”及“NT Pwd”等信息。
图1-34 显示获取的密码Hash值
(3)清理无用的Hash值
在本例中,“IUSR_XFFZD-R1”、“TWWM_XFZD-SER1”和“TsInternetUser”这3个用户是系统自身的,在口令破解中基本没有用处(除非有人对该账号进行了克隆),因此可以分别选中需要删除的账号,然后单击主界面上的“Delete”按钮,删除这3个无用的账号,接着添加“king$”账号,仅留下并破解管理员账号。清理完毕,如图1-35所示。
图1-35 清理无用的Hash值
(4)执行破解
单击“Crack”案例开始破解,很快就得到密码“www119”,其“LM Pwd1”值与“NT Pwd”值相同,破解密码的时间仅为37秒,如图1-36所示。
图1-36 破解系统密码成功
(5)查看破解统计信息
在主界面中单击“Statistics”标签,可以查看破解Hash值的信息,如图1-37所示。
图1-37 查看所破解密码的有关统计信息
(6)破解参数设置
单击“Preferences”标签,打开破解参数设置窗口,如图1-38所示,可以设置破解的线程、破解方式及是否隐藏用户名等。
图1-38 设置破解参数