没有合适的资源?快使用搜索试试~ 我知道了~
第一百一十课:窃取,伪造模拟各种windows访问令牌[token利用]1
需积分: 0 0 下载量 181 浏览量
2022-08-03
13:22:57
上传
评论
收藏 2.67MB PDF 举报
温馨提示
试读
21页
如何借助 CobaltStrike 来窃取伪造当前机器指定系统进程中的用户访问令牌如何利用 meterpreter 自带的 incognito 模块来窃取伪造当
资源详情
资源评论
资源推荐
MITRE | ATT&CK 中文站
https://huntingday.github.io/
窃取
,
伪造模拟各种
windows
访问令牌
[token
利用
]
0x01 本节重点快速预览
访问令牌在 windows 中到底是干什么用的? 想成功窃取指定系统用户令牌的必要前提条件又是什么?
如何借助 CobaltStrike 来窃取伪造当前机器指定系统进程中的用户访问令牌
如何利用 meterpreter 自带的 incognito 模块来窃取伪造当前机器指定系统进程中的用户访问令牌
借助 incognito 以任意用户身份的访问令牌去执行任意 payload
利用 Invoke-TokenManipulation.ps1 无文件窃取指定用户身份令牌执行任意 payload
借助 Invoke-TokenManipulation.ps1 窃取 system 访问令牌以实现 mssql 本地免密码登录
通过 Tokenvator.exe 来窃取伪造模拟指定用户的访问令牌去执行任意 payload
最后一种方式就是通过 Mimikatz 来伪造指定用户的访问令牌,此处暂以同步目标域内的所有域用户密码 hash 为例
0x02 访问令牌在 windows 中到底是干什么用的以及想成功窃取指定系统用户令牌的必要前提条件又是什么
维基百科上的标准描述是这样的,访问令牌是 windows 用于确定指定进程或线程安全上下文的一种对象,讲的通俗一点就是这么个意思,当前系统中的某个进程或线程能访问到什么样的系统资源,完全取
决于你当前进程是拿着谁的令牌,比如,有些需要用管理员令牌的资源,你拿着普通用户的令牌肯定是访问不到了[暂且不要把它狭隘的理解平常我们所熟知的那个密码,密码只是所有认证方式里最简单粗暴
的一种,并不是唯一],众所周知,在 windows 中我们通常只会关注两种令牌,如下
一种就是授权令牌 [Delegation token],这种令牌通常用于本地及远程 RDP 登录
一种就是模拟令牌 [Impersonation token],这种则通常用于各种非交互式的登录,比如,net use ,wmi,winrm 等等...
注: 上面的这两种令牌,都会在系统重启以后被清除, 否则将会一直驻留在内存中,而授权令牌则会在用户注销以后自动被转为模拟令牌,但仍然可利用,至于更详细深度的理解,此处暂不多做说明,可自行去
参考微软官方文档,毕竟,本次的目的也并非要带大家写这样的工具
默认情况下,当前用户肯定是只能看到当前用户自己和比自己权限低的所有访问令牌,这无可厚非,现代操作系统在早期就是这样来设计用户空间 ACL 的,所以,如果你想看到系统中所有用户的访问令牌,
那就务必要将自己当前用户的权限提到一个特权用户的身份上,比如,windows 的 system 或者 administrator,这样你才能看到当前系统中所有用户的访问令牌,至此,我想我应该是把一些必要的利用前提
大致说清楚了
0x03 如何借助 CobaltStrike 来窃取伪造当前机器指定系统进程中的用户访问令牌
首先,既然是用 CobaltStrike,那我们肯定就要想办法先把 beacon 弹回来再说,这里暂且还是用我们之前提到的 aspx 执行 shellcode,来把 beacon 弄回来,而后再简单看下当前系统的详细基础配置信息
[08r2,后面要用 powershell,所以提前说明下],具体如下
访问 http://192.168.3.101:83/shellcode.aspx 触发执行 shellcode
beacon> shell systeminfo
接着,再简单的看下当前机器的基础网络配置,发现当前机器是处在目标域内网下的,我们都很清楚,对于一般性的域渗透来讲,在前期我们绝大部分的时间可能都会花在如何去搞到域管密码或者密码
hash 随后登到域控拿下整个目标域中的机器权限[至于如何 bypass 目标的各种入侵检测防护以及在后渗透中如何实现更隐蔽的权限维持,那些都是非常大的内容,此处暂且不说],此处想说明的主要还是另
一种不需要域管密码或者密码 hash 也能拿下域控权限的常用方式,具体是这样,先尝试提权拿下当前机器,假设在当前机器中就有域管进程[也就是说在这些进程中有域管的访问令牌],那么,此时我们就可以
通过窃取伪造域管令牌的方式去直接以域管的身份访问域控,这个效果其实是跟你拿着域管的密码或者 hash 直接 wmi 或者 net use 过去的效果是一模一样的,想必说到这里,大家对 windows 访问令牌的利
用应该都已经有个初步的认识了,下面我们就来简单看下具体的利用过程到底是怎样的,如下
beacon> shell ipconfig /all
我们在开头已经详细说明过,要想看到当前机器中的所有用户访问令牌,必须要先把自己提到一个系统特权身份上[对于windows来讲,一般情况下,都是指system权限],我们也看到了,当前回来的shell
权限只是一个很低的 web 服务权限,所以我们要先来尝试提下权,如下,提成功以后,就会弹回一个 system 权限的 shell,注意,这里仅仅只是个最简单的提权 demo[提权也并非今天重点,不多做说明],在实战
中,一般情况下都绝不会这么轻轻松松就能提成功,后续有机会再慢慢聊
beacon> getuid
beacon> elevate ms14-058 system
如下,拿到当前机器的 system 权限以后,我们就可以用它来尝试真正的干些活儿了
beacon> sleep 0
beacon> getuid
比如,我们现在就可以先去试下,直接去 dir 域控机器的 windows 目录,你会发现它提示没权限,这很正常,因为你当前还没有提供任何的认证凭据 [比如,域管的账号密码或者密码 hash,再或者域管令牌]
beacon> getuid
beacon> shell net view
beacon> shell dir \\2008R2-DCSERVER\admin$
那么,紧接下来的事情就很清晰了,首先,你得先去找下当前机器中的任意一个域管进程并确定其进程 id,因为我们现在已有了当前机器的 system 权限,所以,理论上你应该可以看到机器中的所有用户进
程,这其中就包括域管的,至于怎么去快速确定当前域内的哪些机器上可能存在域管进程,后续会再单独提供一些靠谱的思路,如下,我们发现了当前机器中有一个用域管起的 java 进程[其实是我事先起好的
tomcat 服务],注意此处进程身份前面显示的虽然是以本地管理员身份起的,但实际上 tomcat 是用域管的身份来运行的,有个众所周知的细节,需要稍微知道下,当一台机器加到某个域中时会自动往当前机器
的 administrators 组添加一个域管用户,这也就是为什么域管可以随意管理当前域内的任意一台机器的关键原因之一
beacon> ps
Ok,大致情况摸清楚以后,我们就先用 beacon 内置的 steal_token 工具,来尝试窃取上面那个 java 进程中的域管令牌,当看到提示模拟域管令牌成功后,此时我们再直接去 dir 域控的 windows 目录,发
现就可以正常访问了,这也就是我前面一直在说的,当前拥有什么样的访问令牌直接决定了你能访问到当前或远程机器中的哪些系统资源,至此,借助 CobaltStrike 来窃取伪造指定进程的用户访问令牌的简
单演示就说完了,实战中一般也都不会这么简单容易,某些 AV 可能还会是最大的障碍,这就需要团队配合或者自行解决了
beacon> steal_token 1892
剩余20页未读,继续阅读
叫我叔叔就行
- 粉丝: 23
- 资源: 323
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0