《域环境渗透》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
命令查询):
- 本地普通用户
- 本地管理员用户
- 域内普通用户
- 域内管理员用户
在上述四种权限情况中,如果主机加入了域:
- 本地普通用户只能查询本地工作组的相关信息,不能查询域内信息
- 本地管理员用户和域内用户可以查询域内信息
落花有意随流水,流水无心恋落花。
——《警世通言》(明)冯梦龙