内网端口转发利器:Sharp4TranPort使用指南
字数 1003 2025-08-22 12:22:54

Sharp4TranPort 内网端口转发工具使用指南

工具概述

Sharp4TranPort 是一款基于 .NET 开发的高效内网端口转发工具,主要用于在内网渗透测试中绕过防火墙和网络隔离限制。该工具通过创建本地与远程主机之间的隧道,实现服务端口的转发,使攻击者能够访问受保护的内网服务。

核心功能

  • 实现本地端口到远程主机端口的 TCP 数据转发
  • 支持双向数据传输
  • 提供稳定的 TCP 协议转发传输
  • 简单易用的命令行界面

基本用法

端口转发命令格式

Sharp4TranPort.exe -a pf -lp [本地端口] -rh [远程主机IP] -rp [远程端口]

参数说明

参数 全称 描述
-a pf action port forwarding 指定操作类型为端口转发
-lp local port 指定本地监听端口
-rh remote host 指定远程主机IP地址
-rp remote port 指定远程主机端口

使用示例

将本地8899端口转发到远程主机192.168.101.86的3389端口(RDP):

Sharp4TranPort.exe -a pf -lp 8899 -rh 192.168.101.86 -rp 3389

执行后,访问本地的8899端口即可连接到远程主机的3389端口。

技术实现原理

核心类与方法

  1. Start方法
    • 初始化转发配置
    • 创建Tran对象并设置参数
    • 启动端口监听
public static void start(int lport, string rehost, int report) {
    Tran tran = new Tran {
        inputConn_Port = lport,
        outputConn_Host = rehost,
        outputConn_Port = report
    };
    Console.WriteLine(string.Concat(new string[] {
        "[*]: ", DateTime.Now.ToString("[HH:mm:ss.fff]"),
        "开始监听转发:", lport.ToString(), "-->", rehost, ":", report.ToString()
    }));
    tran.StartLinstening();
}
  1. StartLinstening方法
    • 在指定端口开始监听
    • 使用回调处理连接请求
public void StartLinstening() {
    TcpHelp.Listening(this.inputConn_Port, new OnConnected(this.OnInputConnected), null);
}
  1. OnInputConnected方法
    • 处理新连接
    • 建立与远程主机的连接
    • 创建双向数据桥接
private void OnInputConnected(TcpClient inputClient) {
    try {
        string RemoteEndPoint = inputClient.Client.RemoteEndPoint.ToString();
        TcpClient outputClient = new TcpClient();
        outputClient.Connect(this.outputConn_IPAddress, this.outputConn_Port);
        bool flag = TcpHelp.Bridge(inputClient, outputClient);
        if (flag) {
            Console.WriteLine(string.Concat(new string[] {
                "[+]: ", DateTime.Now.ToString("[HH:mm:ss.fff]"),
                "转发成功:", this.inputConn_Port.ToString(), "-->",
                this.outputConn_IPAddress?.ToString(), ":", this.outputConn_Port.ToString()
            }));
        }
    } catch {...}
}

桥接机制实现

工具使用TcpHelp.Bridge方法实现两个TCP连接之间的双向数据传输:

public static bool Bridge(TcpClient clientA, TcpClient clientB) {
    // 创建两个独立Task实现双向数据传输
    new Task(delegate {
        try {
            using (NetworkStream reader = clientA.GetStream()) {
                using (NetworkStream writer = clientB.GetStream()) {
                    byte[] buffer = new byte[1024];
                    while(true) {
                        int size = reader.Read(buffer, 0, buffer.Length);
                        if (size > 0) {
                            writer.Write(buffer, 0, size);
                        } else if (!TcpHelp.TcpClientIsConnected(clientA, 500)) {
                            break;
                        }
                    }
                }
            }
        } catch {...}
    }).Start();
    
    // 反向传输Task
    new Task(delegate {
        try {
            using (NetworkStream reader = clientB.GetStream()) {
                using (NetworkStream writer = clientA.GetStream()) {
                    byte[] buffer = new byte[1024];
                    while(true) {
                        int size = reader.Read(buffer, 0, buffer.Length);
                        if (size > 0) {
                            writer.Write(buffer, 0, size);
                        } else if (!TcpHelp.TcpClientIsConnected(clientB, 500)) {
                            break;
                        }
                    }
                }
            }
        } catch {...}
    }).Start();
    
    return true;
}

使用场景

  1. 远程桌面访问:转发内网主机的RDP端口(3389)到本地
  2. Web服务访问:转发内网Web服务(80/443)到本地
  3. 数据库访问:转发内网数据库服务(1433,3306等)到本地
  4. 其他TCP服务:SSH、FTP、SMB等服务的端口转发

注意事项

  1. 需要足够的权限运行该工具
  2. 防火墙设置可能会影响转发效果
  3. 长时间保持连接可能会被网络监控设备检测
  4. 仅限合法授权测试使用

总结

Sharp4TranPort 通过简洁的代码实现了高效的端口转发功能,其核心在于:

  • 本地端口监听
  • 远程连接建立
  • 双向数据桥接

这种实现方式使得工具体积小、效率高,非常适合在内网渗透测试中使用。理解其工作原理也有助于安全人员更好地防御此类转发攻击。

Sharp4TranPort 内网端口转发工具使用指南 工具概述 Sharp4TranPort 是一款基于 .NET 开发的高效内网端口转发工具,主要用于在内网渗透测试中绕过防火墙和网络隔离限制。该工具通过创建本地与远程主机之间的隧道,实现服务端口的转发,使攻击者能够访问受保护的内网服务。 核心功能 实现本地端口到远程主机端口的 TCP 数据转发 支持双向数据传输 提供稳定的 TCP 协议转发传输 简单易用的命令行界面 基本用法 端口转发命令格式 参数说明 | 参数 | 全称 | 描述 | |------|------|------| | -a pf | action port forwarding | 指定操作类型为端口转发 | | -lp | local port | 指定本地监听端口 | | -rh | remote host | 指定远程主机IP地址 | | -rp | remote port | 指定远程主机端口 | 使用示例 将本地8899端口转发到远程主机192.168.101.86的3389端口(RDP): 执行后,访问本地的8899端口即可连接到远程主机的3389端口。 技术实现原理 核心类与方法 Start方法 初始化转发配置 创建Tran对象并设置参数 启动端口监听 StartLinstening方法 在指定端口开始监听 使用回调处理连接请求 OnInputConnected方法 处理新连接 建立与远程主机的连接 创建双向数据桥接 桥接机制实现 工具使用 TcpHelp.Bridge 方法实现两个TCP连接之间的双向数据传输: 使用场景 远程桌面访问 :转发内网主机的RDP端口(3389)到本地 Web服务访问 :转发内网Web服务(80/443)到本地 数据库访问 :转发内网数据库服务(1433,3306等)到本地 其他TCP服务 :SSH、FTP、SMB等服务的端口转发 注意事项 需要足够的权限运行该工具 防火墙设置可能会影响转发效果 长时间保持连接可能会被网络监控设备检测 仅限合法授权测试使用 总结 Sharp4TranPort 通过简洁的代码实现了高效的端口转发功能,其核心在于: 本地端口监听 远程连接建立 双向数据桥接 这种实现方式使得工具体积小、效率高,非常适合在内网渗透测试中使用。理解其工作原理也有助于安全人员更好地防御此类转发攻击。