其他分享
首页 > 其他分享> > PowerUp攻击模块讲解

PowerUp攻击模块讲解

作者:互联网

PowerUp是Privesc模块下的一个脚本,功能相当强大,拥有众多用来寻找目标主机Windows服务漏洞进行提权的实用脚本
通常,在Windows下可以通过内核漏洞来提升权限,但是,我们常常会碰到无法通过内核漏洞提权所处服务器的情况,这个时候就需要利用脆弱的Windows服务提权,或者利用常见的系统服务,通过其继承的系统权限来完成提权等,此框架可以在内核提权行不通的时候,帮助我们寻找服务器的脆弱点,进而通过脆弱点实现提权的目的。

PowerUp下的模块:

1.Invoke-AllChecks

该模块会自动执行Powerup下所有的脚本来检查目标主机,输出一下命令即可执行该模块
命令:Invoke-AllChecks
在这里插入图片描述
成功检测系统漏洞

2.Find-PathDLLHijack

该模块用于检查当前%PATH%的哪些目录是用户可以写入的
命令:Find-Pathdllhijack
在这里插入图片描述
成功检查系统的可写目录

3.Get-ApplicationHost

该模块可利用系统上的applicationHost.config文件恢复加密过的应用池和虚拟目录的密码
命令:get-ApplicationHost
或者 get-ApplicationHost | Format-Table -Autosize #列表显示
在这里插入图片描述

4.Get-RegistryAlwaysInstallElevated

该模块用于检查AlwaysInstallElevated注册表项是否被设置,如果已被设置,意味着MSI文件是以SYSTEM权限允许的
命令:Get-RegistryAlwaysInstallElevated
在这里插入图片描述

5.Get-RegistryAutoLogon

该模块用于检测Winlogin注册表的AutoAdminLogon项有没有被设置,可查询默认的用户名和密码
命令:Get-RegistryAutoLogon

6.Get-ServiceDetail

该模块用于返回某服务的信息
命令:Get-ServiceDetail -ServiceName Dhcp
在这里插入图片描述
成功获取DHCP服务的详细信息

7.Get-ServiceFilePermission

该模块用于检查当前用户能够在哪些服务的目录写入相关联的可执行文件,我们可以通过这些文件实现提权
命令:Get-ServiceFilePermission
在这里插入图片描述
不知道为什么…

8.Test-ServiceDaclPermisssion

该模块用于检查所有可用的服务,并尝试对这些打开的服务进行修改,如果可以修改,则返回该服务对象
命令:Test-ServiceDaclPermission
在这里插入图片描述

9.Get-ServiceUnquoted

该模块用于检查服务路径,返回包含空格但是不带引号的服务路径
此处利用Windows的一个逻辑漏洞,即当文件包含空格时,Windows API会被解释为两个路径,并将这两个文件同时执行,有时可能会造成权限的提升,比如C:\program files\hello.exe会被解释为C:\program.exe和C:\program files\hello.exe
命令:Get-ServiceUnquoted
在这里插入图片描述
不知道为什么…

10.Get-UnattendedInstallFile

该模块用于检查以下路径,查询是否存在这些文件,因为这些文件里可能含有部署凭据,这些文件包含:
Sysprep.xml
Sysprep.inf
Unattended.xml
Unattend.xml
命令:Get-UnattendedInstallFile
在这里插入图片描述

11.Get-ModifiableRegistryAutoRun

该模块用于检查开机自启的应用程序路径和注册表键值,然后返回当前用户可修改的程序路径,被检查的注册表键值有以下这些:
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunService
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceService
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunService
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnceService
命令:Get-ModifiableRegistryAutoRun
在这里插入图片描述
成功检查应用程序的路径和注册表键值

12.Get-ModifiableScheduledTaskFile

该模块用于返回当前用户能够修改的计划任务程序的名称和路径
命令:Get-ModifiableScheduledTaskFile
在这里插入图片描述
成功检查计划任务程序

13.Get-Webconfig

该模块用于返回当前服务器上web.config文件中的数据库连接字符串的明文
命令:get-webconfig
在这里插入图片描述
成功检查web.config中的数据库

14.Invoke-ServiceAbuse

该模块通过修改服务来添加用户到指定组,并可以通过设置-cmd参数触发添加用户的自定义命令
命令:Invoke-ServiceAbuse -ServiceName VulnSVC #添加默认账号
Invoke-ServiceAbuse -ServiceName VulnSVC -UserName “TESTLAB\john” #指定添加的域账号
Invoke-ServiceAbuse -ServiceName VulnSVC -UserName backdoor -Password password -LocalGroup “Administrators” #指定添加用户,用户密码以及添加的用户组
Invoke-ServiceAbuse -ServiceName VulnSVC -Command “net …” #自定义执行命令

15.Restore-ServiceBinary

该模块用于恢复服务的可执行文件到原始目录
命令:Restore-ServiceBinary -ServiceName VulnSVC

16.Test-ServiceDaclPermission

该模块用于检查某个用户是否在服务中有自由访问控制的权限,结果会返回true或false
命令:Restore-ServiceDaclPermission -ServiceName VulnSVC

17.Write-HijackDll

该模块用于输出一个自定义命令并且能够自我删除的.bat文件到$env:Temp\debug.bat,并输出一个能够启动这个bat文件的DLL

18.Write-UserAddMSI

该模块用于生成一个安装文件,运行这个安装文件后会弹出添加用户的对话框
命令:Write-UserAddMSI
在这里插入图片描述
在这里插入图片描述

19.Write-ServiceBinary

该模块用于预编译C#服务的可执行文件,默认创建一个管理员账号,可通过Command定制自己的命令
命令: Write-ServiceBinary -ServiceName VulnSVC #添加默认账号
Write-ServiceBinary -ServiceName VulnSVC -UserName “TESTLAB\john” #指定添加的域账号
Write-ServiceBinary -ServiceName VulnSVC -UserName backdoor -Password password -LocalGroup “Administrators” #指定添加用户,用户密码以及添加的用户组
Write-ServiceBinary -ServiceName VulnSVC -Command “net …” #自定义执行命令

20.Install-ServiceBinary

该模块通过Install-ServiceBinary写一个C#的服务用来添加用户
命令: Install-ServiceBinary -ServiceName DHCP #添加默认账号
Install-ServiceBinary -ServiceName VulnSVC -UserName “TESTLAB\john” #指定添加的域账号
Install-ServiceBinary -ServiceName VulnSVC -UserName backdoor -Password password -LocalGroup “Administrators” #指定添加用户,用户密码以及添加的用户组
Install-ServiceBinary -ServiceName VulnSVC -Command “net …” #自定义执行命令
在这里插入图片描述
Write-ServiceBinary与Install-ServiceBinary的不同是,前者生成可执行文件,后者直接安装服务

标签:PowerUp,Get,Windows,讲解,VulnSVC,ServiceName,模块,ServiceBinary
来源: https://blog.csdn.net/bring_coco/article/details/113110165