0x00 Windows 企业局域网环境介绍
1、活动目录
活动目录Active Directory
是一种能够集中管理用户、系统和策略的技术,活动目录的一个重要概念就是域
。
Active Directory 存储有关网络上对象的信息,并让管理员和用户可以更容易地使用这些信息。例如 Active Directory 域服务即 AD DS 存储着有关用户账户的信息,并且使同一网络下的其他授权用户可以访问此信息。
2、域
域Domain
即是一个管理员或者说是网络边界,在域里的用户和系统都是通过 AD进行管理的。
在域里,如果想控制服务器进行操作就需要取得域的信任。
3、域控制器
域控制器Domain Controller
顾名思义就是一个对域里的用户和系统进行身份验证的一个系统。
4、本地用户
本地用户Local User
就是系统上的一个标准用户。
当我们想在 Windows 命令行下指定一个本地的用户时,可以通过输入 .\本地用户名
或者 计算机名\本地用户名
来指定本地的用户账户,其中.
表示计算机名。
5、域用户
域用户Domain User
是指域控制器下的用户,如果想指定域用户,可以输入域名\域用户名
6、本地管理员
本地管理员Local Administrator
即是指在本地系统有管理权限的用户。
7、域管理员
域管理员Domain Administrator
是指在域控制器上有管理权限的用户。
注意:以下命令是在主机中运行的结果,在 Cobalt Strike 中运行只需要根据命令类型在命令前加上 shell 或者 powershell 即可。
0x01 枚举主机和域信任
1、一些问题
当进入目标局域网时,需要弄清楚几个问题。
1、我正处在那个域上?
2、域信任关系是什么样的?
3、可以登陆哪些域?这些域上有哪些系统?目标是什么?可以获取什么?
4、系统上存放共享数据的地方在哪里?
2、一些枚举的命令
net view /domain
枚举出当前域
1 | PS C:\> net view /domain |
net view /domain:[domain]
、net group "domain computers" /domain
net view /domain:[domain]
枚举域上一个主机的列表,但不是所有主机,这个也就是在网上邻居中可以看到的内容。net group "domain computers" /domain
可以获得加入到这个域中的电脑账户列表。
1 | PS C:\> net view /domain:teamssix |
nltest /dclist:[domain]
如果想找到那个主机是域的域控服务器,可以使用
nltest
命令
1 | PS C:\> nltest /dclist:teamssix |
当使用 32 位的 payload 运行在 64 位的系统上,并且 nltest 路径不对的时候,可能会提示没有 nltest 这个命令,这时可以尝试使用下面的命令为其指定路径。
1 | PS C:\> C:\windows\sysnative\nltest /dclist:teamssix |
nslookup [name]
、ping -n 1 -4 [name]
有时在 Cobalt Strike 里,我们只需要使用目标的 NetBIOS 名称,而不用在意使用 IPv4 地址或者 IPv6 地址,NetBIOS 名称是在域上每台机器的完整名称。
但是如果想通过一个 IPv4 地址转换为一个 NetBIOS 名称,可以使用 nslookup 命令,或者使用 ping 发送一个包来获得主机返回的 IP 地址。
1 | PS C:\> nslookup WIN-P2AASSD1AF1 |
nltest /domain_trusts
、nltest /server:[address] /domain_trusts
如果想取得域上的信任关系,可以使用 nltest 命令来实现。
1 | PS C:\> nltest /domain_trusts |
net view \\[name]
如果想列出主机上的共享列表,只需输入
net view \\[name]
即可
1 | PS C:\> net view \\WIN-P2AASSD1AF1 |
0x02 PowerView
在渗透进入内网后,如果直接使用 Windows 的内置命令,比如 net view、net user
等,可能就会被管理人员或者各种安全监控设备所发现。因此较为安全的办法就是使用 Powershell 和 VMI 来进行躲避态势感知的检测。
PowerView 是由 Will Schroeder 开发的 PowerShell 脚本,该脚本完全依赖于 Powershell 和 VMI ,使用 PowerView 可以更好的收集内网中的信息,在使用之前,与上一节 PowerUp 的一样需要先 import 导入 ps1 文件。
PowerView 下载地址:https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon
一些 PowerView 的命令:
Get-NetDomain
查询本地域的信息
1 | PS C:\PowerView> Get-NetDomain |
Invoke-ShareFinder
查找网络上是否存在共享
1 | PS C:\PowerView> Invoke-ShareFinder |
Invoke-MapDomainTrust
显示当前域的信任关系
1 | PS C:\PowerView> Invoke-MapDomainTrust |
其他更多用法可以查看参考链接,或者参考 PowerView 项目上的 ReadMe 部分。
0X03 Net 模块
Cobalt Strike 中有自己的 net 模块,net 模块是 beacon 后渗透攻击模块,它通过 windows 的网络管理 api 函数来执行命令,想使用 net 命令,只需要在 beacon 的控制中心输入 net + 要执行的命令即可。
1 | net dclist : 列出当前域的域控制器 |
在 beacon 控制台中输入这些命令很类似输入一个本地的 net 命令,但是有一些些许的不同,比如下面一个是在主机上运行 net view 的结果一个是在 beacon 控制台下运行 net view 的结果。不难看出,beacon 下输出的结果更为丰富。
1 | PS C:\> net view |
1 | beacon> net view |
参考链接:
https://www.bilibili.com/video/BV16b411i7n5
https://www.freebuf.com/sectool/173366.html
更多信息欢迎关注我的微信公众号:TeamsSix