域控枚举工具

admin 2024年10月29日13:45:05评论19 views字数 4954阅读16分30秒阅读模式

前言

在日常我们练习域控的时候,通常会因为用户太多,或者根本不知道域控里面有多少台机器,再或者说找不到DA(Domain Administrator)而烦恼,恰逢近期我正在在使用一个工具,名为BloodHound,各位在Github上也能找到,所以跟大家分享一下使用的经验。

这是个什么工具

BloodHound 采用了原始 PowerPath 概念验证背后的关键概念,并将其放入可操作、直观、易于使用的功能中,用于摄取和分析数据,从而高效、准确地展示如何在 AD 域中升级权限。

为什么要用它

BloodHound 是一个免费的公共工具,它可以根据你输入的语句来自动执行理解 Active Directory 环境中的关系背后的许多繁琐和乏味的工作。你可以使用 BloodHound 快速深入了解 AD,准确了解任何用户对哪些计算机拥有管理员权限、哪些用户对任何计算机有效拥有管理员权限以及有效的组成员身份信息。

相关文档

https://bloodhound.readthedocs.io/en/latest/index.html

https://github.com/neo4j/neo4j

https://github.com/CompassSecurity/BloodHoundQueries/blob/master/BloodHound_Custom_Queries/customqueries.json


第一次使用

Kali Linux

启动Neo4j服务

kali@kali:~$ sudo neo4j start
Directories in use:
home:         /usr/share/neo4j
config:       /usr/share/neo4j/conf
logs:         /usr/share/neo4j/logs
plugins:      /usr/share/neo4j/plugins
import:       /usr/share/neo4j/import
data:         /usr/share/neo4j/data
certificates: /usr/share/neo4j/certificates
licenses:     /usr/share/neo4j/licenses
run:          /usr/share/neo4j/run
Starting Neo4j.
Started neo4j (pid:334819). It is available at http://localhost:7474
There may be a short delay until the server is ready.

浏览器打开localhost:7474来设置初始的账号和密码

域控枚举工具

默认密码为neo4j:neo4j

域控枚举工具

在第一次登陆之后,系统会提示我们修改密码,修改完密码后之后就可以搭配BloodHound来使用。

启动BloodHound

直接在kali当中输入BloodHound,如果没有安装,请使用如下命令安装:

kali@kali: ~$ sudo apt-get install bloodhound

然后再执行

kali@kali: ~$ bloodhound

打开BloodHound之后,BloodHound会自动检测neo4j服务是否自动启动

域控枚举工具

显示绿色的打钩框代表已经检测到neo4j服务启动,能够直接连接,使用我们设置的neo4j的新密码进行登录。

开始使用BloodHound

导入数据

因为在一开始的时候BloodHound并没有任何数据,所以需要从Windows上通过一个Powershell脚本来把域控的信息收集下来。

脚本地址:https://github.com/BloodHoundAD/SharpHound

然后需要在Windows上能够与LDAP达成通信的用户来执行这个脚本。

PS C:UsersPublic> Import-Module .Sharphound.ps1

PS C:UsersPublic> Invoke-BloodHound -CollectionMethod All -OutputDirectory C:UsersPublic -OutputPrefix "AD_Information"

2023-06-03T09:20:22.3688459-07:00|INFORMATION|This version of SharpHound is compatible with the 4.2 Release of BloodHound
2023-06-03T09:20:22.5909898-07:00|INFORMATION|Resolved Collection Methods: Group, LocalAdmin, GPOLocalGroup, Session, LoggedOn, Trusts, ACL, Container, RDP, ObjectProps, DCOM, SPNTargets, PSRemote
2023-06-03T09:20:22.6383624-07:00|INFORMATION|Initializing SharpHound at 9:20 AM on 10/12/2022
2023-06-03T09:20:22.9661022-07:00|INFORMATION|Flags: Group, LocalAdmin, GPOLocalGroup, Session, LoggedOn, Trusts, ACL, Container, RDP, ObjectProps, DCOM, SPNTargets, PSRemote
2023-06-03T09:20:23.3881009-07:00|INFORMATION|Beginning LDAP search for corp.com
2023-06-03T09:20:23.4975127-07:00|INFORMATION|Producer has finished, closing LDAP channel
2023-06-03T09:20:23.4975127-07:00|INFORMATION|LDAP channel closed, waiting for consumers
2023-06-03T09:20:53.6398934-07:00|INFORMATION|Status: 0 objects finished (+0 0)/s -- Using 96 MB RAM
2023-06-03T09:21:13.6762695-07:00|INFORMATION|Consumers finished, closing output channel
2023-06-03T09:21:13.7396906-07:00|INFORMATION|Output channel closed, waiting for output task to complete
Closing writers
2023-06-03T09:21:13.8983935-07:00|INFORMATION|Status: 106 objects finished (+106 2.12)/s -- Using 104 MB RAM
2023-06-03T09:21:13.8983935-07:00|INFORMATION|Enumeration finished in 00:00:50.5065909
2023-06-03T09:21:14.0094454-07:00|INFORMATION|Saving cache with stats: 66 ID to type mappings.
68 name to SID mappings.
2 machine sid mappings.
2 sid to domain mappings.
0 global catalog mappings.
2023-06-03T09:21:14.0255279-07:00|INFORMATION|SharpHound Enumeration Completed at 9:21 AM on 06/03/2023! Happy Graphing!

根据以上中的输出,我们总共扫描了 106 个对象。这显然会根据域中存在的对象和会话数量而有所不同。

在这种情况下,SharpHound 实质上是从本地用户那里获取域的快照,我们应该能够分析用户帐户有权访问的所有内容。收集的数据存储在Public上的 zip 文件中:

PS C:UsersPublic> ls C:UsersPublic

Directory: C:UsersPublic

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 9/27/2023 11:00 PM 12680 AD_Information_20230603230019_BloodHound.zip
-a---- 9/27/2022 11:00 PM 9734 MTk2MmZkNjItY2IyNC00MWMzLTk5YzMtM2E1ZDcwYThkMzRl.bin

接下来需要将.zip文件传输到我们的机器上,我们才能导入数据查看域的信息。

Bloodhound的右侧选择上传数据

域控枚举工具

选择从zip包中解压出来的json文件点击上传

域控枚举工具

等待上传完成后即可查看域控的信息

域控枚举工具

[基础用法]寻找最短路径到达域控管理员

在左上角的"Analysis"中的最底部"Shortest Paths"可以找到"Find Shortest Paths to Domain Admins", 这意味着你可以通过这个选项去找到你可以找到最短路径的域控管理员

域控枚举工具

这样就能看到域控管理员的成员

域控枚举工具

可以看到拥有用户名的是[email protected]这个用户, 其次则是[email protected], 最后是[email protected]

点击任意一个用户, 即可来到NODE INFO选项

域控枚举工具

选择GROUP MEMBERSHIP选项的Unrolled Group Membership即可看到这个用户属于哪个组下面的信息

域控枚举工具

当然, 以上只是最基础的操作, 接下来就有语句来提供给你们了

[进阶用法]语句

其实在最底下有一个Raw Query, 在这里面能够使用一些特定的语句输出我们想要的拓扑

1. 查找具有 SPN 的所有用户/查找所有 Kerberoastable 用户

MATCH (n:User)WHERE n.hasspn=true
RETURN n

域控枚举工具

2. 查找所有包含"admin"的组
Match (n:Group) WHERE n.name CONTAINS "ADMIN" return n

域控枚举工具

3. 查找所有拥有高权限组的用户

MATCH p=(n:User)-[r:MemberOf*1..]->(m:Group {highvalue:true}) RETURN p

域控枚举工具

4. 查找所有活跃的Domain Admin会话

MATCH (n:User)-[:MemberOf*1..]->(g:Group) WHERE g.objectid ENDS WITH '-512' MATCH p = (c:Computer)-[:HasSession]->(n) return p

 

域控枚举工具

5. 查看所有用户

MATCH (n) RETURN n

域控枚举工具

6. 所有域控管理员

MATCH (n:Group) WHERE n.name =~ "(?i).*DOMAIN ADMINS.*"
WITH n 
MATCH (n)<-[r:MemberOf*1..]-(m) 
RETURN n,r,m

域控枚举工具

还没完

如果想知道更多语句的, 在公众号后台回复BloodHound就会返回一个pdf格式的大全书(请注意部分命令无结果不可用可能是因为你收集的域信息并没有相符合的或者你的域控的域名打错了.)所以发现出错之后可以检查一下:))))

END

感谢你看到这,如果不嫌烦的话可以点个在看并且点赞,当然转发到朋友圈让更多人看到对我来说帮助更大!:))))))))))))))

本公众号秉承知识分享,但是不时会接一些小广告,请谅解。

如果你想联系我交流,可以直接在公众号点击联系我,即可获取我的微信二维码。

原文始发于微信公众号(Aaron与安全的那些事):域控枚举工具 | 这么好用你不来试试?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月29日13:45:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   域控枚举工具https://cn-sec.com/archives/1840024.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息