Cobalt Strike----(7)

获取凭证和哈希

     要 dump 哈希,通过 [beacon] Access Dump Hashes 。你也可以使用在 Beacon 控制台中使 用 hashdump 命令。这些方法会派生一个任务注入进 LSASS 进程并 dump 当前系统中本地用户的密码哈希。

      logonpasswords 命令会使用 mimikatz 来恢复登录过当前系统的用户的明文密码和哈希。

      logonpasswords 命令等同于选项中的 [beacon] Access Run Mimikatz
      使用 dcsync [DOMAIN.FQDN] 命令从域控中提取所有帐户的密码哈希。此技术使用了用于在域控之间同步信息的 Windows API 。它需要域管理员信任关系。 Beacon 使用 mimikatz 来执行此技术。如果你想要一个特定的密码哈希,使用 dcsync [DOMAIN.FQDN] [DOMAIN\user] 命令。
使用这些命令 dump 下来的凭据会被 Cobalt Strike 收集并存储在凭据数据模型中。通过 View
Credentials 来在当前团队服务器拉取查看凭据。

端口扫描

     Beacon 有一个内置的端口扫描工具。使用 portscan [targets] [ports] [discovery method]
启动端口扫描任务。可以指定以逗号分隔的目标范围列表,端口亦是如此。比如, portscan
172.16.48.0/24 1 - 1024,8080 会扫描从 172.16.48.0 172.16.48.255 主机的 1 1024 8080
口。 有三种目标发现选项。 arp 方法使用 ARP 请求来发现一个主机是否存活。 icmp 方法发送一个 ICMP
 
     echo 请求来检查一个目标是否存活。 none 选项让端口扫描工具假设所有的主机都是存活的。
端口扫描会在 Beacon 和团队服务器通讯的这个过程中不停运行。当它有可以报告的结果,它会把结果发送到 Beacon 控制台。 Cobalt Strike 会处理这个信息并使用发现的主机更新目标模型。

网络和主机枚举

    Beacon 的网络模块提供了在 Windows 活动目录网络中查询和发现目标的工具。
使用 net dclist 命令查找目标所在域的域控。使用 net view 命令来查找目标所在域的域内目标。这些命令也填充目标模型。 net computers 命令通过在一个域控上查询电脑账号组来查找目标。

   Beacon 的网络模块中的命令是在 Windows 网络枚举 API 的基础上构建的。这些命令中的大多数是直接替换了很多 Windows 中内置的网络命令。也有一些独特的功能,比如,使用 net localgroup  \\TARGET 来列举另一个系统上的组。使用 net localgroup \\TARGET group name 来列举另一个系 统上的组内成员。这些命令在横向移动时候很好用,比如当你要去寻找另一个系统上的本地管理员时。 使用 help net 来获取 Beacon 的网络模块中所有命令的列表。使用 help net command 来获取每个单独命令的帮助信息。

信任关系

    Windows 单点登录机制的核心是访问令牌。当一个用户登入到一个 Windows 主机时,就会生成一个访问令牌。此令牌包含关于用户及其权限的信息。访问令牌还包含需要对当前用户进行身份验证到网络上的另一个系统的信息。模拟或生成一个令牌,Windows 会使用它的信息来为你身份验证到一个网络资源。
     使用 steal_token [pross id] 来模拟一个现存进程的令牌。使用 ps 命令查看哪些进程正在运行。
使用 getuid 命令会打印你的当前令牌。使用 rev2self 来恢复至你的原始令牌。
     如果你知道一个用户的凭据,使用 make_token [DOMNAIN\user] [password] 来生成一个传递这些凭据的令牌。这个令牌是你当前令牌的复制,带有修改的单点登录信息。它会展示你当前的用户名,这是预期的行为。
使用 mimikatz 来使用 Beacon 传递哈希。 Beacon 命令 pth [DOMAIN\user] [ntlm hash] 会创建和
模拟一个访问令牌来传递特定的哈希。
Beacon 的制作令牌对话框( [beacon] Access Make Token )是这些命令的前端。它将显示凭据模型的内容,并使用正确的命令将选定的凭据项转化为访问令牌。

 Kerberos 票据

使用 kerberos_ticket_use [/path/to/ticket] 来将 Kerberos 票据注入当前会话。这将允许
Beacon 与远程系统使用此票据的权限进行交互。可以通过由 mimikatz 2.0 生成的黄金票据来进行此操作。使用 kerberos_ticket_purge 来清除任何与你的会话相关联的 Kerberos 票据。

横向移动

一旦你有了域管理员或者是目标机器上的本地管理员域用户的令牌,你可以通过滥用这种信任关系来控 制目标。Cobalt Strike Beacon 内置有一些横向移动的选项。
输入 jump 来列出 Cobalt Strike 中注册的横向移动的选项。运行 jump [module] [target]
[listener] 来尝试在远程目标上运行一个 payload
Jump 模块
架构
描述
psexec
x86
使用一个服务来运行一个服务可执行文件
psexec64
x64
使用一个服务来运行一个服务可执行文件
psexec_psh
x86
使用一个服务来运行一个 PowerShell 单行程序
winrm
x86
通过 WinRM 来运行一个 PowerShell 脚本
winrm64
x64
通过 WinRM 来运行一个 PowerShell 脚本
单独运行 remote - exec 命令来列举 Cobalt Strike 中注册的远程执行模块。使用 remote - exec
[module] [target] [command+args] 来尝试在远程目标主机上运行特定的命令。

Remote-exec 模块
描述
psexec
通过服务控制管理器远程执行
winrm
通过 WinRM PowerShell )远程执行
wmi
通过 WMI PowerShell )远程执行
      横向移动是一个领域,就类似于特权提升,在此领域中一些攻击呈现出自然的在远程目标上派生会话的原语集。一些攻击仅仅给一个可执行原语。 jump remote - exec 命令之间的分离给了你自主决定如何去武器化仅执行原语的灵活性。
Cobalt Strike 也提供一个 GUI 来使得横向移动更加简单。

要使用此对话框:
    首先,决定你想用哪种信任来进行横向移动。如果你想使用你的某个 Beacon 中的令牌,勾选 Use session's current access token (使用会话的当前访问令牌)框。你也可以使用凭据或哈希来进 行横向移动。从凭据存储中选择凭据或者手动填写 User Password Domain 字段。    Beacon 会使用此信息来为你生成一个访问令牌。记住,你需要在高权限的上下文(管理员权限)中执行这些操作才能生效。
     接下来,选择用于横向移动的监听器。在这种场景中, SMB Beacon 通常是一个很好的选择。
最后,选择你想从哪个会话中执行横向移动攻击。 Cobalt Strike 的异步攻击模型要求每一个攻击都从一个受害系统中执行。如果没有可以展开攻击的 Beacon 会话就没有可以执行此操作的选项。如果你在一 个内部行动中,考虑 hook 一个你控制的 Windows 系统并以其作为你使用凭据或哈希攻击其他系统的起点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值