权限提升
一些情况下我们拿到了低权限,如www-data
,除了做内网穿透外,还可以尝试提升自己的权限,方便操作更多的功能、收集更多的信息(如dumphash。
常见的方法如下:
- 系统漏洞提权
- 数据库提权
服务劫持提权
bypassUAC
系统漏洞提权
如果没有及时打补丁,那么可以通过系统暴露的一些漏洞直接进行提权,也是最直接最好用的。
提权辅助页
查看系统打了哪些补丁:
systeminfo
wmic qfe get Caption,Description,HotFixID,InstalledOn
然后去网上找提权辅助页,把相关的信息复制进去,看看那些Exp是可以用的。
也可以用本地工具 wesng
、 Windows-Exploit-Suggester
比较全的Exp列表:windows-kernel-exploits
MSF
use post/windows/gather/enum_patches
set session 1
run
土豆提权
单独拧出来是因为这玩意儿实战中成功率高,好用,可以先盲打试试。
Rotten Potato:通过DCOM call来使服务向攻击者监听的端口发起连接并进行NTLM认证,需要SelmpersonatePrivilege权限
Jucy Potato:Rotten Potato的加强版,需要Selmpersonate、SeAssignPrimaryToken 两个权限
- PrintSpoofer:利用spoolsv.exe进程的RPC服务器强制Windows主机向其他计算机进行身份验证,需要SelmpersonatePrivilege、SeAssignPrimaryToken权限
- Sweet Potato:COM/WinRM/Spoolsv的集合版,也就是Juicy/PrintSpoofer,从Windows 7到windows10/windows server2019的本地服务到system特权升级
- GodPotato:Windows Server 2012 - Windows Server 2022 Windows8 - Windows 11,需要ImpersonatePrivilege权限
数据库提权
数据库提权就是利用执行数据库语句、利用数据库函数等方式提升服务器用户的权限。
在有数据库账号、密码的情况下,可以直接使用MDUT进行连接提权测试,也可以使用SqlKnife_0x727。
服务劫持提权
如果服务未运行,可以直接替换服务运行的程序,但大多数情况下服务在运行时是没法替换的,这个时候可以找服务加载的DLL,然后看看哪些DLL是可控的,对这些DLL进行劫持,劫持后重启服务就可以提权。(这个手法也经常用到权限维持
可以使用Powershell提权框架来探测脆弱的服务。
powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks | Out-File -Encoding ASCII check.txt}"
也可以用msf的 service_permissions 模块自动进行提权
use windows/local/service_permissions
bypassUAC
如果计算机的操作系统版本是Windows Vista或者更高
,在权限不够的情况下,访问系统磁盘的根目录(例如:C:\)、Windows目录、Program Files目录,以及读、写系统登陆数据库(Registry)的程序等操作,都需要经过UAC(User Account Control,用户账户控制)的认证才能进行。
可使用MSF的 bypassuac 模块自动进行Bypass
use exploit/windows/local/bypassuac