内网渗透
Windows 访问控制
- 输入密码后,系统将密码保存到缓存中,以防重复输入
- 为用户创建Access Token, Access Token包含:
- 用户的SID
- 用户所在组的SIDs
- 当前登陆Session的登陆SID
- 用户及其用户组所拥有的权限列表
- 所有者的SID
- 首要组的SID
- 默认的DACL
- 当前的Access Token来源
- 是内核创建的Primary Token还是扮演的Impersonation Token
- 一份受限SIDs的列表
- 当前的扮演等级(impersonation levels)
- 其他数据XMan
- whoami
- SID
- S
- SID版本号
- 颁发机构 ID
- 域或本地 ID
- 账户和组 ID
- 打开一个进程 Explorer.exe,每个用户有每个用户的 Token,非管理员用户之间不能相互访问
Windows 认证方式
- Kerberos
- NTLM
- Digest SSP
Keberos
- 认证流程
- 客户端向KDC的KAS服务请求开身份证明
- KAS认证成功后返回给客户端认购权证( TGT )
- 客户端拿着TGT到KDC的TGS服务买票
- TGS认证成功后返回给客户端服务票据(ST)
- 客户端拿着ST去访问服务
- 返回服务资源XMan
![]https://github.com/Chris-Ju/Picture/blob/master/Keberos%E8%AE%A4%E8%AF%81%E6%B5%81%E7%A8%8B.png?raw=true
- 攻击方式
- MS14-068
- Pass The Ticket
- Golden Ticket
- User
- Domain
- SID of Fomain
- Krbtge Nt_Hash
- 工具 Nbtscan
NTLM
- NTLM是NT LAN Manager的缩写,这也说明了协议的来源。
- NTLM 是Windows NT 早期版本的标准安全协议,Windows 2000 支持NTLM 是为了保持向后兼容。
- 早期SMB协议在网络上传输明文口令。
- 后来出现LAN Manager Challenge/Response 验证机制,简称LM
- LM很简单以至于很容易就被破解。
- 微软提出了Windows NT 挑战/响应验证机制,称之为NTLM。
- 现在已经有了更新的NTLMv2以及Kerberos验证体系。
- 如果在Kerberos协议和NTLM协议可用的情况下,默认使用更安全的Kerberos。
- 攻击方式
- NetNTLM Downgrade Attacks
- 所谓的降级就是把原本的LM认证级别降低,使其回应挑战包时将NetLM Hash也返回回去
- 网络上已经有了Challenge=1122334455667788生成的NetLM彩虹表
- 我们伪造一个SMB服务器,返回Challenge固定为1122334455667788
- 当降级过后的服务器的某用户来访问我们的SMB服务,我们就可以拿到他的NetLM Hash,然后再跑一下彩虹表就可以拿到明文
- SMB Relay Attack
- Pass The Hash
- NetNTLM Downgrade Attacks
Windows Hash
这部分破坏性太大加上对 CTF 帮助不大,待我技术学成后再来补充