渗透测试之地基内网篇:域森林中权限提升(中) – 作者:dayuxiyou

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

渗透测试人员需谨记《网络安全法》,根据《网络安全法》所示,未经授权的渗透测试都是不合法的,不管是出于何种目的。红队渗透人员在进行渗透期间,渗透测试的行为和项目必须在被渗透方授予权限可渗透后,才可进行渗透测试操作。

如今有一家dayu公司,需要对自己的业务以及整体的内网框架体系进行隐患挖掘,授予权限我进行对dayu公司的渗透测试操作,在签署了双方的《渗透测试授权书》后,我开始了对dayu公司的渗透之旅。

跳开思维讲,我此篇内容是内网渗透篇章,通过我的专栏:

社工钓鱼 -> 免杀过全杀软 -> 内网渗透

那么我通过了社工钓鱼的各种方式,将钓鱼文件进行免杀后,成功钓鱼到了该公司外围人员计算机,并控制了该计算机权限获得shell,并成功登录对方电脑。

通过前期对域用户大量的信息收集,画出了相对应的简单网络拓扑图,下一步需要进攻子域控制器,思路如下:

域普通用户 -> 子域控制器 -> 父域控制器 ->辅域控制器

通过该思路进攻即可,还有另外一条思路:

域普通用户 -> 10.10.21.0/24二级区域 -> 继续延伸

渗透人员最爱系统之一有kali,还有各类windows集成的武器库系统,通过上期隐藏通信隧道技术已经在内网域森林中建立了一级隧道,今天我们就来对子域控制器进行提权,总结实战中会遇到的权限提升的各种方法,利用这些方法在内网中遨游!

不会权限提升技术,就无法对内网机器进行进一步的渗透!!

二、环境介绍

目前信息收集获得的网络情况:(模拟环境)
拓扑图简介
1617951156_606ff9b44db46812f65ba.png!small?1617951156955

为了更好的演示接下来的渗透和回看总拓扑图公司搭建环境情况:

单篇:渗透测试之地基内网篇:域森林中父子域和辅域用户搭建分析

接下来将演示分析内网中的权限提升各种方法,利用该方法在域森林中旅行!

三、管理员配置错误利用

1、系统服务权限配置错误

系统服务权限配置错误(可写目录漏洞)有如下两种可能:

1. 服务未运行:攻击者会使用任意服务替代原来的服务,然后重启服务。
2. 服务正在运行无法被终止:这种情况符合绝大多数的漏洞利用场景,攻击者通常会利用DLL劫持技术并尝试重启服务来提权。

1)导入PowerUP
1617951162_606ff9baac841c4c420d2.png!small?1617951163036

输入Get-ExecutionPolicy查看权限
输入Set-ExecutionPolicy UnRestricted修改权限
Import-Module .\PowerUP.ps1

该需要管理员用户执行cmd才可以修改安全机制!也有别的方法绕过!

2)绕过powershell安全机制
1617951168_606ff9c02bcb7408d5df9.png!small?1617951168519

powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1; Invoke-AllChecks}"

通过bypass绕过powershell的安全机制!目前未发现可利用服务!

3)拓展利用

1. Invoke-AllChecks 执行所有脚本来检查目标 2. Find-PathDLLHiJack 检查环境变量哪些目录是可以写入的 3. Get-ApplicationHost 该模块可以利用系统上applicationHost.config文件恢复加密过的应用池和虚拟目录的密码 4. Get-RegistryAlwaysInstallElevated 该模块用于检查AlwaysInstallElevated注册表项是否被设置,如果已被设置,以为是MSI文件是以SYSTEM权限运行的 5. Get-ServiceDetail 该模块用于返回某服务的信息 Get-ServiceDetail -ServiceName Dhcp 6. Get-ServiceFilePermission 用于检查当前用户能够在哪些服务目录写入相关联的可执行文件 Test-ServiceDaclPermission 该模块用于检查所有可用的服务,并尝试对这些打开的服务进行修改,并返回修改对象 7. Get-ServiceUnquoted 该模块用于检查服务路径,此处利用了Windows的逻辑罗东,当文件名包含空格时,WindowsAPI回解析为两个路径,并同时执行 8. Get-UnattendedInstallFile 该模块用于检查以下路径,这些文件中可能存在部署凭据 9. Get-ModifiableRegistryAutoRun 该模块用于检查开机自启的应用程序路径和注册表键值,并且返回当前用户可修改的程序路径 10. Get-ModifiableScheduledTaskFile 该模块用于返回当前用户能够修改的计划任务程序的名称和路径 11. Get-Webconfig 该模块用于返回服务器上web.config文件中的数据库连接字符串明文 12. Invoke-ServiceAbuse 该模块通过修改服务来添加用户到指定的组 13. Restore-ServiceBinary 该模块用于恢复服务的可执行文件到原始目录 14. Test-ServiceDaclPermission 该模块用于检查某个用户是否在服务中有自由访问控制的权限 15. Write-HijackDll 该模块用户输出一个自定义命令并且能够自我删除的bat文件到$env:Temp\debug.bat,并出出一个能够启动这个bat文件的DLL 16. Write-UserAddMSI 该模块用于生成一个安装文件,运行这个安装文件后会弹出用户的对话框 17. Write-ServiceBinary 该模块用于预编译C#服务的可执行文件,默认创建一个管理员账号 18. Install-ServiceBinary 该模块通过Wirte-ServiceBinary写一个C#服务来添加用户

通过以上的模块进行相对应的查询服务漏洞,从而提权!

2、注册表键

我这举了其中一个典型的案例来演练内网中注册表键的错误配置导致的权限提升。

注册表键AlwaylanalElvated是一个策略设置项。Windows 允许低权限用户以System权限运行安装文件。如果启用此策略设置项,那么任何权限的用户都能以NT AUTHORITY\SYSTEM权限来安装恶意的MSI文件。

PathsAlwaysInstallElevated漏洞产生的原因

该漏洞产生的原因是用户开启了Windows Installer特权安装功能:

1)在“运行”设置中输入”gpedit.msc”,打开组策略编辑器

组策略——计算机配置——管理模板——Windows组件——Windows Insaller——始终以提升权限进行安装:选择启用。

1617951182_606ff9cedc3cfa6c9a783.png!small?1617951185940

1617951205_606ff9e503fbecc9e4b8b.png!small?1617951215970

在windows组建-windows installer打开进行复现配置,选择启用!

2)设置完毕,会在注册表的以下两个位置自动创建键值“1”

运行输入regedit:
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstall Elevated
1617951212_606ff9ec1b09de9258da6.png!small?1617951215970

可看到选择启用后键值自动设置为“1”。

3)Windows Installer简介

Install是Windows 操作系统的组件之一,专门用来管理和配置软件服务。Windows Installer 除了是一个安装程序,还用于管理软件的安装管理软件组件的添加和删除,监视文件的还原、通过回滚进行灾难恢复等。

Windowrs Installer分为客户端安装服务(Msiexec.exe)和MSI文件两部分。Windows Installer通过Msiexec.exe安装MSI文件包含的程序。MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装和卸载软件时需要的大量指令和数据。Msiexec.exe用于安装MSI文件,一般在运行Microsoft Update安装更新或者安装一些软件的时候使用,占用内存较多。简单来说,双击MSI文件就会运行Msiexec.exe。

4)PowerUp实战演示

可以使用PowerUp的Get-RsigtyswiylstnlElvatee模块来检查注册表键是否被设置。如果AlwaysInstallElevated注册表键已经被设置,就意味着MSI文件是以System权限运行的。

1617951217_606ff9f1668f66942dec0.png!small?1617951217914

Import-Module .\PowerUp.ps1
Write-UserAddMSI

或者远程读取执行:
powershell -nop -exec bypass IEX (New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Get-RegistryAlwaysInstallElevated

可看到MSI文件是以System权限运行,那么开始进行提权攻击!

5)PowerUp安装MSI
1617951224_606ff9f86d3999add62ca.png!small?1617951226026

msiexec /q /i UserAdd.msi    #普通用户权限运行
/quiet    在安装过程中禁止向用户发送消息
/qn    不使用GUI
/i    安装程序

1617951228_606ff9fcd08d2390f28a1.png!small?1617951229170
1617951232_606ffa00f08bd6c30a01b.png!small?1617951233436成功利用添加用户!

也可以利用MSF:

也可以利用Msf的use exploit/windows/local/always_install_elevated完成上述操作

那么只要禁用注册表健ALwayslnstallElevated,就可以阻止攻击者通过MSI文件进行提权。

四、可信任服务路径漏洞

可信任服务路径(包含空格且没有引号的路径)漏洞利用了Windows 文件路径解析的特性并涉及服务路径的文件/文件夹权限(存在缺陷的服务程序利用了属于可执行文件的文件/文件夹的权限)。如果一个服务调用的可执行文件没有正确地处理所引用的完整路径名,这个漏洞就会被攻击者用来上

来源:freebuf.com 2021-04-08 13:46:03 by: dayuxiyou

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论