域内令牌窃取伪造

一、域内令牌窃取伪造

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

域内令牌窃取伪造_第1张图片

user2是域普通用户

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

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

 域内令牌窃取伪造_第2张图片

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

域内令牌窃取伪造_第3张图片

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

域内令牌窃取伪造_第4张图片

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

#mimikatz
token::list

域内令牌窃取伪造_第5张图片

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

域内令牌窃取伪造_第6张图片

 查看当前身份

#mimikatz
token::whoami

 模拟域管权限

#mimikatz
token::Elevate /domainadmin

域内令牌窃取伪造_第7张图片

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

域内令牌窃取伪造_第8张图片

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

#mimikatz
token::revert

域内令牌窃取伪造_第9张图片

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

三、防御策略

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


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

你可能感兴趣的:(内网渗透,安全)