Windows 特性
工作组
工作组是指数台计算机在一个内网中,在逻辑上都属于工作组,但是在工作组中的机器之间相互没有信任
关系,每台机器的账号密码只是保存在自己的SAM文件中,那就意味 着如果需要共享资源只能新建一个账
号并指定相关资源授予该账号权限才可以完成共享,使得访问资源更有层次化,缺乏管理域控制机制。
windows用户、组
不同的用户身份拥有不同的权限
每个用户包含一个名称和一个密码
用户账户拥有唯一的安全标识符(security ldentifier,SID)
Windows 默认账户
用于特殊用途,一般不需更修改其权限
与使用者关联的用户账户 Administrator(管理员用户)
默认的管理员用户 Guest(来宾用户)默认是禁用的
Windows 内置用户账户
权限: Guest > User > Administrator > SYSTEM > TrustInstall
与windows组件关联的用户账户
System(本地系统):为windows的核心组件访问文件等资源提供权限
Local Service(本地服务):预设的拥有最小权限的本地账户
Network Service(网络服务):具有运行网络服务权限的计算机账户
Windows 用户属性
1 | displayname |
Windows 内置组
Administrators
Guests
Power Users
Users(标准用户)
Remote Desktop Users
Windows组
通用组:不能控制对资源对访问,逻辑上将用户归纳,方便发件等
安全组:权限的集合,对组配置权限便于管理
全局组
通用组
域本地组
Windows 内置用户账户
adminisators组内的用户,都具备系统管理员的权限,它们拥有这台计算机最大的控制权限,可以执行
整台计算机的管理任务。内置的系统管理员账号 Adminstrator 就是本地组的成员,而且无法你将它从
组删除。如果这台计算机已加入域,则域的Domain Admins 会自动地加入到该计算机的
Adminstrators组内。也就是说,域上的系统管理员在这台计算机上也具备着系统管理员的权限。
Geusts 组是提供给没有用户账户但是需要访问本地计算机资源的用户使用,该组的成员无法永久地改
变其桌面的工作环境。该组最常见的默认成员为用户账号Guest。
Power Users 组内的用户具备比Users组更多的权利,但是比Administrators组拥有的权利更少一些,
例如,可以:创建、删除、更改本地用户账户;创建、删除、管理本地计算机内的共享文件与共享打印
机;自定义系统设置,例如更改计算机时间、关闭计算机等。但是不可以更改Administrators,无法夺
取文件的所有权、无法备份与还原文件、无法安装删除与删除设备驱动程序、无法管理安全与审核日
志。
Users 组内的成员只拥有一些基本的权利,例如运行应用程序,但是他们不能修改操作系统的设置、不
能更改其他用户的数据、不能关闭服务器级的计算机。所有添加的本地用户账户者自动属于Users组。
如果这台计算机已经加入域,则域的Domain Users会自动地被加入到该计算机的Users组中。
Remote Desktop Users 组内的成员拥有远程桌面登录的权限。默认Administrators组内的成员都拥有远程桌面的权限。
UAC
用户账号控制 (User Account Control)
用户账号控制(user Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作
系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达
到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
已过滤的管理员令牌
- UAC也使用受限制的令牌来创建已过滤的管理员令牌
- 特征:
完整性级别被设置为中
参考:深入解析Windows操作系统第六版
ACL
1 | ACL(访问控制列表):是否可以访问? |
SAM
SAM(安全账户管理器),SAM是用来存储Windows操作系统密码的数据库文件,为了避免明文密码
泄露,SAM文件中保存的是明文密码经过一系列算法处理的Hash值,被保存的Hash分为LM hash、
NTLMHash。在用户在本地或远程登录系统时,会将Hash值与SAM文件中保存的Hash值进行对比。在
后期的Windows系统中,SAM文件中被保存的密码Hash都被密钥SYSKEY加密。
SAM文件在磁盘中的位置在C:\windows\system2\config\sam
SAM文件在WIndows系统启动后被系统锁定,无法进行移动和复制
hash 详解
Hash
Windows系统为了保证用户明文密码不会被泄露,将明文密码转换为Hash值进行身份验证,被保存在
SAM或者ntds.dit中。
Hash 背景
1.LM Hash,在早期的Windows操作系统中将明文密码转换为LM Hash保存在SAM文件中,因为LM
Hash使用DES加密,密钥为硬编码,算法又存在缺陷,所以被废弃,为了保证系统兼容性可以自行开
启。
2.NTLM Hash,在LM Hash算法被弃用时,NTLM Hash被用来进行Windows本地及远程身份验证的凭
证长度为32bit,由数字和字母组成。
Hash示例
NTLM Hash

Net-NTLM v1 hash

Net-NTLM v2 hash

LM Hash漏洞
1 | 1.不区分大小写,原因见LM Hash生成方法 |
破解Hash
1 | LM Hash |
Active Directory(活动目录)
服务器
独立服务器
成员服务器
域控制器
1)域控制器
2)额外域控制器
3)只读域控制器
域
1 | 域:有安全边界的集合,同一域中计算机相互信任,计算机之间允许相互访问 |
工作组、域
如何判断是否是域?
net users /domain
net time /domain
systeminfo

Active Directory(活动目录)
Active Directory,活动目录简称AD,是一个基于DNS并以树状的数据结构来组成网络服务存储了有关
网络对象的信息,并以此作为基础对目录信息进行合乎逻辑的分层组织,让管理员和用户能够轻松地查
找和使用这些信息。常网域都只有一个,在中型或大型的网络中,网域可能会有很多个,或是和其他公
司或组织的AD的相互链接。
在AD里面,一切皆对象,比如:计算机,用户,用户组,相关策略等
有AD域Service,即Active Directory Domain Services
依赖不同的协议进行用户认证,资源查找,管理,访问控制等等
提供各种Service
活动目录功能
服务器及客户端计算机管理
用户服务
资源管理
桌面配置
应用系统支撑
Kerberos委派
1 | 委派:委派是AD的一个功能,允许用户或计算机模拟其他账户。 |

Kerberos无约束委派
1 | trusteForDelegation |
Kerberos约束委派
1 | 微软为了增强安全性,防止不安全的委派发生,并且加入了S4U2Self和S4U2Proxy协议扩展。 |
DNS
RAM
Hosts
DNS cache/DNS Server

目录服务
目录数据库时由目录服务数据库和一套访问协议组成
特点:
1.树状结构,类似文件目录
2.它是为查询、浏览和搜素而优化的数据库,读性能强,写性能差,不支持事务处理、回滚等复杂功能
目录树
条目:树中每一个节点
DN(唯一可区别的名称),RDN(相对标示名)
属性:描述条目具体信息

Windows 常见协议
LDAP
轻型目录访问协议(Lightweight Directory Access Protocol)
用途:
SSO

389-LDAP
636-LDAPS
LDAP全局目录

DC: DNS域名,如DC=dm,DC=org
OU:组织单元,OU为管理员手动创建,非默认容器,需使用OU,如OU=MAIL,OU=CRMCN:通用名称除了DC、OU外都使用CN
DN:cn=test,ou=Ops,dc=dm,dc=com 绝对全路径
RDN:dc=dm、dc=com 每一段路径
AD域、目录服务、LDAP
AD域需要用到目录服务,域内信息都存在目录服务中
LDAP支持用户访问目录服务数据库
OU
包含:
用户、计算机、工作组、打印机、安全策略、其他组织单元
将组策略域OU连接部署
NTDS.DIT
ntds.dit是AD中的数据库文件,它被保存在域控制器c:\windows\system32\ntds\NTDS.DIT位置。活动
目录的数据库文件(ntds.dit)包含有关活动目录域中所有对象的所有信息,其中包含所有域用户和计
算机账户的密码哈希值。该文件在所有域控制器之间自动同步,它只能被域管理员访问和修改。
Kerberos
kerberos是一种网络认证协议,对个人通信以安全的手段进行身份认证。其设计目标是通过密钥系统为
客户机/服务器应用程序提供强大的认证服务。它允许某实体在非安全网络环境下通信,向另一个实体
以一种安全的方式证明自己的身份。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地
址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和
插入数据。在以上情况下,Kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:
共享密钥)执行认证服务的。
SMB
1 | SMB(server Message Block)被称为服务器信息快,又叫网络文件共享系统(CIFS)。在 |
Network Logon(Type 3)
当账户对远程系统/服务进行身份验证时,将发生网络登录。在网络身份验证期间,可重用凭据不会发
送到远程系统。因此,当用户通过网络登录登录到远程系统是,该用户的凭据将不会出现在远程系统上
以执行进一步的身份验证。这带来了双跳问题
IPC(进程间通信)
1 | 简介 |
IPC功能
1 | IPC$是共享“命令管道”的资源,为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口 |
IPC 空连接
1 | 对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共 |
Windows名称解析
FQDN(完全限定域名)
FQDN由两部分组成:主机名和域名,如: mail.dm.org
NetBios名称
1 | 默认使用计算机的名字作为当前主机的NetBIOS 名称,长度为16位。前15位为名称,多截少补空,16 |
WPAD
WPAD(Web Proxy Auto-Discovery Protocol)
网络代理自动发现协议
通过让浏览器自动发现代理服务器,定位代理配置文件,下载编译并运行,最终自动使用代理访问网络
PAC:全程代理自动配置文件(Proxy Auto-Config),定义了浏览器和用户如何自动选择适当的代理服
务器来访问一个URL
例子(WPAD标准是用 wpad.dat):
1 | function FindProxyForURL(url,host){ |
WPAD 请求流程

WPAD配合LLMNR/NBNS投毒

LLMNR 工作流程
1 | 通过UDP发送到组播地址224.0.0.252:5355,查询主机名对应的IP,使用的是DNS格式数据包,数据包 |
WPAD配合LLMNR/NBNS投毒(Fix)
1 | MS16-077 |
WPAD Demo
1.监听当前网络,如果收到了NBNS查询包含WPAD字符,立即伪造NBNS响应
2.提供WPAD服务,用来更改被攻击主机的WPAD设置
3.当其成功作为被攻击主机的代理后,会劫持特定的Windows更新请求,提供带有后门的windows更新
文件给用户下载
WMI
WMI(windows管理规范),由一系列对Windows Driver Model的扩展组成,它通过仪器组件提供信息
和通知,提供了一个操作系统的接口。在渗透测试过程中,攻击者往往使用脚本通过WMI接口完成对
Windows操作系统的操作,远程WMI连接通过DCOM进行。例如:WMIC、Invoke-WmiCommand、
Invoke-WMIMethod等。另一种方法是使用Windows远程管理(WinRM)
Windows Access Token 简介
Windows Access Token(访问令牌),它是一个描述进程或者线程安全上下文的一个对象。不同的用
户登录计算机后,都会生成一个Access Token,这个Token在用户创建进程或者线程时会被使用,不断
的拷贝,这也就解释了A用户创建一个进程而该进程没有B用户的权限。当用户注销后,系统将会使主令
牌切换为模拟令牌,不会讲令牌清除,只有在重启机器后才会清除
Access Token分为两种(主令牌、模拟令牌)
Windows Access Token 组成
1 | 用户账户的安全标识符(SID) |
SID
1 | 安全标示符是一个唯一的字符串,它可以代表一个账户、一个用户组、或者是一次登录。通常它还有一 |