域内信息搜集
一、判断自己的身份
判断自己的身份最简单的方式就是whoami
如果是本地非域用户的话,就是计算机名称/账号
如果是域内用户账号的话,就是域名称/账号
1 | nslookup -qt=ns lab.com //定位DC |
二、定位DC及获取用户、组信息
1 | net config workstation //查询当前登陆域及登录的用户信息 |
域的sid是500之前的,用户sid是500
当你是域控用户的时候可以输入以下命令查询域内信息
1 | dsquery user #查询⽬录中的⽤户 |
三、登陆历史
最原始的方式是通过注册表里HKEY_USERS的key值来查询谁登录过本机,同样也调用到了 NetSessionEnum API。但是有以下工具可以帮助我们快速查看
1.psloggedon.exe
PsLoggedOn - Windows Sysinternals | Microsoft Docs
此工具用于查看本地登录的用户和通过本地计算机或远程计算机资源登录的用户。
1 | psloggedon.exe \\域名 |
2.PVEFindADUser.exe
Tools/PVEFindADUser.exe at master · chrisdee/Tools · GitHub
1 | PVEFindADUser.exe -current -target hostname |
3.Powerview.ps1
https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1
1 | Import-Module .\PowerView.ps1 |
powerview.ps1是非常全面的,它有如下命令:
1 | 1. Get-NetDomain 获取当前⽤户所在域的名称 |
四、域信任关系
域信任是为了解决多域环境中的跨域资源共享问题而诞生的。两个域之间必须拥有信任关系,才可以访问到对方域内的资源。任何一个新的子域加入到域树之后。这个域会自动信任其上一层的父域,同时父域也会自动信任新子域,而且这些信任具有双向传递性。由于此信任⼯作是通过Kerberos security protocol来完成的,因为也被成为KerberosTrust。
域信任利⽤DNS服务器定位两个不同⼦域的域控制器,如果两个域中的域控制器都⽆法 找到另⼀个域,那么也就不存在通过域信任关系进⾏跨域资源共享。
域环境不会⽆条件地接收来⾃其他域的凭证,只会接收来⾃受信任的域的凭证。在默认 情况下,特定 Windows域中的所有⽤户都可以通过该域中的资源进⾏身份验证。通过这种⽅式, 域可以为其⽤户提供对该域中所有资源的安全访问机制。如果⽤户想要访问边界以外的资源, 需要使⽤域信任。
域信任关系类型: ● 单向信任 是指在两个域之间创建单向的信任路径,即在⼀个⽅向.上是信任流,在另⼀个⽅向 上是访问流。在受信任域和信任域之间的单向信任中,受信任域内的⽤户或计算机可以访问信 任域中的资源,但信任域内的⽤户却⽆法访问受信任域内的资源。也就是说,若A域信任B 域,那么B域内受信任的主体可以访问A域内信任B域的资源。 ● 双向信任 是指两个单向信任的组合,信任域和受信任域彼此信任,在两个⽅向上都有信任流 和访问流。这意味着,可以从两个⽅向在两个域之间传递身份验证请求。活动⽬录中的所有域 信任关系都是双向可传递的。在创建⼦域时,会在新的⼦域和⽗域之间⾃动创建双向可传递信 任关系。
建⽴信任的⽬的是允许来⾃⼀个域的⽤户访问资源(如服务器上的本地管理员组),嵌套在组 中或以其他⽅式使⽤另⼀个域中的安全主体(例如⽤于 AD 对象 ACL )。 对此有个例外是域 林内信任(存在于同⼀ Active Directory 林中的域信任)——在林中创建的任何域都与林中的 每个其他域保持隐式双向、可传递的信任关系。
1 | nltest /domain_trusts //查看域信任信息 |
五、NTDS.dit导出hash
在活动目录中,所有的数据都保存在域控的ntds.dit文件中。
ntds.dit是一个二进制文件,文件路径为域控的%SystemRoot%\ntds\ntds.dit
。NTDS.dit包含不限于用户名、散列值、组、GPP、OU等活动目录的信息。系统运维人员可以使用VSS(Volumn shadow copy servcice,卷映射拷贝服务)。
1 | 首先在cmd中创建快照 |
1 | 使用GUID挂在快照 |
1 | 将挂载文件中的ntds.dit复制出来 |
1 | 卸载快照并删除快照 |
1 | 查询当前系统所有快照 |
要想得到域的用户名导出信息等,还需要注册表下的system文件
1 | reg save hklm\system c:\system |
要想提取ntds.dit的hash也有很多方法,这里就只拿出一点简便的
使用impack工具包下的secretsdump.py
1 | secretsdump.py -system system -ntds ntds.dit LOCAL |
然后解出来的hash去解密就好了。