令牌简介
令牌(Token)是指系统中的临时秘钥,相当于账户和密码,有了令牌就可以在不知道密码的情况下访问目标相关资源了,这些令牌将持续存在于系统中,除非系统重新启动
分类
- 授权令牌(Delegation token):交互式会话登陆(例:本地用户登陆、用户桌面等)
- 模拟令牌(Impersonation token):非交互式登陆(例:net use 访问共享文件)
两种token只在系统重启后清除
具有Delegation token的用户在注销后,该Token将变成Impersonation token,依旧有效
同样也可以这样理解,当前系统中的某个进程或线程能访问到什么样的系统资源,完全取决于你当前 进程是拿着谁的令牌。
默认情况下,我们列举令牌,只能列举出当前用户和比当前用户权限更低用户的令牌,其次,令牌窃取不等于提权!
使用场景
我们通过exp提权或者永恒之蓝等得到的权限即为System,假如我们利用mimikatz和hashdump不能获得administrator用户的密码,那我们只能通过令牌窃取进行权限转移,获得administrator用户的shell, 从而以administrator用户的身份启动某些服务(因为某些服务只能通过administrator用户启动)
CS令牌窃取
1、先上线域内普通用户test的主机,经过提权后当前权限为SYSTEM,但作为域用户想查看域控的文件显然是不行的

2、此时查看进程,也只能窃取到test用户或比他权限更低的用户令牌

3、若此时在test用户上,用管理员权限执行calc,此时令牌即为administrator权限

4、此时就可以通过窃取administrator,即域控的令牌,从而获取域控用户的权限(注入时对当前的权限有要求,被注入的进程权限不得高于当前进程的权限,这也是需要提权的原因所在)

5、注入成功后发现,此时就以域控的身份上线了CS,查看域控目录发现也可成功访问

MSF令牌窃取
跟上述一样,当提权到SYSTEM权限后,便可窃取administrator的令牌;除此之外上边提到过模拟令牌(Impersonation token),因此假设我们当前主机登陆过其他用户,并且属于注销状态,那么同样可以通过该模拟令牌进行窃取。
1、获取会话后提权到system权限
2、执行:
#使用模块
use incognito
#列出token
list_tokens -u

这三个主机都属于注销状态,因此这里也就相当于获取到了模拟令牌

3、窃取token
#窃取token
impersonate_token 'SENTIMENT\administrator'
4、此时就能访问域控主机内容了

令牌窃取
Metasploit 中的 incognito,其实是从 windows 平台下的 incognito 移植过来的。
项目地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
上边地址可能现在已经没了也可从github下载milkdevil/incognito2 (github.com)
1、列出token
incognito.exe list_tokens -u

2、窃取其他令牌
incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe

131

被折叠的 条评论
为什么被折叠?



