H

域渗透之 Windows Access Token 攻击

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%

域渗透之 Windows Access Token 攻击​

Windows Access Token 简介​

Windows Access Token 概念​

微软的官方定义如下:
访问令牌是一个描述过程或线程的安全上下文的对象。令牌中的信息包括与过程或线程关联的用户帐户的身份和特权。
Windows访问令牌,一个描述过程或线程安全上下文的对象。在不同的用户登录到计算机后,将生成访问令牌。当用户创建过程或线程并不断复制时,将使用此令牌。这解释说,用户A会创建一个过程,但是该过程没有用户B的权限B。当用户注销时,系统将将主令牌切换为模仿令牌,并且不会清除令牌,并且只有在重新启动机器后才清除。
访问令牌分为两种类型(主令牌,模拟令牌)

Windows Access Token 分类​

1。主要令牌该令牌通常用于本地和远程RDP登录
2。模拟令牌通常用于各种非相互作用登录,例如Netuse,WMI,Winrm,Ett。

登录方式​

交互式登录
控制台登录(类型2)
RDP登录(类型10)
PSEXEC(类型2)
网络登录
WMI(3型)
winrm(3型)

Windows Access Token 组成​

用户帐户的安全标识符(SID)
用户属于的组的SID
登录SID用于标识当前登录会话
用户或用户组拥有的权限列表
所有者SID
主要群体的SID
访问控制列表
访问令牌的来源
令牌是主令牌还是模拟令牌
限制性小组段的可选列表
当前的仿真水平
其他统计数据

关于 SID​

的安全标识符分别为SID,分别为所有者和groupsID。所谓的SID是,每次我们创建一个用户或组时,系统都会为用户或组分配独特的SID。重新安装系统时,您还将获得独特的SID。 SID是唯一的,并且由于用户被删除,因此未分配给其他用户。请记住,SID总是独一无二的。 SIF取决于计算机名称,当前时间和当前用户状态线程所花费的CPU时间的总和,以确保其唯一性。
示例:S-1-5-21-1763234323-321265751-1234321-500(Whoami/用户)

Windows Access Token 产生过程​

使用凭据(用户密码) - 登录会话创建- Windows返回用户的SID和用户的SID - LSA创建访问令牌- 使用凭据成功身份验证-
20200511155641.png-water_print

后渗透中的令牌模拟​

010-10使用seel_token模拟令牌,rev2 self
20200511155846.png-water_print

cobalt strike 模拟令牌​

隐身模块,相同的Rev2自行恢复令牌
20200511160407.png-water_print

metasploit 模拟令牌​

获取任意进程的令牌权限​

模拟过程:
OpenProcess() - OpenProcessStoken() - ImpersonateLoggedOnuser() - deplicateTokenex() - createProcessWithTokenW()

手动令牌模拟​

20200511161046.png-water_print

openprocess​

20200511161136.png-water_print

openprocesstoken​

20200511161220.png-water_print

impersonateloggedonuser​

20200511161255.png-water_print

duplicatetokenex​

20200511161349.png-water_print

createprocesswithtokenw​

并非所有流程都可以操作
20200511161605.png-water_print

流程:仅获得系统权限
1
to there-object {$_。username-eq'nt Authority \ System' - 和$ _ownername -ne'nt授权\ System'} | select-object processname,processID |格式表
然后经过测试后,发现诸如CSRSS,Service,Wininit,SMSS等的代币失败了。
20200511162053.png-water_print

Bypass Protect Process​

使用Windows代币模糊安全UAC旁路
20200511162556.png-water_print
 
后退
顶部