• 域内令牌窃取伪造


    一、域内令牌窃取伪造

    1、令牌(Token)是指系统中的临时密钥,相当于账户和密码,用于决定是否允许当前请求及判断当前请求是属于哪个账户的。获得了令牌,就可以在不提供密码或者其他凭证的情况下访问网络和系统资源。令牌会持续存在于系统内部,除非操作系统重新启动。

    2、令牌最大的特点是随机性和不可预测性。一般的攻击者或软件都无法将令牌猜测出来。访问令牌(Access Token)代表访问控制操作主题的系统对象。密保令牌(Security Token)也叫作认证令牌或硬件令牌,是一种用于实现计算机身份校验的物理设备。会话令牌(Session Token)是交互会话的唯一身份标识符。

    3、令牌的种类有两种:

    • Delegation Tokens(授权令牌):支持交互式登录
    • Impersonation Tokens(模拟令牌):支持非交互式登录

    4、令牌的数量取决于我们获取到的Shell的权限级别,权限越高,获取到的令牌数量就越多。如果攻击者伪造管理员的令牌,便可以拥有与它同等的权限。

    5、在普通域用户下进行提权,获取SYSTEM权限后,窃取域管的token,我们就可以获取域控权限。

    二、本地测试

    1、在本地搭建的域模拟环境,用于测试:pc1域控、pc2域主机。

    2、在pc2上执行命令,查看进程及对应的用户名

    tasklist /v

    user2是域普通用户

    3、使用runas 模拟域管运行某个程序,cmd下执行如下命令

    runas /noprofile /user:test.lab\administrator cmd

     

     4、此时,我们再查看进程,存在用户为域管的进程,达到我们的测试条件

     5、窃取域管票据,这里我们使用mimikatz。以管理员权限运行

     我们使用如下命令查看令牌

    1. #mimikatz
    2. token::list

     这里,有一点需要注意,我们使用本地管理员权限或者System权限,则可以查看其他用户令牌,若只使用普通权限执行,则只能看到当前用户令牌,如下图

     查看当前身份

    1. #mimikatz
    2. token::whoami

     模拟域管权限

    1. #mimikatz
    2. token::Elevate /domainadmin

     使用dcsync,此时已成功获取域管权限

    使用如下命令恢复令牌到初始状态

    1. #mimikatz
    2. token::revert

     恢复之后,再次使用dcsync发现已经无法成功获取hash

    三、防御策略

    对令牌的时效性进行限制,以防止散列值被破解后泄露有效的令牌信息。越敏感的数据,其令牌的实效性应该越短。对于令牌,应该采取加密存储及多重验证保护。使用加密链路SSL/TLS传输令牌,以防止中间人窃听。


    本文原理及防御部分为根据课程整理,在此用于学习记录。如有错误,还多批评。

  • 相关阅读:
    1.2、因特网概述
    LabVIEW什么时候需要使用DLL封装 Calling External APIs
    二叉搜索树相关题目总结(二) 力扣 Python
    Mybatis学习|Mybatis缓存:一级缓存、二级缓存
    类加载器分类以及著名的双亲委派机制
    计算机网络【UDP与TCP协议(三次握手、四次挥手)】
    树莓派开箱
    蜘蛛蜂优化算法SWO求解不闭合MD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)
    【11.1】【VP】Codeforces Round #730 (Div. 2)
    谁是卧底线下发牌器微信小程序源码下载,强大的自定义功能
  • 原文地址:https://blog.csdn.net/prettyX/article/details/126830379