用于Pentester: 文件传输的Netexec

n1ght

版主

n1ght Rep
0
0
0
Rep
0
n1ght Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
n1ght 获得
0
0
0
获得
0
n1ght 凭证
0
0
0
凭证
0
主题
19
点赞
0
HakB
8
在社区成长 8 月
LEVEL 50 100 XP
 
NetExec (NXC) 文件传输是渗透测试人员和红队人员必须了解的技术,他们需要可靠的跨协议方法来移动有效负载、窃取数据或阶段工具。 NXC 使用单一模块化接口,让您可以使用相同的命令语法通过SSH、FTP、NFS 和MS-SQL 传输文件,从而在参与过程中更快地在主机和协议之间进行切换。虽然SCP 和SMB 仍然是主流,但NXC 的统一方法简化了自动化和脚本编写,但也凸显了错误配置的服务(匿名FTP、过于宽松的NFS 导出、数据库文件功能)如何将日常传输变成严重的安全事件。本指南介绍了实用的NXC 命令、攻击场景和防御控制,以便您可以强大而安全地利用文件传输。

目录

概述
先决条件
SSH
文件传输协议
网络文件系统
SQL数据库
缓解措施
结论

概览

您上传或下载的每个文件都讲述一个故事。对于渗透测试者:
它可能会删除侦察脚本或提取密码文件。
对于防御者来说,这些相同的步骤代表横向移动、数据盗窃或持久性。
攻击者经常利用合法服务(例如SSH 或FTP)在受感染的网络中悄悄移动文件。了解这些方法有助于进攻和防守团队在攻击者利用它们之前检测误用并加强配置。
SSH Put/Get → 加密、经过身份验证的文件传输(SCP/SFTP),用于秘密部署工具、移动有效负载或泄露数据,同时保持机密性和完整性。
FTP Put/Get → 传统的、通常未加密的协议(可能允许匿名访问),用于上传/下载Web shell 或数据;在配置错误或身份验证薄弱时经常被滥用。
NFS LS/Get/Put → 将远程目录呈现为本地的网络共享;宽松的导出允许攻击者读取敏感文件、植入持久性工件或横向移动。
MS-SQL Put/Get → 数据库驱动的文件I/O(BULK INSERT/OPENROWSET、CLR、xp_cmdshell 等),使攻击者可以从数据库权限转向操作系统文件访问以进行暂存或渗透。
文件传输看似简单,但威力却非常强大。 配置错误的SSH、FTP、NFS 或MS-SQL 服务让攻击者可以毫不费力地暂存有效负载、窃取秘密或转向操作系统。底线— 不仅仅是文件: 的问题,还在于谁可以移动它、它落在哪里以及哪些进程可以读取或运行它;强制执行最小权限、集中日志记录并监控异常传输以降低风险。

先决条件

Kali Linux 包含工具
工具:NXC

SSH:SCP/SFTP 样式操作(典型 Linux 主机)

SSH 仍然是最安全、最通用的远程管理协议之一。然而,薄弱的凭据或错误的配置可能使其成为一个简单的目标。
当攻击者青睐SSH 时,可以使用有效的凭据或SSH 密钥(网络钓鱼、重复使用、暴力破解)。
目标是支持SCP/SFTP的Linux主机或网络设备。
与明文FTP 相比,加密通道减少了网络检测。
上传本地文件到targetnxc ssh 192.168.1.3 -u pentest -p 123 --put-file file.txt /tmp/file.txt
1.png
使用SSH将本地文件file.txt上传到远程主机的/tmp/file.txt进行身份验证;虽然这是一种用于暂存工具或移动数据以执行、渗透或持久化的常见管理技术,但它可能会被滥用;尤其是在凭证较弱或重复使用的情况下,可以实现未经授权的代码执行和横向移动。
下载远程filenxc ssh 192.168.1.3 -u pentest -p 123 --get-file /etc/passwd passwd
检索远程/etc/passwd并在本地保存为passwd,以枚举用户、UID/GID和shell进行侦察;确保此操作得到授权和记录,并通过更严格的控制来处理更敏感的文件(例如/etc/shadow、sshd_config、用户主目录和身份验证日志),因为它们的渗漏可能会导致权限升级,并且应该针对异常的系统文件下载或意外的SCP/SFTP GET 触发警报。
2.png

FTP:传统但仍然常见(设备、备份目标)

FTP 通常是纯文本且遗留的— 在仍然启用的情况下,它通常被滥用。
当攻击者青睐FTP 嵌入式设备时,传统服务器会提供FTP(有时是匿名)。
FTP 是明文(除非FTPS),因此网络IDS 可以检测内容- 但许多组织不会主动监控FTP 活动。
uploadsnxc ftp 192.168.1.3 -u pentest -p 123 --put file.txt file.txt
3.png

这会连接到FTP 服务器来上传file.txt,并将其另存为file.txt 在远程服务器上以进行授权文件传输。虽然方便,但FTP 上传存在风险,例如任意文件上传(包括Webshell)、服务内容操纵以及潜在的数据泄露。
下载nxc ftp 192.168.1.3 -u pentest -p 123 --get /etc/passwd
4.png

这会将远程/etc/passwd 从FTP 服务器检索到本地主机以进行侦察和用户枚举。如果FTP 守护进程拥有过多的文件系统权限或配置错误,攻击者就可以窃取敏感的主机文件。

NFS:跨网络直接文件系统访问

NFS 通过网络公开文件系统级访问,并且经常配置错误。
当攻击者青睐NFSM 时,配置导出(例如,将/或/etc 导出到大范围)。
主机挂载NFS 共享的内部网络;如果允许导出,攻击者可以读取系统文件。
列出根exportnxc nfs 192.168.1.3 --ls '/'
5.png

这会查询NFS 导出的根以识别可访问的共享并确定挂载是否可写;这是一个完美的侦察步骤,可以揭示数据盗窃或有效负载转移的路径。
下载nxc nfs 192.168.1.3 --get /etc/shadow
6.png

它尝试从NFS 导出获取/etc/shadow 以窃取密码哈希值;暴露系统目录的NFS 错误配置可能会导致这种情况发生,因此必须阻止、记录并严格控制此类访问。
Uploadnxc nfs 192.168.1.3 --put-file file.txt /mnt/file.txt
将file.txt 上传到/mnt/file.txt 处的NFS 导出以放置持久性工件或可执行负载;可写导出可能会被滥用来维持对其他主机的访问或转向其他主机。
7.png

MS-SQL:数据库文件 API 和服务器端文件 I/O(Windows 主机)

MS-SQL 服务器通常在高特权服务帐户下运行,并且可以通过SQL Server 功能访问文件系统。
当攻击者青睐MS-SQL 文件原语时,具有写入磁盘权限的数据库帐户(BULK API、xp_cmdshell 或CLR)可以在Windows 主机上暂存或检索文件。
在SQL Server 服务作为特权帐户运行的Windows 环境中很有用。
将文件上传为SQLnxc mssql 192.168.1.8 -u sa -p 'Ignite@987' --put-file file.txt C:\\users\\public\\file.txt --local-auth
8.png

使用MS-SQL 访问权限(例如sa 帐户)将file.txt 写入Windows 主机上的C:\Users\Public\file.txt。当数据库服务帐户具有文件系统权限时,攻击者滥用数据库功能来删除文件,从而将数据库变成操作系统的枢纽。
通过SQLnxc mssql 192.168.1.8 -u sa -p 'Ignite@987' --get-file C:\\users\\public\\raj.txt /tmp/raj.txt --local-auth 从Windows 路径下载
9.png

通过MS-SQL 上下文从Windows 主机检索文件并将其保存在本地。此方法可以通过数据库泄露敏感文件,充当访问其他受限数据的隐蔽通道。

结论

文件传输看似简单, 它只需要凭据(或错误配置),并为部署工具、窃取工件和泄露数据提供可靠的路径。 NXC 使这些原语在渗透测试期间易于运行,这正是防御者必须检测和监控它们的原因。
对于红队:在范围评估中负责任地使用这些方法,并始终记录
用于清理的工件。
对于蓝色团队:重点关注确认行为链的遥测(工件读取→凭证重用→出站流)并强化上述服务。

缓解措施

加强访问身份验证: 强制执行最低权限,尽可能禁用密码登录,使用SSH 密钥或MFA,并删除匿名或共享帐户。
限制网络暴露: 将SSH、FTP、NFS 和MSSQL 限制为受信任的IP 或跳转主机;对网络进行分段以隔离管理和数据库服务。
安全文件操作: 禁用不必要的文件传输功能(xp_cmdshell、FTP 上传)、限制可写目录并保护敏感路径(/etc/shadow、C:\Users\Public)。
监控检测传输: 集中SSH/FTP/NFS/MSSQL 日志记录,对系统文件夹中的意外上传/下载或新二进制文件发出警报。
定期审核强化: 持续审查服务配置、导出的共享和权限,以防止导致横向移动的错误配置。
作者:MD Aslam 作为一个充满活力的信息安全领导者,推动安全卓越并指导团队加强跨产品、网络和组织的安全。联系这里
 
顶部