Windows使用访问令牌来确定正在运行的应用所有权。用户可以操纵访问令牌,使正在运行的应用看起来像启动应用用户本人一样。
操纵访问令牌概念
当这种情况发生时,该过程还将采用与新令牌相关的安全上下文。Microsoft提倡使用访问令牌作为最佳安全实践。管理员应以标准用户身份登录,但使用内置访问令牌以管理员权限运行工具runas。
攻击方法
攻击者可以使用访问令牌在不同的用户或系统进行攻击和逃避检测。攻击者可以使用内置的WindowsAPI函数复制现有过程中的访问令牌。这被称为令牌窃取。对手必须在特权用户(如管理员)的上下文中窃取令牌。然而,攻击者通常使用令牌窃取,将其安全性从管理员级别提高到SYSTEM等级。如果帐户对远程系统有适当的权限,攻击者可以使用令牌对远程系统进行身份验证。
攻击者通常采用以下三种方法使用访问令牌进行攻击:
1·令牌模拟/盗窃:对手创建新的访问令牌复制现有令牌DuplicateToken(Ex)。然后用这个令牌ImpersonateLoggedOnUser,允许调用线程模拟已登录用户的安全上下文,或用于调用线程模拟已登录用户的安全上下文SetThreadToken将模拟令牌分配到线程上。当目标用户在系统上有非网络登录会话时,这种方法非常有用。
2·使用令牌创建过程-攻击者使用令牌创建过程DuplicateToken(Ex)创建一个新的访问令牌,然后与之和解,CreateProcessWithTokenW在模拟用户安全的上下文下,共同创建新流程并运行。这对于在其他用户的安全上下文下创建新流程非常有用。
3·制作和模拟令牌——攻击者有用户名和密码,但用户没有登录到系统。然后,对手可以使用它。LogonUser该功能为用户创建登录会话。该函数将反馈新会话的访问令牌副本,攻击者可以SetThreadToken将令牌分配到线程。
任何标准用户都可以使用任何标准用户runas命令和WindowsAPI创建模拟令牌的函数。它不需要访问管理员账户。
Metasploit的Meterpreter有效负载允许任何令牌操作,并使用令牌模拟来增强特权。CobaltStrike信标有效载荷允许模拟任何令牌或创建令牌。
检测方法
如果攻击者使用标准命令行壳,分析师可以通过审查命令行活动来检测令牌操纵的行为。具体来说,分析师应该寻找runas使用命令。Windows默认情况下,不要使用详细的命令行日志记录。
如果攻击者直接调用Windows令牌API如果负载有效,分析人员只能通过仔细分析用户的网络活动、检查操作过程以及与其他端点和网络行为的关联来检测令牌操作行为。
有效负载可以用很多WindowsAPI调用来操纵访问令牌(例如)LogonUser,DuplicateTokenEx和ImpersonateLoggedOnUser。请参考参考WindowsAPI页面以获取更多信息。
查询系统获取过程和线程的令牌信息,并查找其不一致性。例如,用户有模拟本地的信息SYSTEM账户进程。
Windows使用访问令牌来确定正在运行的应用所有权。用户可以操纵访问令牌,使正在运行的应用看起来像启动应用用户本人一样。
版权声明: SafePloy安策利用网络资源获取的信息安全资料加上公司技术人员的理解整理产出的技术交 流文档,如有版权意见,请及时告知安策公司,我们将及时查证纠正错误,谢谢支持。有问题请及时电邮 market@ SafePloy.com