【CS学习笔记】15、枚举的命令和方法


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

    枚举出当前域

PS C:\> net view /domain
Domain
-------------------------
TEAMSSIX
命令成功完成。
  • net view /domain:[domain]net group "domain computers" /domain

    net view /domain:[domain]枚举域上一个主机的列表,但不是所有主机,这个也就是在网上邻居中可以看到的内容。

    net group "domain computers" /domain可以获得加入到这个域中的电脑账户列表。

PS C:\> net view /domain:teamssix
服务器名称            注解
----------------------------------
\\WIN-72A8ERDSF2P
\\WIN-P2AASSD1AF1
命令成功完成。

PS C:\> net group "domain computers" /domain
组名     Domain Computers
注释     加入到域中的所有工作站和服务器
成员
----------------------------------------------
WIN-72A8ERDSF2P$
命令成功完成。
  • nltest /dclist:[domain]

    如果想找到那个主机是域的域控服务器,可以使用nltest命令

PS C:\> nltest /dclist:teamssix
获得域“teamssix”中 DC 的列表(从“\\WIN-P2AASSD1AF1”中)。
    WIN-P2AASSD1AF1.teamssix.com [PDC]  [DS] 站点: Default-First-Site-Name
此命令成功完成

​ 当使用 32 位的 payload 运行在 64 位的系统上,并且 nltest 路径不对的时候,可能会提示没有 nltest 这个命令,这时可以尝试使用下面的命令为其指定路径。

PS C:\> C:\windows\sysnative\nltest /dclist:teamssix
获得域“teamssix”中 DC 的列表(从“\\WIN-P2AASSD1AF1”中)。
    WIN-P2AASSD1AF1.teamssix.com [PDC]  [DS] 站点: Default-First-Site-Name
此命令成功完成
  • nslookup [name]ping -n 1 -4 [name]

    有时在 Cobalt Strike 里,我们只需要使用目标的 NetBIOS 名称,而不用在意使用 IPv4 地址或者 IPv6 地址,NetBIOS 名称是在域上每台机器的完整名称。

    但是如果想通过一个 IPv4 地址转换为一个 NetBIOS 名称,可以使用 nslookup 命令,或者使用 ping 发送一个包来获得主机返回的 IP 地址。

PS C:\> nslookup WIN-P2AASSD1AF1
服务器:  UnKnown
Address:  ::1
名称:    WIN-P2AASSD1AF1.teamssix.com
Address:  192.168.15.124

PS C:\> ping -n 1 -4 WIN-P2AASSD1AF1
正在 Ping WIN-P2AASSD1AF1.teamssix.com [192.168.15.124] 具有 32 字节的数据:
来自 192.168.15.124 的回复: 字节=32 时间<1ms TTL=128
192.168.15.124 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
  • nltest /domain_trustsnltest /server:[address] /domain_trusts

    如果想取得域上的信任关系,可以使用 nltest 命令来实现。

PS C:\> nltest /domain_trusts
域信任的列表:
    0: TEAMSSIX teamssix.com (NT 5) (Forest Tree Root) (Primary Domain) (Native)
此命令成功完成

PS C:\> nltest /server:192.168.15.124 /domain_trusts
域信任的列表:
    0: TEAMSSIX teamssix.com (NT 5) (Forest Tree Root) (Primary Domain) (Native)
此命令成功完成
  • net view \\[name]

    如果想列出主机上的共享列表,只需输入net view \\[name]即可

PS C:\> net view \\WIN-P2AASSD1AF1
在 \\WIN-75F8PRJM4TP 的共享资源
共享名  类型  使用为  注释
----------------------------------
Users   Disk
命令成功完成。

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

    查询本地域的信息

PS C:\PowerView> Get-NetDomain
Forest                  : teamssix.com
DomainControllers       : {WIN-P2AASSD1AF1.teamssix.com}
Children                : {}
DomainMode              : Windows2012Domain
Parent                  :
PdcRoleOwner            : WIN-P2AASSD1AF1.teamssix.com
RidRoleOwner            : WIN-P2AASSD1AF1.teamssix.com
InfrastructureRoleOwner : WIN-P2AASSD1AF1.teamssix.com
Name                    : teamssix.com
  • Invoke-ShareFinder

    查找网络上是否存在共享

PS C:\PowerView> Invoke-ShareFinder
\\WIN-P2AASSD1AF1.teamssix.com\ADMIN$   - 远程管理
\\WIN-P2AASSD1AF1.teamssix.com\C$       - 默认共享
\\WIN-P2AASSD1AF1.teamssix.com\IPC$     - 远程 IPC
\\WIN-P2AASSD1AF1.teamssix.com\NETLOGON         - Logon server share
\\WIN-P2AASSD1AF1.teamssix.com\SYSVOL   - Logon server share
  • Invoke-MapDomainTrust

    显示当前域的信任关系

PS C:\PowerView> Invoke-MapDomainTrust

其他更多用法可以查看参考链接,或者参考 PowerView 项目上的 ReadMe 部分。

0X03 Net 模块

Cobalt Strike 中有自己的 net 模块,net 模块是 beacon 后渗透攻击模块,它通过 windows 的网络管理 api 函数来执行命令,想使用 net 命令,只需要在 beacon 的控制中心输入 net + 要执行的命令即可。

net dclist : 列出当前域的域控制器
net dclist [DOMAIN] : 列出指定域的域控制器
net share \\[name] : 列出目标的共享列表
net view : 列出当前域的主机
net view [DOMAIN] : 列出指定域的主机

在 beacon 控制台中输入这些命令很类似输入一个本地的 net 命令,但是有一些些许的不同,比如下面一个是在主机上运行 net view 的结果一个是在 beacon 控制台下运行 net view 的结果。不难看出,beacon 下输出的结果更为丰富。

PS C:\> net view
服务器名称            注解
-------------------------------------------
\\WIN-P2AASSD1AF1
命令成功完成。
beacon> net view
[*] Tasked beacon to run net view
[+] host called home, sent: 104504 bytes
[+] received output:
List of hosts:
Server Name             IP Address                       Platform  Version  Type   Comment
-----------             ----------                       --------  -------  ----   -------
WIN-P2AASSD1AF1         192.168.15.124                   500       6.1      PDC    

参考链接:

https://www.bilibili.com/video/BV16b411i7n5

https://www.freebuf.com/sectool/173366.html

https://docs.microsoft.com/zh-cn/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview

更多信息欢迎关注我的微信公众号:TeamsSix


文章作者: Teams Six
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Teams Six !
评论
  目录