内网渗透测试理论学习之第三篇内网渗透权限提升

Posted 星球守护者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网渗透测试理论学习之第三篇内网渗透权限提升相关的知识,希望对你有一定的参考价值。

文章目录

在Windows中,权限大概分为四种:

  • User(普通用户权限,默认不允许修改系统的设置或用户资料)
  • Administrator(管理员权限,可以利用Windows的机制将自己提升为System权限)
  • System(系统权限,可以对SAM等敏感文件进行读取)
  • TrustedInstaller(最高权限,不涉及,作用于系统文件)

常见的提权方法有:

  • 系统内核溢出漏洞提权
  • 数据库提权
  • 错误的系统配置提权
  • 组策略首选项提权
  • Web中间件漏洞提权
  • DLL劫持提权
  • 滥用高权限令牌提权
  • 第三方软件/服务提权等。

一、内核溢出漏洞

使用whoami /groups查看当前权限。如果有Mandatory Label\\Medium Mandatory Level,说明是一个标准用户,需要提权至Mandatory Label\\High Mandatory Level管理员权限。

发现缺失补丁

systeminfo、
wmic qfe、Metasploit(post/windows/gather/enum_patches、post/multi/recon/local_exploit_suggester)、Windows-Exploit-Suggester、
PowerShell(Sherlock)

二、系统配置错误

Windows操作系统中的常见配置错误包括管理员凭据配置错误、服务配置错误、故意削弱的安全措施、用户权限过高等。

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

Windows系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。因此,如果一个低权限的用户对此类系统服务调用的可执行文件拥有写权限,就可以将该文件替换成任意可执行文件,并随着系统服务的启动获得系统权限。

服务正在运行且无法被终止:攻击者通常会利用DLL劫持技术并尝试重启服务来提权。

Metasploitservice_permissions模块使用两种方法来获得System权限:

  • 如果meterpreter以管理员权限运行,该模块会尝试创建并运行一个新的服务;
  • 如果当前权限不允许创建服务,该模块会判断哪些服务的文件或者文件夹的权限有问题,并允许对其进行劫持。

2、注册表键AlwaysInstallElevated

Windows允许低权限用户以System权限运行安装文件,如果启用此策略设置项,那么任何权限的用户都能以System权限来安装MSI文件。

Windows Installer是Windows操作系统的组件之一,专门用来管理和配置软件服务,其分为客户端安装服务(Msiexec.exe)和MSI文件两部分。
Windows Installer通过Msiexec.exe安装MSI文件包含的程序,双击MSI文件就会运行Msiexec.exe

3、可信任服务路径漏洞(Trusted Service Paths)

如果一个服务的可执行文件的路径没有被双引号引起来且包含空格(可信任服务路径),那么这个服务就是有漏洞的。

因为Windows服务通常都是以System权限运行的,所以系统在解析服务所对应的文件路径中的空格时,也会以系统权限运行。前提还是有对应目标的写权限。

如:C:\\Program Files\\Some Folder\\Service.exe寻找路径为C:\\Program.exeC:\\Program Files\\Some.exeC:\\Program Files\\Some Folder\\Service.exe

也是劫持的意思。

Metasploittrusted_service_path模块反弹的shell很快就会中断,这是因为当一个进程在系统中启动后,必须与服务控制管理器进行通信,如果没有进行通信,服务控制管理器会认为出现了错误,进而终止掉这个进程。因此,在终止前将它迁移到其他进程中(set AutoRunScript migrate -f 自动迁移)。

4、自动安装配置文件

域环境下批量部署可能会使用到配置文件,其中可能包含本地管理员的账号密码等信息,Metasploit的enum_unattend模块。

5、计划任务

基于杀毒软件的检测等,攻击者会尽量避免接触目标机器的磁盘,而AccessChk是微软官方提供的工具,一般不会引起杀毒软件的报警,所以经常会被攻击者利用。

还是劫持。

e.g. PowerUp(allchecks)

三、组策略首选项提权漏洞

SYSVOL是活动目录里面的一个用于存储域公共文件服务器副本的共享文件夹,是安装AD是自动创建的,主要用来存放登陆脚本、组策略数据及其他域控制器需要的域信息等。

为了方便地对所有的机器进行操作,网络管理员往往会使用组策略进行统一的配置和管理。
通过组策略统一修改的密码,虽然强度有所提高,但所有机器的本地管理员密码是相同的。
常见的组策略首选项(Group Policy Preferences,GPP):创建本地用户、数据源(DataSources.xml)、创建/更新服务(Services.xml)、计划任务(ScheduledTasks.xml)等。

管理员在域中新建一个组策略后,操作系统会自动在SYSVOL共享目录中生成一个XML文件,该文件保存了该组策略更新后的密码,但是使用AES256加密,但但是2012年微软公布了私钥,XML文件中关键词cpassword。

2014年官方发布了补丁,不再将密码保存到组策略首选项中…老洞

四、绕过UAC提权

Microsoft 自 Windows Vista 中引入了 UAC (User Account Control)机制并在 Windows 7 中对 UAC 机制进行了完善。**UAC 与 UNIX 中的 sudo 的工作机制十分相似。**平时用户以普通权限工作,当用户需要执行特权操作时,系统会询问他们是否要提升其权限。

UAC有四种设置要求:始终通知仅在程序试图更改我的计算机时通知我(默认)、仅在程序试图更改我的计算机时通知我(不降低桌面的亮度)、从不提示

BypassUAC有点这个意思:仅在程序试图更改我的计算机时通知我(默认) --> 从不提示。

防御:企业环境中防止绕过UAC最好的方法是不让内网机器的使用者拥有本地管理员权限,从而降低系统遭受攻击的可能性;家庭环境下设为始终通知,总是弹窗警告。

五、令牌窃取

令牌(Token)是指系统中的临时秘钥,相当于账户和密码,用于决定是否允许当前请求及判断当前请求是属于哪个用户的。

获取了令牌,就可以在不提供密码或其他凭证的情况下访问网络和系统资源

  • 访问令牌(Access Token)代表访问控制操作主体的系统对象。
  • 密保令牌(Security Token)也叫做认证令牌或者硬件令牌,是一种用于实现计算机身份校验的物理设备,例如U盾。
  • 会话令牌(Session Token是交互会话中唯一的身份标识符)。

伪造令牌攻击的核心是Kerberos协议。

如果目标系统中存在有效的令牌,可以通过Rotten Potato程序快速模拟用户令牌来实现权限提升

假设网络中设置了域管理进程,Metasploit使用ps寻找并使用migrate命令迁移至该进程,若成功了可以直接添加域管理员net user name pass /ad /domain,添加域管理员组net group "domain admins" name /ad /domain

meterpreteruse incognito

防御:补丁、禁止来路不明的文件、令牌时效性、加密存储和多重验证保护、加密链路传输。

以上是关于内网渗透测试理论学习之第三篇内网渗透权限提升的主要内容,如果未能解决你的问题,请参考以下文章

内网渗透测试理论学习之第四篇内网渗透域的横向移动

内网渗透测试理论学习之第一篇基础知识点

内网渗透测试理论学习之第五篇之Windows主机信息收集命令

MSF内网渗透系列2-权限提升

内网渗透--总结

测试网站搭建+渗透+审计之第三篇Swagger接口渗透测试