Adfind
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
这有帮助吗?
连接参数(在域内机器上执行adfind,不需要指定该参数):
-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? 固定表达式帮助
Adfind.exe [switches][-b basedn] [-f filter] [attl ist]switches:
连接参数如果在域内机器上运行则不需要,如果是域外机器上执行
则需要指定域控并提供一个有效的域用户和密码。
例子:
AdFind.exe -h 10.211.55.66:389 -u test\\hack -up Pass@666 -sc dclist-b basedn:
选项指定要查询的根节点basedn
这里简单讲述下什么是DC/OU/CN/DN/Container
DC:
可以看成DNS中的每个元素比如域test.com用DC表示DC=test,DC=com
OU:
组织单位,组织单位可以包含组织单位/容器/对象/
CN:
对象名称比如有个用户要梁非凡那么CN=梁非凡,如果计算机名为testAD则CN=testAD,
容器也是用CN表示,如容器A则CN=A
Container:
容器跟组织单位很相似但是容器之中不能嵌套其他容器与组织单位
DN:
可以分辨称叫做DN可以看成某个对象的完整路径,比如test域中users容器下的梁非凡是以下DN
CN=liangfeifan,CN=Users,DC=test,DC=com
OU Domain Controllers
OU=Domain Controllers,DC=test,DC=com
需要注意的是在查询有空格的组或者容器的时候需要""包括起来比如
-b "OU=Domain Controllers,DC=test,DC=com" 可以查询出来
-b OU=Domain Controllers,DC=test,DC=com 会出错无法查询
例子:
#查询DN位dc=xie.com,dc=com下的所有机器
adfind.exe -b dc=xie,dc=com -f "objectcategory=computer" dn
#查询域内所有机器
adfind.exe -b CN=computer,DC=xie.com,DC=com -f "objectcategory=computer" dn-f filter
指定查询的过滤条件
1.查询域内所有机器
Adfind.exe -f "objectcategory=computer" dn
2.查询域内所有用户DN
Adfind.exe -f "(&(objectCategory=person)(objectClass=user))" dn
att list
指定查询出来的结果显示哪个属性,不使用该参数时会显示查询对象的所有属性,
其实就是上面的DN,下面看几个例子。
1.查询域内所有机器
Adfind.exe -f "objectcategory=computer" 没有att list因此显示对象所有属性
2.域内所有机器的name属性
Adfind.exe -f "objectcategory=computer" name 显示所有机器的name属性(att list为name因此显示name属性)1.查询域信任关系
Adfind.exe -f objectclass=trusteddomain -dn
域控相关:
2.查询域控名称
Adfind.exe -sc dclist
3.查询域控版本
Adfind.exe -schema -s base objectversion
机器查询相关:
4.查询域内所有机器
Adfind.exe -f "objectcategory=computer" dn
5.查询域内所有机器,显示机器名和操作系统
Adfind.exe -f "objectcategory=computer" name operatingSystem
6.查询域中活跃的机器
Adfind.exe -sc computers_active dn
7.查询域中活跃的机器,显示机器名和操作系统
Adfind.exe -sc computers_active name operatingSystem
8.指定查询域中指定机器的详细信息
Adfind.exe -f "(&objectcategory=computer)(name=机器名称)"
用户查询相关:
9.查询域管理员
Adfind.exe -b "CN=Domain Admins,CN=Users,DC=test,DC=com" member
10.查询域内所有用户
Adfind.exe -b DC=test,DC=com -f "(&(objectCategory=person)(objectClass=user))" -dn
11.查询域内指定用户(administrator例子)
Adfind.exe -sc u:administrator
12.查询域内指定用户的sid(administrator例子)
Adfind.exe -sc u:administrator objectSid
13.根据sid查询用户
Adfind.exe -sc adsid:S-1-5-21-1873282888-450677352-877677906-500
14.查询域内用户属于哪个组
Adfind.exe -s subtree -b CN=administrator,CN=users,DC=test,DC=com memberOf
15.递归查询指定用户隶属组以及隶属组隶属信息(类似于bloodhound中的Unrolled Group Membership组成员关系)
Adfind.exe -s subtree -b DC=test,DC=com -f "(member:INCHAIN:="CN=administrator,CN=users,DC=test,DC=com")" -bit -dn
16.查询域内不要求Kerberos预身份认证的用户(用于AS-REP Roasting攻击)
Adfind.exe -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" -dn
17.查询受保护的用户(比如krbtgt就属于受保护用户)
Adfind.exe -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn
18.查询users容器下所有对象
Adfind.exe -users -dn
组相关查询:
19.查询域内所有全局组:
Adfind.exe -f "(grouptype=-2147483646)" dn
20.查询域内所有的通用组
Adfind.exe -f "(grouptype=-2147483640)" dn
21.查询域内所有本地域组
Adfind.exe -f ”(grouptype=-2147483644)(grouptype=-2147483643))" dn
22.查询指定组内包含哪些对象
Adfind.exe -s subtree -b "CN=Domain Admins,CN=Users,DC=test,DC=com" member
23.递归查询指定组包含哪些域用户
Adfind.exe -s subtree -b DC=test,DC=com -f "(memberos:INCHAIN:="CN="Domain Admins",CN=Users,DC=test,DC=com")" -bit dn
委派相关查询命令
24.非约束委派查询(查询了配置了非约束委派的主机)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn
25.非约束委派查询(查询了配置了非约束委派的服务账号)
AdFind.exe -b "DC=xie,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn
26.查询约束委派(配置约束委派的主机,并可以看到被委派的SPN)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
27.查询约束委派(配置约束委派的服务账号,并可以看到被委派的SPN)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto
28.基于资源的约束委派(配置了基于资源约束委派的主机)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306369)(msDS-AllowedToAct OnBehalfOfotherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentity
29.基于资源的约束委派(配置了基于资源约束委派的服务账号)
Adfind.exe -b "DC=test,DC=com" -f "(&(samAccountType=805306368)(msDS-AllowedToAct OnBehalfOfotherIdentity=*))" msDS-AllowedToActOnBehalfOfOtherIdentity
ACL与DCSync等会用得到的查询
30.DCSync(查询域中具有复制目录权限的用户)
Adfind.exe -s subtree -b "DC=test,DC=com" nTSecurityDescriptor -sddl+++ -sddlfilter ;;; "Replicating Directory Changes";; -recmute -resolvesids
31.DCSync(查询域中具有复制目录所有权限的用户)
Adfind.exe -s subtree -b "DC=test,DC=com" nTSecurityDescriptor -sddl+++ -sddlfilter ;;; "Replicating Directory Changes All";; -recmute -resolvesids
32.查询域中的OU
Adfind.exe -f "objectClass=organizationalUnit" dn
33.查询域的ACL
Adfind.exe -b DC=test,DC=com -sc getacl
34.查询rightsGuid对应的扩展权限
Adfind.exe -b CN=Extended-Rights,CN=Configuration,DC=test,DC=com -f "rightsGuid=1131f6aa-9c07-11dl-f79f-00c04fc2dcd2" dn
35.查询域内所有GPO
Adfind.exe -sc gpodmp
36.查询域内高权限的SPN
Adfind.exe -b "DC=test,DC=com" -f "&(servicePrincipalName=*)(admincount=1)" servicePrincipalName
37.查询域内所有邮箱并以csv格式显示
Adfind.exe -f "mail=*" mail -s Subtree -recmute -csv mobile
38.查询域内所有手机号并以csv格式显示
Adfind.exe -f "telephonenumber=*" telephoneumber -s Subtree -recmute -csv mobil