欢迎扫码关注微信公众号
回复关键字【资料】获取各种学习资料
文件查找
使用for
循环查找文件
参考:
https://blog.csdn.net/qq_29647709/article/details/81474552
命令:
for /r 目录名 %i in (匹配模式1,匹配模式2) do @echo %i
比如在当前目录及其子目录下查看所有的txt
文件:
for /r . %i in (*.txt) do @echo %i
如果结果太多,可以使用>>
输出到文件
for /r C:\windows %i in (*target) do @echo %i >> 1.txt
注意在搜索目标前面加上通配符星号,不然会出现错误*
域相关知识
域控制器需要开启的端口
[外链图片转存中…(img-6VZJY82z-1597374357643)]
NTDS.DIT
C:\windows\NTDS\ntds.dit
名词解释:
NTDS stands for NT Directory Services
The DIT stands for Directory Information Tree.
Ntds.dit
文件位于DC
,该文件中包含所有被该DC
控制的主机的名称、配置以及数据表名称信息
官方文档中对AD
中几个重要文件的介绍:
https://blogs.msdn.microsoft.com/servergeeks/2014/10/14/active-directory-files-and-their-functions/
如何获得域控的NTDS.dit
文件:
http://www.4hou.com/technology/10573.html
LDAP
轻量目录访问协议
在AD中使用LDAP
名称路径来表示对象在AD
数据库中的位置
关于LDAP的一些重要的基本概念
https://ldap.com/basic-ldap-concepts/
- Directory Servers
- 目录服务器存储数据的数据库并非关系型数据库,而是树状的
- Entries
- 一个LDAP的entry就代表一个实体的信息的集合,每一个entry由三个重要成分组成:
- distinguished name
- collection of attributes
- collection of object classes
- 下面对这三个重要成分进行详细说明
- 一个LDAP的entry就代表一个实体的信息的集合,每一个entry由三个重要成分组成:
- ** DN --> distinguished name** and RDN --> Relative distinguished name
- 用于在
DIT(directory information tree)
中唯一标识一个entry的位置- DN之于LDAP就相当于路径之于文件系统
- DN由0个或多个RDN组成,每个RDN由0个或者多个(通常是1个)属性-值对组成,比如:
uid=john.doe
,如果RDN有多个键值对就按下面的表示方式:givenName=John+sn=Doe
,使用+进行分割 - 特殊的
DN
由0个RDN构成,这种DN表示一个特殊的entry,叫做root DSE,参考文档https://ldap.com/dit-and-the-ldap-root-dse/
,该DN提供关于directory Server的内容和容量信息 - 对于由多个
RDN
构成的DN
,比如:uid=john.doe,ou=People,dc=example,dc=com
,它有4
个RDN
,每个RDN
都代表一个层级,使用降序排列,越靠后的距离root
最近,比如上面的uid=john.doe,ou=People,dc=example,dc=com
,它的父一级DN
应该是ou=People,dc=example,dc=com
- 用于在
- Attributes
- attribute拥有entry的数据,每个Attributes都有类型,0个或多个Attributes选项以及一个包含了值的集合构成实际的数据
- 所有的Attributes类型都有一个
OID
object identifier
- Object Class
- 用于表示attribute的类型,每一个entry也有一个object class,用来表明它表示该entry是关于什么的信息(人、组、设备、服务等)
本地认证流程:
winlogon.exe -> 接收用户输入 -> lsass.exe -> (认证)
NTLM 认证过程:
- 客户端向服务器发送用户信息(例:用户名 user)请求
- 服务端接受请求,生成 16 位随机数 Challenge,用 user 对应的 NTLM Hash 加密 Challenge,生成 Challenge1,然后将 Challenge 发给客户端
- 客户端接收 Challenge,用 user 对应的 NTLM Hash 加密 Challenge 生成 Response 发给服务器端
- 服务端对比接收的 Response 和 Challenge1 相同,则认证成功
由上述过程可知认证过程中,只涉及到本地的用户名(user)和对应的 NTLM Hash,因此如果在知道用户名和对应的 NTLM Hash 而不知道明文密码时,也能完成 NTML 认证,即哈希传递
哈希传递的工具:
Smbmap、CrackMapExec(没安成)、Mimikatz 、MSF
这些工具的使用参见#哈希传递
ADSI编辑器
参考文档:
在该编辑器中,可以看到四项
[外链图片转存中…(img-KlRX5DsQ-1597374357645)]
RootDSE、默认命名上下文(就是当前电脑登录的域)、Configuration、Schema
RootDSE
https://docs.microsoft.com/zh-cn/windows/desktop/ADSchema/rootdse
其中RootDSE
被定义成目录服务器的目录数据树的root
,RootDSE
不属于任何命名空间,它只是用来提供Directory Server
相关的信息,它的属性值都是用于表示目录服务器相关信息的
组策略
https://blog.csdn.net/kamroselee/article/details/793592