跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透基金会——活动目录信息的获取


XenoG

推荐的帖子

0x00 前言

在域渗透中,活动目录信息的获取是必不可少的。

本文将以获取活动目录中的所有用户、所有计算机和所有组为例,介绍常用的信息获取方法。

0x01 简介

本文将介绍以下内容:

一种获取域外活动目录信息的方法

获取域中活动目录信息的方法

调用ADSI接口获取信息。

0x02 基础知识

该域使用目录数据库来存储用户、计算机帐户和组等对象。

使用LDAP(轻量级目录访问协议)来查询和更新目录数据库。

常见缩写

DN:可分辨名称

CN:常用名

OU:组织单位

DC:域控制器

DN有三个属性,即CN、OU和DC。

简单理解:

默认情况下,域控制器将为LDAP服务打开端口389。

0x03 域外获取活动目录信息的方法

1.Kali系统通过ldapsearch进行数据查询

测试环境如下

2-1.png

前提:我们可以访问域控制器(DC)的389端口,并且我们已经获得了域中至少一个普通用户的密码。

在这个测试环境中,我们获得了域中普通用户testa的密码DomainUser123!

连接命令如下:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=通讯'

参数描述:

-x表示简单身份验证

-H服务器地址

-D用于绑定服务器的DN。

-w绑定DN的密码

-b指定要查询的根节点。

该命令将显示可以找到的所有信息,如下图所示。

2-2.png

接下来,添加搜索条件并对结果进行分类。

(1)查询所有域用户

添加搜索条件:“((对象类别=用户)(对象类别=人员))”

完整的命令如下:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=com '-b ' DC=测试,DC=com ' '((对象类=用户)(对象类别=人))'

该命令将输出所有域用户的所有属性,如下图所示。

2-3.png

为了更容易计算名称,您可以选择只列出CN(通用名称),并使用grep命令来过滤输出。

该命令如下所示:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=com '-b ' DC=测试,DC=com ' '((对象类=用户)(对象类别=人))' CN | grep cn

输出如下所示

2-4.png

(2)查询所有计算机

添加搜索条件:“((对象类别=计算机)(对象类别=计算机))”

该命令如下所示:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=com '-b ' DC=测试,DC=com ' '((对象类别=计算机)(对象类=计算机))' CN | grep cn

输出如下所示

2-5.png

(3)查询所有组

添加搜索条件:“((objectCategory=group))”

该命令如下所示:

LDAP search-x-H LDAP://192 . 168 . 1 . 1:389-D ' CN=testa,CN=Users,DC=test,DC=com' -w DomainUser123!-b ' DC=测试,DC=com '-b ' DC=测试,DC=com ' '((对象类别=组))' CN | grep cn

输出如下所示

2-6.png

2.Windows系统通过PowerView进行数据查询

测试环境如下

3-1.png

前提:我们可以访问域控制器(DC)的389端口,并且我们已经获得了域中至少一个普通用户的密码。

在这个测试环境中,我们获得了域中普通用户testa的密码DomainUser123!

电源地址:

https://github . com/powershell mafia/PowerSploit/blob/master/Recon/power view . PS1

(1)查询所有域用户

这里需要凭证信息,因此完整的命令如下:

$uname='testa '

$ pwd=convert to-secure string ' domain user 123!'-AsPlainTextForce

$ cred=新对象系统。management . automation . PS credential($ uname,$pwd)

get-net user-Domain test.com-Domain controller 192 . 168 . 1 . 1-ADSpath ' LDAP://DC=test,DC=com' -Credential $cred

为了统计名称,您可以选择仅列出名称项。完整的命令如下:

$uname='testa '

$ pwd=convert to-secure string ' domain user 123!'-AsPlainTextForce

$ cred=新对象系统管理。自动化。PS证书(uname,$pwd)

get-net user-Domain test . com-域控制器192。168 .1 .1-ADSpath ' LDAP://DC=test,DC=com' -Credential $cred | fl name

结果输出如下图

3-2.png

(2)查询所有计算机

$uname='testa '

$ pwd=转换为安全字符串“域用户123!”-AsPlainTextForce

$ cred=新对象系统管理。自动化。PS证书(uname,$pwd)

get-net计算机-域test . com-域控制器192。168 .1 .1-ADSpath ' LDAP://DC=test,DC=com' -Credential $cred | fl name

结果输出如下图

3-3.png

(3)查询所有组

$uname='testa '

$ pwd=转换为安全字符串“域用户123!”-AsPlainTextForce

$ cred=新对象系统管理。自动化。PS证书(uname,$pwd)

get-net group-Domain test . com-域控制器192。168 .1 .1-ADSpath ' LDAP://DC=test,DC=com' -Credential $cred | fl name

结果输出如下图

3-4.png

0x04 域内获取活动目录信息的方法

前提是已经获得了域内一台主机的权限

测试环境如下图

4-1.png

原理:通过ADSI(activedirectory服务接口)(活动目录服务接口)进行轻量级目录访问协议查询,获得结果

1.使用Powershell实现

参照PowerView,地址:

https://github。com/powershell mafia/powers loit/blob/master/Recon/power view。PS1

2.使用C#实现

参照夏普维尤,地址:

https://github.com/tevora-threat/SharpView

3.使用C++实现

参考地址:

https://github。com/Microsoft/Windows-classic-Samples/tree/master/Samples/win 7 Samples/netds/ADSI/active dir/query users/VC

https://github.com/outflanknl/Recon-AD

微软的代码是可执行程序的扩展名的格式,只介绍了克雷尤瑟的方法,但支持查询条件(筛选指定用户)和显示简要信息(只输出名称,便于统计)

侦察广告的代码是动态链接库的格式,包含多个功能,但默认只显示详细信息

于是我将两者的代码融合,代码支持以下功能:

可执行程序的扩展名的格式

包含多个功能,支持查询用户、计算机和组等

支持查询条件和显示简要信息

代码已上传至github,地址如下:

https://github。com/3g student/home-of-C-Language/blob/master/query adobject。卡片打印处理机(Card Print Processor的缩写)

代码可指定弹药分配系统(Ammunition Delivery System)路径和搜索条件,用法如下:

(1)查询域用户

列出所有域用户,只显示简要的名称信息,命令如下:

QueryADObject.exe当前((对象类=用户)(对象类别=人))'短数据

结果输出如下图

5-1.png

查询指定用户的所有信息,命令如下:

QueryADObject.exe当前((对象类=用户)(对象类别=人员)(名称=测试))'所有数据

结果输出如下图

5-2.png

(2)查询计算机

列出所有计算机账户,只显示简要的名称信息,命令如下:

QueryADObject.exe当前((对象类别=计算机)(对象类别=计算机))'短数据

结果输出如下图

5-3.png

查询域控制器的详细信息,需要知道弹药分配系统(Ammunition Delivery System)路径为OU=域控制器,DC=测试,DC=com ',命令如下:

QueryADObject.exe欧=域控制器,DC=测试,DC=com ' '((对象类别=计算机)(对象类=计算机))'所有数据

结果输出如下图

5-4.png

(3)查询组

列出所有组,只显示简要的名称信息,命令如下:

QueryADObject.exe当前((objectCategory=group))'短数据

列出管理员组的详细信息,命令如下:

QueryADObject.exe当前((对象类别=组)(名称=域管理员))'所有数据

结果输出如下图

5-5.png

(4)查询OU

列出所有欧,只显示简要的名称信息,命令如下:

QueryADObject.exe当前((object category=organizationalUnit))'短数据

结果输出如下图

5-6.png

0x05 小结

本文以获取活动目录中所有用户、所有计算机和所有组为例,分别介绍了从域外和域内获取信息的方法。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...