1.5 使用SAMInside获取及破解Windows系统密码

在通过SQL注入等方式获取网站的WebShell后,就要利用系统的各种漏洞进行提权,提权成功后通过远程终端进入系统。此时,为了长期控制或者进一步渗透网络,就需要获取系统正常用户的密码。

获取系统密码Hash值的软件很多,本节主要介绍如何使用SAMInside获取系统的Hash值,以及如何结合彩虹表快速破解系统用户的密码。

1.5.1 下载和使用SAMInside

SAMInside的官方下载地址为http://www.insidepro.com/download/saminside.zip。目前的最新版本为SAMInside 2.7.0.2,该版本中不再提供GetHashes工具(官方提供的是试用版,有些高级功能不能使用),但并不影响获取系统密码Hash值。SAMInside可以获取Windows 2008 Server及以下版本操作系统的用户密码Hash值。在获取这些Hash值后,可以通过彩虹表或者字典等进行破解,进而获取系统的密码。SAMInside不需要安装,将下载的文件解压缩到本地磁盘即可使用。

1.5.2 使用Scheduler导入本地用户的Hash值

直接运行SAMInside,如图1-16所示,单击第3个图标,然后选择“Import Local Users via Scheduler”选项,将本地用户的Hash值导出。虽然SAMInside还提供了从LSASS导出本地用户的机制,但该方法在一些操作系统中容易出错。

0033-1

图1-16 使用Scheduler导入本地用户的Hash值

1.5.3 查看导入的Hash值

使用SAMInside导入本地用户的Hash值,必须具有管理员权限。在有些情况下,管理员会对磁盘进行权限限制,这个时候需要为SAMInside授权才能获取系统用户的Hash值。

如图1-17所示,一共获取了4个用户的Hash值,并显示了每个值的User、RID、LM-password、NT-password、LM-hash、NT-hash、Description信息。如果LM-password和NT-password显示为“Disabled”,表示该账户处于禁用状态。对超过14位的密码,在LM-password中会以全0显示。在旧版本的SAMInside中,以“AA3D”开头显示的密码也表示其位数超过14位,如“simeon:1005:AAD3B435B51404EEAAD3B435B51404EE: 5E9C2FAAE669F5D06F33014E33AC2CFC:::”的密码就超过了14位。

0034-1

图1-17 查看导入的Hash值

1.5.4 导出系统用户的Hash值

依次单击“File”→“Export Users to PWDUMP File”选项,将获取系统用户的密码Hash值导出为一个文件,其导出文件的内容如图1-18所示。然后,将该文件导入Ophcrack中进行破解。

0034-2

图1-18 导出系统用户的Hash值

SAMInside本身也能破解系统Hash值,不过破解速度和效果不如Ophcrack。对一些简单的密码,SAMInside会直接显示,感兴趣的朋友可以尝试。

1.5.5 设置SAMInside的破解方式

如图1-19所示,默认选择“LM-hashes attack”选项进行破解。如果用户密码超过14位,或者LM-hash中显示的全是0,则可以选择“NT-hashes attack”选项进行破解。然后,需要设置字典破解、暴力破解、掩码破解及彩虹表破解等。

如果采用字典破解,则需要选择“Options…”选项,在“Dictionary attack”中设置字典。将本地字典文件添加到字典文件列表中,如图1-20所示。可以设置多个字典文件用于破解。SAMInside的帮助系统提供了在线字典下载功能,大概有2GB的字典可供下载。

0035-1

图1-19 设置SAMInside的破解方式

0035-2

图1-20 导入字典文件进行破解

1.5.6 执行破解

设置破解的有关选项后,单击绿色三角形图标进行破解,如图1-21所示。如果密码在字典文件中,则很快就会给出结果。

0035-3

图1-21 运行字典破解本地用户密码