目录
1 域控基础
1.1 活动目录
活动目录(Active Directory,AD)是指域环境中提供目录服务的组件。
- 目录用于存储有关网络对象(例如用户、组、计算机、共享资源、打印机和联系人等)的信息,目录服务是指帮助用户快速、准确地从目录中找到其所需要的的信息的服务。
- 如果把企业的内网看成一本字典,那么内网里的资源就是字典里的内容,活动目录就相当于字典的索引。
活动目录的主要功能
1、帐号集中管理:所有帐号均存储在服务器中,以便执行命令和重置密码等。
2、软件集中管理:统一推送软件、安装网络打印机等。利用软件发布策略分发软件,可以让用户自由选择需要安装的软件。
3、环境集中管理:统一客户端桌面、IE、TCP/IP协议等设置。
4、增强安全性:统一部署杀毒软件和病毒扫描任务、集中管理用户的计算机权限、统一制定用户密码策略等。可以监控网路,对资料进行统一管理。
5、更可靠,更短的宕机时间:例如,利用活动目录控制用户访问权限,利用集群、负载均衡等技术对文件服务器进行容灾设置。网络更可靠,宕机时间更短。
1.2 域中的计算机分类
域控制器:域控制器用于管理所有的网络访问,包括登录服务器、访问共享目录和资源。
成员服务器:成员服务器是指安装了服务器操作系统并加入了域、但是没装活动目录(AD)的计算机,其主要任务是提供网络资源。
客户机:域中的计算机可以是安装了其他操作系统的计算机。用户利用这些计算机和域中的账户就可以登录域。
独立服务器:独立服务器和域没有关系。独立服务器可以创建工作组、与网络中的其他计算机共享资源,但不能使用活动目录提供的任何服务。
1.3 域内权限解读
-
域本地组:多域用户访问单域资源,可以从任何域添加用户账号、通用组和全局组,但只能在其所在域内指派权限;
-
全局组:单域用户访问多域资源(必须是同一哥域中的用户),只能在创建该全局组的域中添加用户和全局组。
-
通用组:通用组成员来自域森林中任何域的用户账号、全局组合其他通用组,可以在该域森林的任何域中指派权限,可以嵌套在其他组中,非常适合在域森林内的跨域访问中使用。
-
A-G-DL-P策略:
A-G-DL-P策略是指将用户账号添加到全局组中,将全局组添加到域本地组中,然后为域本地组分配资源权限。
- A表示用户账号(Account);
- G表示全局组(Global Group);
- U表示通用组(Universal Group);
- DL表示域本地组(Domain Local Group);
- P表示资源权限(Permission,许可);
在此策略形成后,当需要给一个用户添加某个权限时。只需要把这个用户添加到某个本地域组中就可以了
-
几个比较重要的域本地组权限:
- 管理员组( Administrator);
- 远程登录组 (Remote Desktop Users);
- 域管理员组( Domain Admins);
- 域用户组( Domain Usrs);
2 收集当前域信息
2.1 获取当前用户与域 SID
whoami /all
2.2 查询指定用户的详细信息
# 查询本地用户详细信息
net user 2008r2
# 查询域用户详细信息
net user test01 /domain
# 获取本地及域内用户的详细信息
wmic useraccount get /all
# 查看当前域的所有用户
net user /domain
# 获取域用户组信息
net group /domain
# 查看本地管理员组用户
net localgroup administrators /domain
# 获取域内所有计算机信息
net view /domain:test
# 查看域管理员用户组
net group "domain admins" /domain
系统自带的常见用户身份如下:
*Domain Admins :域管理员
*Domain Computers : 域内机器
*Domain Controllers:域控制器
*Domain Guests:域访客,权限较低
*Domain Users:域用户
*Enterprise Admins:企业系统管理员用户
默认情况下Domain Admins和Enterprise Admins对域内所有域控制器有完全控制权限
# 获取域信任列表
nltest /domain_trusts
2.3 判断是否存在域
-
ipconfig /all
-
systeminfo
-
net config workstation
-
net view /domain
-
正确输出,说明此台机器在域中;
-
若是此命令在显示域处显示 WORKGROUP,则不存在域;
-
若是报错:发生系统错误 5,则存在域,但该用户不是域用户
-
2.4 查找域控制器
net time /domain
会有以下三种情况:
-
存在域,当前用户不是域用户
-
存在域,且当前用户是域用户
-
当前网络环境为工作组,不存在域
2.4.1 判断域控制器和DNS 服务器是否在同一服务器上
nslookup test.lab
2.4.2 查看域控制器的机器名
nltest /dclist:test
2.4.3 查看域控制的主机名
nslookup -type=SRV _ldap._tcp
2.4.4 查看域控制器组
net group "domain controllers" /domain
实际网络中,一个域内一般存在两台或两台以上的域控制器,作为主备。
netdom query pdc
2.5 添加域用户
# 域管理权限下
# 添加普通域用户
net user test test /add /domain
# 将普通域用户提升为域管理员
net group "Domain Admins" test /add /domain
3 定位域管理员
Sysinternals Utilities - Windows Sysinternals | Microsoft Docs
常用域管理员定位工具有 PsLoggedon.exe, PVEFindADUser.exe, netsess.exe, 以及 hunter,NetView 等。
在 powershell 中常用的工具是 powerView
3.1 PsLoggedon.exe
C:\Softwares\SysinternalsSuite>PsLoggedon.exe /?
PsLoggedon v1.35 - See who's logged on
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Usage: PsLoggedon.exe [-l] [-x] [\\computername]
or PsLoggedon.exe [username]
-l Show only local logons
-x Don't show logon times
-nobanner Do not display the startup banner and copyright message.
4 利用 PowerShell 收集域信息
Release PowerSploit v3.0.0 · PowerShellMafia/PowerSploit · GitHub
PS C:\WINDOWS\system32> Set-ExecutionPolicy unrestricted
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如
https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies
帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y
PS C:\WINDOWS\system32> cd C:\Users\f_carey\Desktop\PowerSploit-3.0.0\Recon\
PS C:\Users\f_carey\Desktop\PowerSploit-3.0.0\Recon> Import-Module .\PowerView.ps1
PowerView 常用命令:
Get-NetDomain 获取当前用户所在的域名称
Get-NetUser 返回所有用户详细信息
Get-NetDomainController 获取所有域控制器
Get-NetComputer 获取所有域内机器详细信息
Get-NetOU 获取域中OU信息
Get-NetGroup 获取所有域内组和组成员信息
Get-NetFileServer 根据SPN获取当前域使用的文件服务器
Get-NetShare 获取当前域内所有网络共享
Get-NetSession 获取在指定服务器存在的Session信息
Get-NetRDPSession 获取在指定服务器存在的远程连接信息
Get-NetProcess 获取远程主机的进程信息
Get-UserEvent 获取指定用户日志信息
Get-ADObject 获取活动目录的对象信息
Get-NetGPO 获取域所有组策略对象
Get-DomainPolicy 获取域默认或域控制器策略
Invoke-UserHunter 搜索网络中域管理员正在使用的主机
Invoke-ProcessHunter 查找域内所有机器进程用于找到某特定用户
Invoke-UserEventHunter 根据用户日志获取某域用户登陆过哪些域机器