云主机的提权思路-令牌伪造
云主机的渗透思路,为什么说云主机呢,因为云上的主机都是云服务器提供商给出的模板,一般补丁都打了,而且可以统一管理。因此不存在什么内核漏洞来提权。
写这篇文章主要是想探讨一下以下几点
- 什么是windows令牌
- windows令牌有几种类型
- 如何利用windows令牌
- 如何防御windows令牌窃取
什么是windows令牌
windows access token的定义:https://docs.microsoft.com/en-us/windows/win32/secauthz/access-tokens
令牌就像网络 cookie。它们是一个临时密钥,允许您在每次访问文件时无需提供凭据即可访问系统和网络。Incognito 与 cookie 窃取的工作方式相同,通过在被要求进行身份验证时重播该临时密钥来利用这一点。
windows令牌有几种类型
- primary tokens 初始令牌
- impersonation tokens 模拟令牌
每个进程创建的时候,windows默认创建了primary tokens 初始令牌。
令牌的安全级别:
1 |
|
为了渗透的目的,我们要注意的是代理令牌和虎符令牌。
Delegate tokens 虎符令牌是为“交互式”登录创建的,例如登录机器或通过3389 rdp 远程登录。当administrator的一次rdp远程桌面登录成功后,该机器就会获得一个虎符令牌,代表着它有administrtor的权限。
Impersonate tokens 代理令牌用于“非交互式”会话,例如net use ,wmi,winrm
注: 上面的这两种令牌,都会在系统重启以后被清除, 否则将会一直驻留在内存中,而虎符令牌则会在用户注销以后自动被转为代理令牌,但仍然可利用,
如何利用windows令牌
域提权
虎符令牌中包含验证口令,所以通过虎符令牌就可以访问其他系统
本地提权
如果攻击者拿到了低权限的账号,那么通过虎符令牌就可以得到管理员权限
案例一:攻击者拿到Microsoft SQL Server 权限。如果dba账户有administrator权限,并且连接过SQL Server。那么攻击者就可以拿到administrator权限的虎符令牌。因为SQL server进程空间中存在着这个token。
案例二:攻击者拿到了系统账号网络服务“NETWORK SERVICE” ,虽然该账号没有system权限那么高,可以它访问“SYSTEM”代理令牌,所以存在提权到system的可能性。
使用CobaltStrike 来窃取伪造当前机器指定系统进程中的用户访问令牌
使用meterpreter incognito 模块来窃取伪造当前机器指定系统进程中的用户访问令牌
使用incognito.exe以任意用户身份的访问令牌去执行任意payload
利用Invoke-TokenManipulation.ps1 “无文件”窃取指定用户身份令牌执行任意payload
借助Invoke-TokenManipulation.ps1 窃取system 访问令牌以实现mssql 本地免密码登录
通过Tokenvator.exe 来窃取伪造模拟指定用户的访问令牌去执行任意payload
通过Mimikatz 来伪造指定用户的访问令牌
如何防御windows令牌窃取
防范本文中概述的技术并不是一项简单的任务。然而,可以采取的几种措施结合起来将大大降低风险。
windows令牌窃取,它不是漏洞,也没有补丁,它是Microsoft Windows 访问控制模型的正常行为。
对windows令牌窃取的防御措施主要是管理员如何使用他们的系统
限制高权限用户的使用
- 【权限分离】确保所有具有高权限的用户(如系统管理员)拥有单独的
管理帐户并使用标准用户帐户登录他们的桌面。 - 【使用RunAs 】来运行需要更高权限的进程。RunAs 还可以防止在旧系统注销后暴露令牌
- 确保域管理员帐户仅用于管理域控制器。 分离应创建域帐户并授予其委派管理权限特定的组织单位。
· 分割不同组织单位之间的管理员。 - 确保开发和测试系统的管理员帐户不同于关键的生产系统。
总而言之,就是权限分离、限制高权限用户的使用,使用最小必要权限,而不是到处以高权限用户去登录、开启进程。
参考资料
- 《第一百一十课:窃取,伪造模拟各种windows访问令牌[token利用].pdf》
- 《13054-security-implications-of-windows-access-tokens.pdf》
pdf的下载地址https://www.exploit-db.com/exploits/13054 - https://www.offensive-security.com/metasploit-unleashed/fun-incognito/