Linux 网络工具netcat(nc)的应用

NETCAT

netcat是Linux常用的网络工具之一,它能通过TCP和UDP在网络中读写数据,通过与其他工具结合和重定向,可以在脚本中以多种方式使用它。

netcat所做的就是在两台电脑之间建立链接并返回两个数据流,我们可以建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。

准备工作:

1)首先我们先打开两台Linux虚拟机(位于同一局域网,vmware虚拟机网络均选择桥接模式即可) 当然netcat在windows中也有应用 现在我们只考虑Linux情况

2)关闭防火墙并使用root权限

  以centos7为例 输入 systemctl stop firewalld.service 命令

3)输入命令 ifconfig 查看 ip 地址



我们对于nc命令来做一个简单介绍,我们在两台机子上使用nc,所以会有一个服务端与客户端的建立,其实就是一台机子打开一个侦听端口,另一个去连接那个端口

我们可以在shell中输入 nc -h 可以查看它的参数都有什么用

命令有很多就不再赘述 下面讲最常见的几个

  1)打开服务端口我们通常使用例如   nc -lp 333   333端口只是示例也可以选择其他端口

  2)服务端连接端口使用 例如 nc -nv 192.168.0.115 333  其中192.168.0.115是目标ip 333是目标ip的开放端口

  3)执行相关指令时我们可以在命令后添加例如 -q 1 实现完成命令后1秒关闭连接

需要注意的是 连接是双向的 无论后续进行什么操作,服务端与客户端都可以进行,例如服务端可以向客户端传输文件,同样的客户端也可以向服务端传输文件


传输文本信息

我们可以使用nc 传输文本信息就像聊天一项 下面进行演示

首先两台机子ip已查

我们用左边的机子作为服务端打开端口 输入命令:

[[email protected] chenyuhong]# nc -lp 333

右边机子去连接左边机子 输入命令:

[email protected]:~# nc -nv 192.168.0.115 333
(UNKNOWN) [192.168.0.115] 333 (?) open

现在我们就可以实现简单的信息交流了 直接在shell打字回车键即可


传输文件与目录

我们可以传输文本信息 那么可以传输文件吗 当然可以了 我们使用到重定向与nc结合就可以做到这点

例如我们传输一个mp4文件

1)服务端向客户端传输文件

服务端命令:

[[email protected] mvmp4]# nc -lp 333 < 1.mp4

客户端命令:

[email protected]:~/桌面/test# nc -nv 192.168.0.115 333 > 1.mp4 -p 1

然后我们打开客户端文件夹 发现文件已经传输过来了

2)客户端向服务端传输文件

此步骤其实只需要把上边两条命令的重定向符号交换即可  下面讲的各种操作均是如此 之后不再赘述

那么我们如何传输文件夹(目录)呢

我们可以使用打包解包命令 即把文件夹先弄成压缩包然后对方再解压

服务端向客户端传输目录

服务端命令:

[[email protected] 下载]# tar -cvf - mvmp4/  | nc -lp 333
mvmp4/
mvmp4/1.mp4
mvmp4/test.py

客户端命令:

[email protected]:~/桌面/test# nc  192.168.0.115 333 | tar -xvf -
mvmp4/
mvmp4/1.mp4
mvmp4/test.py

注意:注意命令中的空格

然后发现文件夹已经传输过来了

我们还可以配合加密命令以及管道来进行加密传输 可以自己多尝试


流媒体服务

我们甚至可以使用nc来做一个流媒体服务器

服务端:

[[email protected] mvmp4]# cat 1.mp4 | nc -lp 333

客户端:

[email protected]:~/桌面/test# nc -nv 192.168.0.115 333 | mplayer -vo x11 -cache 3000 -

3000是缓存大小  mplayer播放器需要自己安装在系统种

效果


端口扫描

是的 nc甚至可以用来端口扫描,不过我们也知道端口扫描都不是百分百准确的所以我们只用来参考就好

扫描器端:使用命令 nc -nvz ip地址 端口范围

[email protected]:~/桌面/test# nc -nvz 192.168.0.115 1-65535
(UNKNOWN) [192.168.0.115] 6000 (x11) open
(UNKNOWN) [192.168.0.115] 111 (sunrpc) open
(UNKNOWN) [192.168.0.115] 22 (ssh) open

注意,此命令是扫描tcp 如果扫描udp 需要把命令变为  nc -nvzu

nc -nvzu 192.168.0.115 1-100


远程硬盘克隆

我们可以远程复制对方硬盘代码如下

被克隆方:

 dd if=/dev/sda | nc -nv 1.1.1.1 333 –q 1 

克隆方(接收方):

 nc -lp 333 | dd of=/dev/sda 

远程控制

我们还可以远程控制对方系统,即控制shell效果

被控制方代码:

[[email protected] mvmp4]# nc -lp 333 -c bash

控制方代码:


[email protected]:~/桌面/test# nc -nv 192.168.0.115 333
(UNKNOWN) [192.168.0.115] 333 (?) open
ls
1.mp4
test.py

发现我们现在在窗口敲得命令已经是对方的反馈了 同样的我们上面讲过服务是双向的  所以也可以让监听端口方控制连接端口方 只需要把 -c bash换下位置即可如下图

如上所述,netcat配合命令重定向可以完成的事情简直不要太多 熟悉掌握nc对于网络学习有很大用处

原文地址:https://www.cnblogs.com/CYHISTW/p/11302382.html

时间: 2024-08-04 16:13:52

Linux 网络工具netcat(nc)的应用的相关文章

【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

---------------------------------------------------------- Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备 本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 在前面一篇文章中,我们已经介绍了 tap/tun 的基本原理,本文将介绍如何使用工具 tunctl 和

网络工具 Netcat 之端口扫描

端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞. nc -z -v -n 10.135.9.1 21-25  nc: connect to 10.135.9.151 port 21 (tcp) failed: Connection refused Connection to 10.135.9.151 22 port [tcp/*] succeeded! nc: connect to 10.135.9.151 port 23 (tcp) failed: Co

Linux网络工具lsof和netstat

lsof全名为list opened files,即列举系统中已经被打开的文件,基本使用如下: (1) 查看/etc/passwd使用情况 lsof /etc/password (2) 查看监听的socket网络服务 lsof -i 其通用输出格式的几个字段的内容如下: COMMAND 默认以9个字符长度显示的命令名称 PID 进程的ID号 USER 命令的执行UID或系统中登陆的用户名称 FD 该文件的文件描述符 TYPE 协议类型 DEVICE 使用Linux设备管理的设备号 SIZE 文件

Linux 网络工具之fping

系统中有个最最常用命令工具--ping,而fping 是ping 工具的加强版本.安装过程很简单: [[email protected] /]# wget --limit-rate 500k http://www.fping.org/dist/fping-3.8.tar.gz [[email protected] /]# tar zxvf fping-3.8.tar.gz && cd fping-3.8 [[email protected] /]# ./configure &&am

Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

原文地址:https://www.cnblogs.com/bakari/p/10449664.html

2016.6.17 kali Linux 隧道工具

隧道工具的基本概念: 1.在计算机网络中,隧道工具是指使用一种网络协议去封装另一种网络协议的技术. 2.通常用来数据伪装或者穿越防火墙,在入侵目标系统后,可用来提升权限和权限维持. Kali中的隧道工具介绍: (1)dns2TCP **是一种把tcp数据包封装成DNS协议数据包的封装工具,适用于目标主机只能发送DNS请求的网络: **客户端:dns2tcpc **服务端:dns2tcpd **缺点:需要有自己的域名,配置dns (2)iodline **相比dns2tcp功能更强大,支持协议更多

Linux netcat/nc 网络利器!

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. netcat 官网 http://netcat.sourceforge.net/ nc经常用来调试网络程序,  其实这个小工具结合创

Linux Netcat 命令——网络工具中的瑞士军刀

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat

玩转 Linux 之:网络工具中的瑞士军刀 Netcat

netcat号称网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 下面是一些使用netcat的例子. A (172.31.100.7) B (172.31.100.23) Linux netcat