笔记均来源《内网安全攻防 - 渗透测试实战指南》
工作组#
工作组像一个自由加入和退出的社团,没有集中管理作用,工作组里的所有计算机都是对等的。
域#
场景:200 台计算机的 SAM 数据库拥有 Alan 这个账户,突然 Alan 想要更换密码,必须进行 200 次更换密码的操作,但是有域更改一次密码即可。
域是一个有安全边界的计算机集合(一个域无法访问另一个域的资源)。用户想要访问域内的资源,必须以合法的身份登录域,而用户对域内的资源拥有什么权限,还取决于用户在域内的身份。
单域#
应用于地理位置固定的小公司
也就是说只有一个域,在一个域内,一般有至少两台域服务器,一台作为 DC,一台作为备份 DC,进行灾备。
父域和子域#
一个大公司的各个分公司位于不同的地点
多个域,第一个域称为父域,各分部的域称为子域
分公司可以通过自己的域管理自己的资源,出于安全策略的考虑
域树#
域树是多个域通过建立信任关系组成的集合,如果两个域之间需要互访,则需要建立信任关系。
域树内的父域与子域可以按照需要互相管理,还可以跨网络分配文件和打印机等设备及资源
域森林#
运用后来兼并的公司
多个域树通过建立信任关系组成的集合,可以保留被兼并公司自身原有的特性。
域控制器(DC)#
域中的一台类似管理服务器的计算机。DC 拥有这个域的账户、密码等信息构成的数据库。
- DC 的作用
- 负责所有连入的计算机和用户的验证工作
- 域内的计算机互访,也要经过 DC 的审核
- 计算机连接到域时的条件
- 鉴别这台计算机是否属于这个域
- 用户使用的登录账户、密码是否正确
域名服务器(DNS)#
实现域名和与之对应的 IP 地址转换的服务器,域树中的域名和 DNS 域名非常相似,实际上域中的计算机是使用 DNS 来定位域控制器、服务器及其他计算机、网络服务的。域的名字就是 DNS 域的名字,DNS 服务器和域控制器通常配置在同一台机器上
活动目录(AD)P5#
指域环境中提供目录服务的组件。活动目录存储的是网络中所有资源的 “快捷方式”,域树内的所有域共享一个活动目录,这个活动目录内的数据分散存储在各个域中,且每个域只存储该域内的数据。
主要功能:
-
账号集中管理:所有账号均存储在服务器中,以便执行命令和重置密码等。
-
软件集中管理:统一推送软件、安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择需要安装的软件。
-
环境集中管理:统一客户端桌面、IE、TCP/IP 协议等设置。
-
增强安全性:统一部署杀毒软件和病毒扫描任务、集中管理用户的计算机权限、统一制定用户密码策略等。可以监控网络,对资料进行统一管理。
-
更可靠,更短的宕机时间:例如,利用活动目录控制用户访问权限,利用群集、负载均衡等技术对文件服务器进行容灾设置。网络更可靠,宕机时间更短。
活动目录是微软提供的统一管理基础平台,ISA、Exchange、SMS 等都依赖这个平台。
DC 和 AD 区别 P6#
活动目录数据库,简称AD 库
要实现域环境,要安装 AD,如果一台计算机上安装了 AD,它就变成了 DC(用于存储活动目录数据库的计算机)
安全域的划分#
划分安全域的目的是将一组安全等级相同的计算机划入同一个网段。
在一个用路由器连接的内网中,可以将网络划分为三个区域:安全级别最高的内网;安全级别中等的 DMZ; 安全级别最低的外网 (Internet)。这三个区域负责完成不同的任务,因此需要设置不同的访问策略。
DMZ#
DMZ 称为隔离区,是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题而设立的一个非安全系统与安全系统之间的缓冲区。DMZ 位于企业内部网络和外部网络之间。可以在 DMZ 中放置一些必须公开的服务器设施,例如企业 Web 服务器、FTP 服务器和论坛服务器等。DMZ 是对外提供服务的区域,因此可以从外部访问。
DMZ 网络通常需要定义如下访问控制策略
- 内网可以访问外网:内网用户需要自由地访问外网。在这一策略中,防火墙需要执行 NAT。
- 内网可以访问 DMZ: 此策略使内网用户可以使用或者管理 DMZ 中的服务器。
- 外网不能访问内网:这是防火墙的基本策略。内网中存储的是公司内部数据,显然,这些数据一般是不允许外网用户访问的(如果要访问,就要通过 VPN 的方式来进行)。
- 外网可以访问 DMZ: 因为 DMZ 中的服务器需要为外界提供服务,所以外网必须可以访问 DMZ。同时,需要由防火墙来完成从对外地址到服务器实际地址的转换。
- DMZ 不能访问内网:如果不执行此策略,当攻击者攻陷 DMZ 时,内网将无法受到保护。DMZ 不能访问外网:此策略也有例外。例如,在 DMZ 中放置了邮件服务器,就要允许访问外网,否则邮件服务器无法正常工作。
内网#
可以分为办公区
和核心区
- 办公区:公司员工日常的工作区,一般会安装防病毒软件、主机入侵检测产品等。办公区一般能够访问 DMZ。如果运维人员也在办公区,那么部分主机也能访问核心数据区(很多大企业还会使用堡垒机来统一管理用户的登录行为)。攻击者如果想进入内网,一般会使用鱼叉攻击、水坑攻击,当然还有社会工程学手段。办公区人员多而杂,变动也很频繁,在安全管理上可能存在诸多漏洞,是攻击者进入内网的重要途径之一。
- 核心区:存储企业最重要的数据、文档等信息资产,通过日志记录、安全审计等安全措施进行严密的保护,往往只有很少的主机能够访问。从外部是绝难直接访问核心区的。一般来说,能够直接访问核心区的只有运维人员或者 IT 部门的主管,所以,攻击者会重点关注这些用户的信息(攻击者在内网中进行横向移动攻击时,会优先查找这些主机)。
域中计算机分类#
- 域控制器
存储所有账户信息和安全策略,管理所有网络访问
- 成员服务器
安装了服务器操作系统并加入了域、但没有安装活动目录的计算机,主要任务提供网络资源
例如,文件服务器、应用服务器、数据库、Web 服务器、邮件服务器、打印服务器等
- 客户机
安装了其他操作系统的计算机,用户利用这些计算机和域中账户就可以登录域。
- 独立服务器
没有加入域也没安装 AD,不能使用 AD 提供的任何服务。
他可以成为 DC 也可以成为成员服务器
域内权限解读 P9(以后再举例子)#
组是用户账号的集合。通过向一组用户分配权限,就可以不必向每个用户分别分配权限,简化网络维护和管理工作
域本地组#
主要授予本域内资源访问的权限。域本地组不能嵌套在其他组。
P11 比较重要的域本地组权限介绍
全局组#
单域用户访问多域资源,全局组可以嵌套在其他组。
通用组#
适合在域森林内跨域访问中使用,通用组的成员不是保存在各自的域控制器中,二十保存在全局编录(GC)中,任何变化都会导致全林复制
简单记忆#
域本地组来自全林,作用于本域;全局组来自本域,作用于全林;通用组来自全林,作用于全林。
A-G-DL-P 策略#
- A 表示用户账号 (Account)。
- G 表示全局组 (Global Group)。
- U 表示通用组( Universal Group )。
- DL 表示域本地组 (Domain Local Group)。
- Р表示资源权限 (Permission,许可)。
按照 A-G-DL-P 策略对用户进行组织和管理是非常容易的。在 A-G-DL-P 策略形成以后,当需要给一个用户添加某个权限时,只要把这个用户添加到某个本地域组中就可以了。
内置组#
P10
虚拟机#
网络适配器#
桥接模式#
使用 wifi 或物理网卡段的 IP,相当于虚拟机和主机插在同一个交换机上。
NAT 模式#
使用虚拟网卡(VMware 8)的 IP,虚拟机能够访问主机所在局域网内所有同网段的计算机。但是,除了主机,局域网内的其他计算机都无法访问虚拟机(因为不能在网络中共享资源)。
Host-only 模式#
Host-only 虚拟网络是最私密和最严格的网络配置,虚拟机处于一个独立的网段中。与 NAT 模式比较可以发现,在 Host-only 模式下虚拟机是无法上网的。但是,在 Host-only 模式下可以通过 Windows 提供的连接共享功能实现共享上网,主机能与所有虚拟机互访(就像在一个局域网内一样实现文件共享等功能)。如果没有开启 Windows 的连接共享功能,那么,除了主机,虚拟机与主机所在局域网内的所有其他计算机之间都无法互访。
在搭建渗透测试环境时,推荐使用 Host-only 模式来配置网络适配器。
Windows PowerShell 基础#
流行且得力的安全测试工具,前提需要.NET 环境的支持
特点#
- 在 Windows 7 以上版本的操作系统中是默认安装的。脚本可以在内存中运行,不需要写入磁盘。
- 几乎不会触发杀毒软件。
- 可以远程执行。
- 目前很多工具都是基于 PowerShell 开发的。
- 使 Windows 脚本的执行变得更容易。cmd.exe 的运行通常会被阻止,但是 PowerShell 的运行通常不会被阻止
- 可用于管理活动目录。
查看 ps 版本
get-host
PowerShell 基本概念#
.ps1 文件#
powershell 脚本就是一个简单的文本文件。扩展名为.ps1
,里面包含一系列的 powershell 命令。
执行策略#
默认情况下,这个执行策略被设置为 “不能运行”。
查看执行策略
get-executionPolicy
- Restricted: 脚本不能运行(默认设置)。
- RemoteSigned: 在本地创建的脚本可以运行,但从网上下载的脚本不能运行 (拥有数字证书签名的除外)。
- AllSigned: 仅当脚本由受信任的发布者签名时才能运行。.
- Unrestricted: 允许所有脚本运行。
可以使用下面的 cmdlet 命令设置 PowerShell 的执行策略。
Set-ExecutionPolicy <policy name>
运行脚本#
输入完整的路径和文件名
powershell 下
PS C:\Users\xuhaizhao> C:\Users\xuhaizhao\Desktop\1.ps1
cmd 下
C:\Users\xuhaizhao>powershell C:\Users\xuhaizhao\Desktop\1.ps1
管道#
管道的作用是将一个命令的输出作为另一个命令的输人,两个命令之间用 “|” 连接。我们通过一个例子来了解一下管道是如何工作的。执行如下命令,让所有正在运行的、名字以字符 “p” 开头的程序停止运行。
PS> get-process p* | stop-process
powershell 命令#
P18
搭建域环境 P23#
- Windows Server 2012 R2:192.168.1.1。(DC)
- Windows Server 2008 R2:192.168.1.2。.
- Windows 7: 192.168.1.3。
WIN2012#
配置网卡信息#
DNS:192.168.1.1