[TOC]
内网渗透 - 介绍
在拿到目标服务器的控制权后,通过一些内网技术比如:信息收集、内网代理、权限提升和横向移动这些技术,对目标的内网环境进行渗透,最终拿到内网里面其他主机(域控制器和运维主机等等)的权限。
内网环境
学习之前先学习内网中的一些工作环境。
一、工作组(Work Group)
Windows自带的一个团队组织方式,可以按照不同的要求将一群计算机分到不同的组中,相当于是对主机的一个分类,让组织的网络更具有层次性。
这样只需要在“网上邻居”中找到对应的工作组,就可以发现里面的所有计算机和访问该组中的一些资源。
二、域(Domain)
这个是相对于“组”的一个拓展。更高级的主机资源管理模式,少也合适,多也合适的模式
1、组的缺点
通过组来对主机进行划分适合资产较小或者计算机数量较少且对安全管理控制不用很严格的情况下。
工作组没有中心化的用户与权限管理。每台计算机的用户和权限需单独管理,不利于统一管理和控制,所以不适合资产较大或者计算机数量较多的环境。
工作组模式下计算机之间的文件和打印机共享需要单独配置,较为麻烦,且安全控制较弱。这在计算机数量较多的环境下管理代价和安全风险都较大。
- 工作组没有活动目录,用户登录身份与配置文件只能局限在每台计算机内。这使得用户使用体验较差,且不利于集中的管理和控制。
- 工作组下无法实现细粒度的权限控制和安全策略,系统文件和服务缺乏集中化的安全基线和修补管理。这使得工作组环境下的安全性较差。
- 工作组模式没有系统日志集中化管理功能,事件日志记录在每台计算机内,不利于相关事件的关联分析和审计,带来一定的安全隐患。
在一个域中,一些安全主体都在一个或者多个域控制器的中央数据库中注册,当域用户需要想访问域中的资源时,必须先通过域控制器进行身份验证。
域用户在域中的身份决定了域用户对域中的资源有啥样的访问权限。
一些常见安全主体:
- 用户账户
- 用户组
- 计算机
- 打印机
- ………………
2、分类
域拥有常见的四种组织方式:
- 单域
- 父域和子域
- 域树
- 域林
a . 单域
网络环境中只有一个域,适合计算机数量少、地理位置固定的小规模组织中。
b . 父域和子域
在一个域中划分出多个域,被划分的域称为父域,划分出来的域称为子域。比如一个部门在不同的地理位置,就可以把不同的分公司放到不同的子域,部门通过不同的域来管理自己的资源,同时可以拥有自己的安全策略。从命名上看,就是往前加多级域名。
c . 域树
多个域通过信任关系组建成的域集合,所有的域共享同一表结构和配置,所有的域名形成一个连续的名字空间。
管理员只能管理自己所在域,如果俩域中需要互相访问则需要建立信任关系。
d . 域林
由一个或者多个没有形成连续命名空间的域树组成的域树合集。和树的区别就是林中没有连续的命名空间。但是所有的域仍然共享同一表结构、配置和全局目录
三、域控制器(Domain Controller,DC)
域环境核心的服务器,负责响应域中的安全身份认证请求,允许或者拒绝发出请求的主机访问资源,以及对用户进行身份验证、存储用户账户信息并执行安全策略等任务。
该服务器包含一个活动目录数据库,存储着整个域中的账户密码计算机等信息,一般称为“域控”。一个域可以拥有多个域控,每一个单独存储一个活动目录数据库副本(可写的),每一次修改都可以向其他域控进行同步,这样可以保证在一台瘫痪的情况下不影响整个域的正常工作。
活动目录(Active Directory,AD)
安装在域控制器上,为整个域环境提供集中式管理服务的组件。
一、主要存储内容
域环境中各种对象的信息
- 域
- 用户
- 用户组
- 计算机
- 组织单位
- 共享资源
- 安全策略
- ………………
目录数据存储在域控制器的Ntds.dit
文件中。
二、提供的主要功能
- 计算机集中管理:集中管理所有加入域的服务器和客户端计算机,统一下发组策。
- 用户集中管理:集中管理域用户、组织通讯录、用户组、对用户进行统一的身份认证,资源授权工作。
- 资源集中管理:集中管理域中的打印机、文件共享服务等网络资源。
- 环境集中配置:集中配置域中的计算机的工作环境、统一计算机桌面、统一的网络配置连接、安全配置等等
- 应用集中管理:对域中的计算机统一推送软件,安全补丁,防病毒软件等,安装网络打印机等。
三、Ntds.dit
在域控制器上保存的一个二进制文件,式活动目录数据库,一般存放在路劲%SystemRoot%\ntds\ntds.dit
中。
1、包含信息
- 有关域用户
- 用户密码的hash
- 用户组
- 组成员身份
- 组策略信息
- …………
使用存储在SYSTEM文件的密钥对上述hash进行加密。在工作组环境中,用户的登录凭据存储在本地的SAM文件中。
四、目录服务和LDAP
1、活动目录
一种目录服务数据库,目录数据库实现的是目录服务,可以帮助用户快速准确的从目录中找到所需信息的服务。
将所有的数据组成一个有层次的树状结构,每个节点作为一个对象,这个对象的属性就是这个对象的所有信息,用户可以根据名称进行查找。
2、LDAP(lightweight directory access protocol)
轻量目录访问协议,用来访问目录数据库的一种协议,活动目录就是利用LDAP名称路径来描述对象在活动空间中的位置的。
如下图是一个经典的组织结构,呈一个完美的树形结构。
- 目录树:在一个目录数据库中,整个目录中的信息集可以表示为一个目录信息树。树的每一个节点是一个条目。
- 条目:每一个条目就是一条记录,每一个条目都有自己的唯一标识符DN,
- 绝对可辨识名称:DN,distinguished name。CN表示通用名,comman name,OU代表组织单位,DC代表域组件
域用户和机器用户
一、域用户
就是域环境中的用户,在域控制器中被创建,所有的信息都保存在活动目录中,域用户账户在域的全局组Domain user中,计算机本地用户位于本地User组中。当计算机加入域之后,全局组Domain user被添加到计算机本地的User组中,所以域用户可以在域中任何一台计算机登录,通过下面的命令
net user /domain
二、机器用户
特殊的一种域用户,查询活动目录时选中Domain Computer组的一台机器账户,查看他的ObjectClass属性,可以发现他是computer类的示例,是user的子类。
在域环境中,本地System用户对应的机器用户,一般就是"机器名+$"这种格式。
net group "Domain Computers" /domain
所以说进行横向渗透之前需要提权到System用户权限。用管理员权限打开cmd是不行的,必须要拿到system权限。
三、域用户组的分类和权限
在域中将具有相同权限的用户划分一组,这样只需要对用户组添加权限,组里的所有成员就都有了。
1、组用途
用户账号的集合,常见一下两组
- 通讯组:给通信组发信息时,组内的用户都能收到
- 安全组:对一个组赋予权限,则组内都是那个权限
2、安全组的权限
根据组的作用范围(在域树或者域林中应用的范围),安全组可以划分为域本地组,通用组和安全组。
a. 域本地组(Domain Local Group)
域本地组作用于本域,主要用于访问同一个域中的资源,除了本组内的用户,还可以包域林内的任何一个域和通用组、全局组的用户,但无法包含其他域中的域本地组。
常见的系统内置的域本地组及其组权限:
- Administrators:管理员组,改该组的成员可以不受限制地存取计算机/域的资源。不仅是最具有权限的一个组,也是在活动目录和域控制器中默认具有管理员权限的组,是域森林中强大的服务管理组
- Remote Desktop Users:远程登录组,处于远程登录组中的用户才有权限使用远程登录服务。
- Print Operators:打印机操作员组,位于该组内的成员可以管理网络中的打印机,包括建立、管理和删除网络打印机,并可以在本地登录和关闭域控制器。
- Account Operators:账号操作员组,该组的成员可以创建和管理该域中的用户和组并为其设置权限,也可以在本地登录域控制器,但是,不能更改属于 Administrators 或 Domain Admins 组的账户,也不能修改这些组。在默认情况下,该组中没有成员
- Server Operators:服务器操作员组,该组的成员可以管理域服务器,其权限包括建立/管理/删除任意服务器的共享目录、管理网络打印机、备份任何服务器的文件、格式化服务器硬盘、锁定服务器、变更服务器的系统时间、关闭域控制器等。在默认情况下,该组中没有成员。
- BackupOperators,备份操作员组,改组的成员可以在域控制器中执行备份和还原操作,并可以在本地登录和关闭域控制器。在默认情况下,该组中没有成员。
如果域林总的多个域的用户想要访问一个域的资源,可以从其他域向这个域的域本地组添加用户、通用组和全局组。
执行命令
Adfind.exe -b dc=hack-my,dc=com -bit -f "(&(objectClass=group)(grouptype:AND:=4))" cn -dn
可以查看hack-my.com域中的所有域本地组。
b. 通用组
通过命令,可以查看hack-my.com域内的所有通用组
Adfind.exe -b dc=hack-my,dc=com -bit -f "(&(objectClass=group)(grouptype:AND:=8))" cn -dn
无法包含任何一个域中的域本地组,其他的都可以。对应到实践就是通用组一般对域林中所有域的资源都有访问权限,而不需要考虑通用组所在的位置。
两个的常见的系统内置的通用组及其组权限:
- Enterprise Admins:企业系统管理员组,是域森林根域中的一个组。Enterprise Admins 组在域森林中的每个域内都是 Administrators 组的成员,因此对所有域控制器都有完全访问控制权。
- Schema Admins:架构管理员组,是域森林根域中的一个组,可以修改活动目录和域森林的模式。Schema Admins 组是为活动目录和域控制器提供完整权限的域用户组,因此,该组成员的资格是非常重要的。
c. 全局组
介于域本地组和通用组之间的组,可以作用于域林中的所有域。对应到实践就是全局组一般对域林中所有域的资源都有访问权限,而不需要考虑通用组所在的位置。
查询域内的所有全局组:
Adfind.exe -b dc=hack-my,dc=com -bit -f "(&(objectClass=group)(grouptype:AND:=2))" cn -dn
Domain Admins,管理员组,该组的成员在所有加入域的服务器、域控制器和活动目录中均默认拥有完整的管理员权限。因为该组会被添加到自己所在域的 Administrators 组中,因此可以继承 Administrators 组的所有权限。同时,该组默认会被添加到每台域成员计算机的本地 Administrators 组中,这样,Domain Admins 组就获得了域中所有计算机的所有权。如果希望某用户成为域系统管理员,建议将该用户添加到 Domain Admins 组中,而不要直接将该用户添加到 Administrators 组中。
Domain Users,域用户组,该组的成员中是所有的域用户。在默认情况下,任何由我们建立的更户账号都属于 Domain Users 组。因此,如果想让所有的账号都获得某种资源在取权限、可以将该权限指定给域用户组,或者让域用户组属于具有该权限的组。
Domain Computers,域成员主机组,该组的成员是域内所有的域成员主机,任何由我们建立的计算机账号都属于 Domain Computers 组。
Domain Controllers,域控制器组,该组成员包含了域内所有的域控制器。
Domain Guests,域访客用户组,该组内的成员默认为域访客用户,域成员计算机会自动将此组加到本地的 Guests 组中。
Group Policy Creator Owners:此组成员可以修改域的组策略。
DnsUpdateProxy:此组成员允许替其他客户端(如DHCP服务器)执行动态更新的 DNS 客户端。
Read-only Domain Controllers:此组中的成员是域中的只读域控制器
组织单位(Organization Unit,OU)
对用户设置权限时,可以先拉入一个组,然后对这个组赋予权限,再把用户拉进来,这个组一般称之为组织单位。
访问控制
一、Windows访问控制模型(Access Control Model)
主要由访问令牌(Access Token)和安全描述符(Security Descriptor)两部分组成,分别由访问者和被访问者持有。
通过比较两者可以判断访问资源的对象有没有权限。
1、访问令牌
用户登录时,Windows对用户进行身份验证,通过验证就给一个访问令牌,之后的该用户执行的每一个进程都有这个令牌的副本,每当线程或者进程于安全对象交互或者尝试执行需要特权的系统任务的时候,Windows都会使用此访问令牌标识并确定关联的用户。
a. 主要内容
- 用户账户的SID,Security ID,安全标识
- 用户所属组的SID
- 当前登录会话的登录SID
- 用户或用户所属的用户组持有的特权列表
- 对象所有者的SID
- 对象所有者组的SID
- 用户主安全组的SID
- 访问令牌的来源
- 令牌类型,是主令牌还是模拟令牌
- 限制SID的可选列表
- 当前模拟等级
- …………
2、 安全描述符
当安全对象被创建时,操作系统会为其创建一个安全描述符,主要由SID和ACL(Access Control List,访问控制列表)组成,ACL又分为DACL和SACL两种。
二、访问控制列表(ACL)
主要作用就是访问权限控制,判断安全主体能不能访问该安全对象;日志记录功能,对成果与否进行日志记录
1、DACL
自主访问控制列表,安全对象的访问控制策略,定义了安全对象的访问控制策略,用于指定允许或者拒绝特定安全主体对该安全对象的访问控制,由一条条的访问控制项ACE条目构成,每条ACE定义了哪些用户或者组对该对象拥有什么控制权。一条ACE归纳为四个方向:
- 谁对这个安全对象有权限
- 拥有什么权限
- 能不能允许权限
- 能不能继承
2、SACL
系统反问控制列表,安全主体对安全对象的访问行为的审计策略。也是由一条条的ACE组成的,作用和DACL一样。
组策略
组策略是Windows环境下管理账户的一种手段,可以控制用户账户和计算机账户的工作环境。
主要实现了以下功能:
- 账户策略的配置:如密码长度,复杂程度
- 脚本的配置:
- 应用程序的安装与删除:用户登录或计算机启动时,自动为用户安装应用,自动修复应用的错误
- 文件夹重定向
- 限制访问可移动存储设备
- 用户工作环境的配置
- 其他系统设置等
本地组策略:适用于独立的而且非域环境的计算机。
一、组策略对象
由组策略容器和组策略模板构成
其中,组策略容器存储在活动目录的域分区,组策略模板放在:%SYSTEMROOT%\SYSVOL\sysvol\域名\Polices