《域环境渗透》02. 权限介绍

本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《软件工具录》。

本专栏文章侧重于对 Windows 工作组与域环境的渗透攻击手法。

1:权限简介

计算机中有两个概念:用户用户组

  • 一个用户组中可以有多个用户,一个用户可以属于多个用户组
  • 通过给用户组划分不同的权限,用户就有了不同的权限

电脑的身份有两种,第一种是工作组(也称为 “ 本地 ”),第二种是。默认情况下电脑都是工作组身份。

  • 工作组所有的账号密码等信息都存放在本地电脑文件中。不管有没有网络,开机输入本地账号密码都可以登录到电脑
  • 域的用户信息存放在 DC(域控)上,添加用户或修改密码等操作都会经过域控

机器加入域之后,可以选择使用域内用户登录,也可以使用工作组用户登录:

  • 工作组用户登录,通过本地存放的文件进行本地校验,主要是对比 NTLM HASH 值。登录方式:机器名\用户名
  • 域内用户登录,通过 DC 的认证之后才能登录,主要是使用 Kerberos 认证。登录方式:域名\用户
  • 加入域后,可以设置禁止工作组用户登录机器

2:工作组权限

常见本地用户组

  • Administrators:管理员组
  • Users:普通用户组
    • 默认不包括 Administrators 组的成员
  • Guests:来宾组
    • 比 Users 组有更多限制
  • SYSTEM:系统服务组
    • 拥有和 Administrators 组类似的权限
    • 在查看用户组信息时不会被显示,也不允许任何用户加入
    • 主要是保证系统服务的正常运行,赋予系统及系统服务权限

2.1:最高管理员

最高管理员:Administrator 用户。默认属于 Administrators 组。

  • Administrator 用户的 SID 以 500 结尾
  • 所有操作都无需 UAC 认证(User Account Control,用户帐户控制)
  • Administrator 用户在家庭版系统中默认禁用;在专业版系统中默认开启;在服务器中默认开启

2.2:普通管理员

普通管理员:加入了 Administratorts 组但并非 Administrator 用户的其他用户。

  • 普通管理员虽然也是管理员,但部分操作在执行前需要手动确认,因为有 UAC

2.3:普通用户

普通用户:加入了 Users 组的用户。

  • 无管理员权限,进行高权限操作时需要 UAC 认证后才可以执行(需输入管理员账号和密码)
  • 新建的用户一般默认属于 Users 组

2.4:系统最高用户

系统最高用户:SYSTEM 用户。默认属于 SYSTEM 组。

  • 拥有和 Administrator 用户类似的权限
  • 用户密码是系统随机生成的,无法获取

Administrator 用户和 SYSTEM 用户的权限解释:

  • SYSTEM 用户与 Administrator 用户的权限没有大小之分,两个用户之间的相互切换也很容易
  • Administrator 用户是系统内置的管理员用户,安装程序、修改系统设置等一般都是以这个权限身份运行,某些操作也只有这个权限身份可以进行
  • SYSTEM 用户拥有系统本身的权限,winlogon.exe、lsass.exe 等系统进程需要以这个权限身份运行,另外,注册表某些操作也只有这个权限身份可以进行

3:域内权限

常见域内用户组

  • Administrators:管理员组
    • 组内用户可以不受限制的访问域内资源
    • 组内用户可以更改 Domain admins 组、Enterprise Admins 组的成员
  • Domain Admins:域管理员组
    • 隶属于 Administrators 组,继承了 Administrators 组的所有权限
    • 该组会被默认添加到每台域成员计算机的 Administrators 本地用户组,由此获得域内所有计算机权限
  • Enterprise Admins:企业管理员组
    • 是域森林或根域中的一个组,在域森林中的每个域内都是 Administrators 组的成员
    • 有权管理林内所有域
  • Domain Users:域用户组
    • 包括 Administrator 用户在内的域成员都加入了此组
    • 该组会被默认添加到每台域成员计算机的 Users 本地用户组
  • Domain Guests:域来宾组
    • 比 Domain Users 组有更多限制
  • Domain Computers:域计算机组
    • 除了域控,其他所有域成员机器都会被添加到此组

3.1:最高管理员

最高管理员:Administrator 用户。默认属于 Administrators 组。

  • Administrator 用户的 SID 以 500 结尾
  • 所有操作都无需 UAC 认证
  • 默认会被添加到 Domain Admins 组;可以手动添加至 Enterprise Admins 组

3.2:普通管理员

普通管理员:加入了 Administratorts 组但并非 Administrator 用户的其他用户。

  • 普通管理员虽然也是管理员,但部分操作在执行前需要手动确认,因为有 UAC

3.3:普通用户

普通用户:加入了 Domain Users 组的用户。

  • 无管理员权限,进行高权限操作时需要 UAC 认证后才可以执行(需输入管理员账号和密码)
  • 新建的用户一般默认属于 Domain Users 组

3.4:机器账户

机器账户:默认属于 Domain Computers 组

  • 机器账户与具体的计算机或设备相关联,用于代表计算机进行域认证和域资源访问
  • 在域环境中,每台设备都有一个机器账户,用于身份验证和授权
  • 机器账户的名称通常以设备名称或 GUID 作为前缀,例如 “ WORK-PC$

系统最高用户(SYSTEM)和机器账户的解释:

  • 当设备加入到域后,SYSTEM 用户的密码会同步到域控上,作为机器账户的密码
  • 在域环境中,计算机可以使用 SYSTEM 用户充当机器账户的角色,作为其身份进行域认证和授权
  • 需要明确的是,SYSTEM 用户和机器账户仍然是两个不同的概念:SYSTEM 用户是计算机上的本地特殊用户;机器账户是域环境中的用户

当拿下一台内网加入域的主机,但是主机使用本地用户登录时,可以尝试提权到 SYSTEM 用户,就可以在域内充当机器账户访问域资源了。

4:补充

4.1:UAC 认证

UAC(User Account Control,用户帐户控制),主要功能是当进行一些可能影响系统安全的操作时,会自动触发 UAC,用户确认后才能执行。

UAC 是微软在 Windows Vista 和 Windows 7 中引用的新技术。
因为大部分的恶意软件、木马病毒、广告插件等在进入计算机时都会有以下操作:将文件复制到 Windows 或 Program Files 等目录、安装驱动等;而这些操作都会触发 UAC,用户可以在 UAC 提示时来禁止这些程序运行。

UAC 有两种形式:

  • 许可提示:简单说就是只需要用户确认禁止还是允许,不用输入管理员账号密码
  • 凭据提示:需要输入管理员账号密码才能操作

UAC 的触发条件:

  • 修改 Windows Update 配置
  • 增加、删除、修改用户帐户
  • 改变 UAC 设置
  • 安装或卸载程序
  • 安装设备驱动程序
  • 增加或修改注册表
  • 将文件移动或复制到 Program Files 或是 Windows 目录;
  • 访问其他用户目录

UAC 严格程度分为四种:

  • 始终通知
  • 仅在程序尝试更改计算机时通知
  • 仅当程序尝试更改计算机时通知(不降低桌面亮度)
  • 从不通知

4.2:内网操作环境

一般突破外网边界,控制目标机器的手段有两种:

  • 通过漏洞,使用 Webshell 或其他远控工具进行连接
  • 通过钓鱼或近源,使用 CobaltStrike 进行连接

所控制的目标网络环境可能为:

  • 目标机器放在云上(这种情况基本无内网,除非找到关键信息)
  • 目标机器在公司本地机房(这种就是内网环境)

获取某台主机的控制权后,根据权限分类可分为以下四种情况(可通过 whoami 命令查询):

  • 本地普通用户
  • 本地管理员用户
  • 域内普通用户
  • 域内管理员用户

在上述四种权限情况中,如果主机加入了域:

  • 本地普通用户只能查询本地工作组的相关信息,不能查询域内信息
  • 本地管理员用户和域内用户可以查询域内信息



落花有意随流水,流水无心恋落花。

——《警世通言》(明)冯梦龙