权限提升技术:攻防实战与技巧
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 权限与权限提升

1.1.1 权限的概念

从计算机的角度来说,权限是指系统或程序中的不同用户对文件夹、文件、服务和注册表等系统资源、对象和任务的访问与控制能力。通俗一点来讲,一个程序或系统可以供多个用户使用,权限就是不同用户被允许做的事情。

在一个计算机系统中,可以分配给用户的权限包括但不限于访问文件夹和文件、修改文件、安装软件、运行程序、访问网络资源和管理系统服务等。权限管理的目的是确保系统安全、稳定地运行。限制用户对系统资源和对象的访问权限,能够避免出现用户误操作或恶意操作而导致系统崩溃或数据丢失的情况。同时,权限管理也可以避免未经授权的用户访问系统资源和对象,从而确保系统的安全。因此,权限是保护计算机系统安全的一项重要机制。

图1-1所示是权限的概念图。其中,超级管理员具有对系统的完全控制权限,包括Web服务和数据库服务,而员工A只有对Web服务的完全控制权,员工B只有对数据库服务的完全控制权。

图1-1 权限的概念图

1.1.2 权限提升的概念

什么是权限提升?

权限提升(Privilege Escalation)技术,渗透测试人员常称之为“提权”,是指在计算机系统中,通过一些技术手段使一个用户账户或进程获得了超出其本来预期或授权范围的非法访问权限的一种攻击方式

权限提升攻击技术是渗透测试攻击链条中的重要一环,渗透测试人员在获取初始立足点(通常是普通用户权限,如WebShell、反弹的CmdShell或BashShell等)后,通过操作系统漏洞利用、错误的配置、不安全的服务权限等特定的技术手段,取得特定用户或超级管理员、程序、系统甚至整个网络的完全控制权。

1.1.3 权限提升的分类

根据渗透测试人员的目标,权限提升可以分为“水平权限提升”和“垂直权限提升”。

❑水平权限提升:是指获取到系统或程序的其他相同级别的用户账户的过程,可以掌控其他用户的功能、数据;或以当前立足点为跳板,攻陷内网其他机器的过程。该操作也被称为“横向移动”。

❑垂直权限提升:是指普通用户获取到系统或程序的最高权限的过程,可以接管系统的全部功能和数据,达到完全控制系统的目的。

图1-2所示为水平权限提升和垂直权限提升的概念图。渗透测试人员通过SQL注入、上传木马、命令执行等方法获得立足点,进而获取到数据库服务权限的过程,即为水平权限提升。渗透测试人员通过系统漏洞利用、系统配置错误等方法获取到超级管理员权限的过程,即为垂直权限提升。

图1-2 水平权限提升和垂直权限提升的概念图

1.1.4 权限提升的目的

为什么要提升权限?

在过去,提升权限主要是为了展示技术和证明能力。那时我们认为,在一项日常的渗透测试任务中,获取到最高权限才能算得上完美。然而,随着渗透测试技术的不断发展和网络安全形势的日益复杂,获取最高权限已经不再是终点。在某些情况下,获取最高权限可能只是任务的开始,因为渗透测试人员还需要维持权限并在网络中隐藏自己,以便在后续的任务中进一步扩大战果,获得更多资产和信息。获得最高权限可以使渗透测试人员更加游刃有余地进行后续工作,不受到干扰。

1.1.3节提过,提权是将低权限用户的访问控制权限提升到高权限用户的访问控制权限的过程,从而能访问受限资源。高权限用户包括但不限于系统超级管理员级别的账户、本地管理员账户、具有类似管理员权限的账户,以及可以访问特定资源和特定系统、执行特定功能的账户等。

取得更高级别账户的控制权后,可以对目标进行增、删、改、查(修改信息和系统配置,获取敏感数据,破坏系统信息,影响系统的正常运行等)等,这也为后渗透阶段中的权限维持、横向移动提供了更多的便利性和隐蔽性。因此,无论是渗透测试人员还是IT运维人员,都需要熟悉权限提升攻击技术中的常见漏洞和攻击方式,以便能够检测和防范此类攻击。

权限提升技术是一种渗透测试人员和红队成员必须要掌握的技能。