网络安全学习:内网渗透案例,打破渗透瓶颈

前言这又是一个关于域内基础概念与原理的系列
Active Directory 的查询基础语法BaseDNBaseDN 即基础可分辨名称,其指定了这棵树的根 。比如指定 BaseDN 为DC=whoamianony,DC=org就是以DC=whoamianony,DC=org为根往下搜索,类似于在文件系统中指定了一个根目录:

网络安全学习:内网渗透案例,打破渗透瓶颈

文章插图
 
2021最新整理网络安全渗透测试/安全学习(全套视频、大厂面经、精品手册、必备工具包)一>关注我,私信回复"资料"获取<一
若指定 BaseDN 为CN=Computers,DC=whoamianony,DC=org那么就是以CN=Computers,DC=whoamianony,DC=org为根往下搜索
过滤规则LDAP 搜索过滤器语法有以下逻辑运算符:
运算符
说明
&
AND 运算符
 
OR 运算符
!
NOT 运算符
=
用与名称和值做相等比较
*
通配符
下面举几个例子
(uid=testuser):匹配 uid 属性为 testuser 的所有对象
(uid=test*):匹配 uid 属性以 test 开头的所有对象
(!(uid=test*)):匹配 uid 属性不以 test 开头的所有对象
(&(department=1234)(city=Paris)):匹配 department 属性为1234且city属性为Paris的所有对象
(|(department=1234)(department=56*)):匹配 department 属性的值刚好为1234或者以56开头的所有对象 。
一个需要注意的点就是运算符是放在前面的,跟我们之前常规思维的放在中间不一样 。
LDAP 查找中的按位搜索在 LDAP 里面,有些属性字段是位字段,这里以 userAccountControl 举例,其记录了用户的 AD 账号的很多属性信息,该字段就是一个的位字段 。之所以说 userAccountControl 是一个位字段,是因为它是由一个个位构成:
Property flag
Value in hexadecimal
Value in decimal
SCRIPT
0x0001
1
ACCOUNTDISABLE
0x0002
2
HOMEDIR_REQUIRED
0x0008
8
LOCKOUT
0x0010
16
PASSWD_NOTREQD
0x0020
32
PASSWD_CANT_CHANGE
0x0040
64
ENCRYPTED_TEXT_PWD_ALLOWED
0x0080
128
TEMP_DUPLICATE_ACCOUNT
0x0100
256
NORMAL_ACCOUNT
0x0200
512
INTERDOMAIN_TRUST_ACCOUNT
0x0800
【网络安全学习:内网渗透案例,打破渗透瓶颈】2048
WORKSTATION_TRUST_ACCOUNT
0x1000
4096
SERVER_TRUST_ACCOUNT
0x2000
8192
DONT_EXPIRE_PASSword
0x10000
65536
MNS_LOGON_ACCOUNT
0x20000
131072
SMARTCARD_REQUIRED
0x40000
262144
TRUSTED_FOR_DELEGATION
0x80000
524288
NOT_DELEGATED
0x100000
1048576
USE_DES_KEY_ONLY
0x200000
2097152
DONT_REQ_PREAUTH
0x400000
4194304
PASSWORD_EXPIRED
0x800000
8388608
TRUSTED_TO_AUTH_FOR_DELEGATION
0x1000000
16777216
比如一个账户,他的 userAccountControl 属性只有 LOCKOUT 和 NOT_DELEGATED 这两个位有值,其他的位都没有,那这个用户的 userAccountControl 属性的值就为 0x100000+0x0010,是个32 位 INT 类型 。
现在,如果我要搜索域内所有设置了 NOT_DELEGATED 位的所有对象,那么像之前那样简单的 LDAP 搜索语法肯定是不行了 。因为简单的 LDAP 搜索语法只能对某个属性进行过滤,还不能对属性里面的某个具体的位进行过滤,这就引出了 LDAP 的按位搜索 。
LDAP 的按位搜索的语法如下:
<属性名称>:<BitFilterRule-ID>:=<十进制比较值>
其中的<BitFilterRule-ID>指的是位过滤规则所对应的 ID,大致内容如下:
位过滤规则
OID
LDAP_MATCHING_RULE_BIT_AND
1.2.840.113556.1.4.803
LDAP_MATCHING_RULE_OR
1.2.840.113556.1.4.804
LDAP_MATCHING_RULE_TRANSITIVE_EVAL
1.2.840.113556.1.4.1941
LDAP_MATCHING_RULE_DN_WITH_DATA
1.2.840.113556.1.4.2253
比如我们查询域内所有设置了 NOT_DELEGATED 位的所有对象,NOT_DELEGATED 对应的十进制比较值位 1048576,那么根据语法,我们便可以构造以下过滤语法:
(userAccountControl:1.2.840.113556.1.4.803:=1048576)
Active Directory 访问查询工具ADSI 编辑器ADSI Edit(AdsiEdit.msc)是一个 Microsoft windows Server 工具,可用于通过 Active Directory 活动目录服务接口(ADSI)查看和编辑原始 Active Directory 目录服务属性 。ADSI Edit 适用于编辑 Active Directory 中的单个对象或少量对象 。ADSI Edit 不具备搜索功能 。因此,必须预先知道要编辑的对象及其在 Active Directory 中的位置 。


推荐阅读