0x00 介绍
Adfind是一个使用C++语言写的活动目录查询工具,允许用户轻松地搜索各种活动目录信息。无需安装,基于命令行运行。
0x01 查看所有参数
Adfind.exe /?
简要介绍什么是 DC/OU/CN/DN/Container
DC:
可以看成DNS中的每个元素比如域hack.com用DC表示DC=hack,DC=com
OU:
组织单位,组织单位可以包含组织单位/容器/对象
CN:
对象名称比如有个用户为h1,那么CN=h1。
如果计算机名为test则CN=test
容器也是用CN表示,如容器AA则CN=AA
Container:
容器跟组织单位很相似但是容器之中不能嵌套其他容器与组织单位
DN:
可以分辨称叫做DN可以看成某个对象的完整路径,比如hack域中users容器下的h1是以下DN
CN=h1,CN=Users,DC=hack,DC=com
OU Domain Controllers
OU=Domain Controllers,DC=hack,DC=com
需要注意的是在查询有空格的组或者容器的时候需要""包括起来比如
"OU=Domain Controllers,DC=hack,DC=com" 可以查询出来
OU=Domain Controllers,DC=hack,DC=com 会出错无法查询
连接参数:
-h 指定主机与端口ip:port
-p 单独指定端口
-u 指定用户
-up 指定密码
过滤参数:
-b 指定要查询的根节点basedn
-bit 指定位查询
-f LDAP过滤条件,指定LDAP语法
显示参数:
-appver 显示Adfind版本信息
-c 只统计数量
-csv 导出为csv格式
-dn 只显示DN,不返回详细信息
-s 搜索的范围,包括one当前层级和sub一层一层递归,默认是sub
-recmute 如果所有属性都为空,则禁止显示DN,主要适用于-sddl过滤器选项
-t 查询超时时间,默认为120s
帮助参数:
-help 基础帮助
-? 基级帮助
-?? 高级帮助
-???? 快捷方式帮助
-sc? 快捷方式帮助
-meta? 元数据帮助
-regex? 固定表达式帮助
0x02 使用方法
Adfind.exe [switches][-b basedn] [-f filter] [attl ist]
(1)switches:
表示连接参数,如果Adfind当前在域内机器上运行则不需要添加,如果是域外机器上执行则需要指定域控并提供一个有效的域用户和密码。
例子:
AdFind.exe -h 10.2.33.6:389 -u pentesthack -up Pass@12134 -sc dclist
(2) -b basedn
表示需要查询的根节点
例子:
#查询DN为dc=hack,dc=com 下的所有机器
Adfind.exe -b dc=hack,dc=com -f "objectcategory=compouter" dn
#查询DN为CN=Computers ,DC=hack,Dc=com下的所有机器
Adfind.exe -b:CN=Computers,DC=xie,DC=com -f "objectcategory=computer" dn
(3) -f filter
表示查询的过滤条件。
例子:
#查询域内所有机器
Adfind.exe -f "objectcategory=computer"dn
#查询域内所有用户
Aifind.exe -f "(&(objectcategory=person)(objectClass =user))" dn
(4) attr list
表示查询出来的结果显示哪个属性。当不使用该参数时,会显示查询对象的所有属性。
#查询域内所有机器,显示所有机器的所有属性
Adfind.exe -f "objectcategory=computer"
#查询域内所有机器,显示所有机器的DN属性
Adfind.exe - f "objectcategory=computer" dn
#查询域内所有机器,显示所有机器的DN属性,查询结果不换行。只有DN属性能在前面加“-“ 符号
Adfind.exe -f "objectcategory=computer" -dn
#查询域内所有机器,显示所有机器的name 属性
Adfind.exe -f "objectcategory=computer" name
0x03 常用查询语句
1.查询域内信任关系
Adfind.exe -f objectclass=trusteddomain -dn
2.域控相关查询:
查询域控名称
Adfind.exe -sc dclist
查询域控版本
Adfind.exe -schema -s base objectversion
3.机器相关查询:
查询域内所有机器,只显示DN
Adfind.exe -f "objectcategory=computer" dn
查询域内所有机器显示机器名和操作系统
Adfind.exe -f "objectcategory=computer" name operatingSystem
查询域中活跃的机器
Adfind.exe -sc computers_active dn
查询域中活跃的机器,显示机器名和操作系统
Adfind.exe -sc computers_active name operatingSystem
指定查询指定机器详细信息
Adfind.exe -f "(&objectcategory=computer)(name=机器名称)"
4.用户查询相关:
查询域管理员
Adfind.exe -b "CN=Domain Admins,CN=Users,DC=hack,DC=com" member
查询域内所有用户
Adfind.exe -b DC=hack,DC=com -f "(&(objectCategory=person)(objectClass=user))"
查询域内指定用户
Adfind.exe -sc u:test
查询域内指定用户的sid
Adfind.exe -sc u:test objectSid
根据sid查询对应用户
Adfind.exe -sc adsid:S-1-5-21-1873282234-450253352-872537906-500
查询域内用户属于哪个组
Adfind.exe -s subtree -b CN=test,CN=users,DC=hack,DC=com memberOf
递归查询指定用户隶属组以及隶属组的隶属信息
Adfind.exe -s subtree -b DC=hack,DC=com -f "(member:INCHAIN:="CN=test,CN=users,DC=hack,DC=com")" -bit dn
查询域内不需要Kerberos预身份认证的用户(可用于AS-REP Roasting攻击)
Adfind.exe -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" dn
查询受保护的用户(比如krbtgt就属于受保护用户)
Adfind.exe -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" dn
查询users容器下所有对象
Adfind.exe -users dn
5.组相关查询:
查询域内所有全局组:
Adfind.exe -f "(grouptype=-2147483646)" -dn
查询域内所有的通用组
Adfind.exe -f "(grouptype=-2147483640)" -dn
查询域内所有本地域组
Adfind.exe -f "((grouptype=-2147483644)(grouptype=-2147483643))" -dn
查询指定组内包含哪些对象
Adfind.exe -s subtree -b "CN=Domain Admins,CN=Users,DC=hack,DC=com" member
递归查询指定组包含哪些域用户
Adfind.exe -s subtree -b DC=hack,DC=com -f "(memberos:INCHAIN:="CN="Domain Admins",CN=Users,DC=hack,DC=com")" -bit -dn
6.委派相关查询命令
查询了配置了非约束委派的主机
Adfind.exe -b "DC=hack,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
查询了配置了非约束委派的服务账号
AdFind.exe -b "DC=hack,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
查询配置约束委派的主机,并可以看到被委派的SPN
Adfind.exe -b "DC=hack,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
查询配置约束委派的服务账号,并可以看到被委派的SPN
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
查询配置了基于资源约束委派的主机
Adfind.exe -b "DC=hack,DC=com" -f "(&(samAccountType=805306369)(msDS-AllowedToAct OnBehalfOfotherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentity
查询配置了基于资源约束委派的服务账号
Adfind.exe -b "DC=hack,DC=com" -f "(&(samAccountType=805306368)(msDS-AllowedToAct OnBehalfOfotherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentity
查询域中具有DCSync-复制目录权限的用户
Adfind.exe -s subtree -b "DC=hack,DC=com" nTSecurityDescriptor -sddl+++ -sddlfilter ;;; "Replicating Directory Changes";; -recmute -resolvesids
查询域中具有DCSync-复制目录所有项权限的用户)
Adfind.exe -s subtree -b "DC=hack,DC=com" nTSecurityDescriptor -sddl+++ -sddlfilter ;;; "Replicating Directory Changes All";; -recmute -resolvesids
查询域中的OU,会递归查询域内所有的OU
Adfind.exe -f "objectClass=organizationalUnit" dn
查询域的ACL
Adfind.exe -b DC=hack,DC=com -sc getacl
查询rightsGuid对应的扩展权限
Adfind.exe -b CN=Extended-Rights,CN=Configuration,DC=hack,DC=com -f "rightsGuid=1131f6aa-9c07-11dl-f79f-00c04fc2dcd2" dn
查询域内所有GPO
Adfind.exe -sc gpodmp
查询域内高权限的SPN
Adfind.exe -b "DC=hack,DC=com" -f "&(servicePrincipalName=*)(admincount=1)" servicePrincipalName
查询域内所有邮箱并以csv格式显示
Adfind.exe -f "mail=*" mail -s Subtree -recmute -csv mobile
查询域内所有手机号并以csv格式显示
Adfind.exe -f "telephonenumber=*" telephoneumber -s Subtree -recmute -csv mobile
原文始发于微信公众号(渗透仔):【内网渗透】域内查询工具Adfind相关使用命令
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论