Cobalt Strike 3.13现已推出。此版本添加了TCP Beacong,进程参数欺骗,并将Obfuscate和Sleep功能扩展到SMB和TCP Beacons。
TCP Beacon
Cobalt Strike长期以来能够绕过命名管道。Cobalt Strike 3.13使用TCP Beacon扩展了这种点对点的pivot模型。现在,您可以使用绑定TCP Beacon作为权限提升和横向移动的目标。与SMB Beacon一样,您可以断开与TCP Beacon的连接,稍后再从另一个 Beacon(在同一个Cobalt Strike实例中)重新连接到它。
Cobalt Strike 3.13中的Pivot Listeners现在是stageless的反向TCP Beacon listeners。您可以从Beacon会话绑定一个pivot listener,并导出一个连接到它的stageless TCP Beacon artifact。
Cobalt Strike的SSH会话也能够控制TCP Beacon会话!是的,您现在可以通过SSH连接到数据 pivot 主机并使用它来恢复对Beacon网格的控制。
反向TCP Beacon的Pivot Listeners也可以通过SSH会话运行,但有一点需要注意:SSH守护进程通常仅限制反向端口转发到本地主机。您可以使用SSH配置中的GatewayPorts选项更改此设置。对于那些使用dropbear作为* NIX RAT的人,这是一个很好的附加pivoting选项
进程参数欺骗
对于红队职业选手而言,2018年的演讲者之一是 EDR Age 红队的Will Burgess。本次演讲讨论了EDR规避的一些技巧,包括:欺骗父进程,进程参数欺骗和隐藏内存。在Will的演讲之后,我选择了如何在Cobalt Strike中添加进程参数欺骗作为会话准备选项。我想到的是:
beacon的argu命令允许您向内部列表添加一个命令和一组伪参数。当Beacon启动其中一个命令[需要完全匹配]时,它将以挂起状态下的伪参数启动它。然后,beacon用实参更新进程内存并恢复执行。订阅新进程创建事件的工具将看到旧参数。子进程将使用欺骗参数执行。这种技术是一种回退查找恶意进程参数的方法。。
像往常一样,这并不是100%适用于红队的新技术。此技术依赖于在远程进程中读取和写入内存。这是不好的一个指标。
正如我所实现的,这种技术可以运行x86 - > x86和x64 - > x64。此外,这种技术要求伪参数与实际参数一样长或更长。最后,通过读取进程PEB来确定进程参数的程序将看到您的真实参数,而不是我们的伪参数。
尽管如此,当您绝对需要在目标上运行一个进程来完成某项任务时,这种技术是另一种掩盖您的动作的方法。
进程欺骗演示:
此视频演示了Cobalt Strike 3.13中的过程参数欺骗。这项技术基于Will Burgess在Wild West Hackin’Fest 2018的EDR Age Talk中提出的想法:
内存混淆
我一直认为拥有一个可以在内存中混淆自身的有效载荷会很酷。这是一个很好的方法来推回到寻找静态字符串的时间点分析上。Cobalt Strike 3.12为HTTP / HTTPS和DNS Beacon有效载荷引入了此功能。
Cobalt Strike 3.13也将此功能扩展到SMB和TCP Beacons。现在,这些Beacons会在等待新连接时混淆自己。当他们等待从父Beacon读取信息时,他们也会混淆自己。实际上,这些Beacons将花费大量时间进行混淆。
要启用此行为,请在Malleable C2配置文件中将stage - > sleep_mask选项设置为true 。为了获得最干净的内存体验,我建议将stage - > cleanup设置为true,并主要使用stageless payloads
Obfuscate and Sleep演示:
令牌魔术
执行execute-assembly、net、portscan和powerpick命令,现在使用您当前的令牌。此版本还更新make_token命令。它现在将您提供的凭证存储在Beacon中。当Beacon 没有使用新创建的令牌运行新进程的权限时,它将使用这些凭据回退到CreateProcessWithLogonw。这使得make-token在很大程度上可以从非特权上中使用。
查看发行说明,可看到Cobalt Strike 3.13中新功能的完整列表。授权用户可以使用更新程序获取最新信息。一个21天的 Cobalt Strike trial 也可用。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">