Linux中Netcat工具的使用方式

 更新时间:2024年07月18日 14:40:24   作者:谈谈1974  
这篇文章主要介绍了Linux中Netcat工具的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Netcat(nc) 是 Linux 类系统上非常实用的网络工具,它能在网络中读写数据,如果配合使用其他工具和重定向,可以实现不少强大的功能

1. 安装 Netcat

通常在不同的操作系统上使用对应的软件管理工具都能很方便地下载 nc

以下为 CentOS 操作系统的下载命令

sudo yum install nc -y

2. 常用参数

nc 常用的参数如下表所示,更多参数可以使用命令 nc -h 查看详细信息

参数功能
-l绑定监听本地端口,以服务端模式运行
-k以服务端模式运行时,当前连接结束后继续监听
-n不使用 DNS 解析域名展示
-w指定连接动作的超时时间,单位秒
-z使用 0 I/O 模式, 连接成功后立即关闭连接,不进行数据传输,通常在端口扫描时使用
-u使用 udp 传输协议,不指定该参数默认为 tcp
-p指定本地主机与远端的通信端口
-r随机选择本地主机与远端的通信端口
-s设置本地主机送出数据包的网卡 IP,通常可以使用 ifconfig 命令查看本地主机的网卡 IP

3. 使用示例

3.1 端口扫描

nc 支持端口扫描功能,可用于发现一些在机器上开放的端口,以下为相关命令:

以 0 I/O 模式,使用 udp 协议扫描指定端口是否打开

nc -v -z -u -w 3 127.0.0.1 10086

扫描多个端口,默认使用 tcp 协议

nc -v -z -w 3 127.0.0.1 10086 10087

扫描端口范围,默认使用 tcp 协议

nc -v -z -w 3 127.0.0.1 10086-10087

3.2 端口监听与连接

如果想要测试两台主机是否能够通过某个开放端口联通,可以在一台机器上用 nc 监听该端口,然后在另一台机器上用 nc 尝试连接。

如果两台机器能够正常连通的话,就可以相互发送数据并显示

  • 3.2.1 TCP 协议监听连接

服务端监听端口,一直保持监听

nc -l -k 127.0.0.1 10086

客户端指定端口连接

nc -v -p 10087 127.0.0.1 10086
  • 3.2.2 UDP 协议监听连接服务端监听端口,指定 udp 协议
nc -l -u 127.0.0.1 10086

客户端连接服务端,指定 udp 协议

nc -v -u -p 10087 127.0.0.1 10086

3.3 文件传输

通过 nc 可以实现便捷的文件传输,只要配合相关命令将机器上的输入输出重定向即可

  • 3.3.1 服务端接收客户端文件

服务端启动监听,并重定向 nc 输出到指定文件,则接收到的远端数据将被输出到文件中

nc -l 127.0.0.1 10086 > fi.txt

客户端连接服务端,重定向输入为指定文件,则在连接上服务端时会将文件内容发送出去

nc -v -p 10087 127.0.0.1 10086 < fi.txt
  • 3.3.2 服务端发送文件到客户端

服务端启动监听,重定向输入为指定文件,则在客户端连接上时会发送文件数据到远端

nc -l -k 127.0.0.1 10086 < fi.txt

客户端连接服务端,重定向输出到指定文件,则接收到服务端数据时会将其输出到文件

nc -v -p 10087 127.0.0.1 10086 > fi.txt
  • 3.3.3 使用 pv(Pipe Viewer)工具显示文件传输进度服务端重定向 nc 输出到指定文件
nc -l 127.0.0.1 10086 > fi.txt

客户端使用 pv 传输文件

如机器上没有 pv 工具,使用包管理工具下载即可,CentOS 系统下载命令为 sudo yum install pv -y

pv fi.txt | nc -v 127.0.0.1 10086

  • 3.3.4 打包传输文件夹

服务端通过 tar 命令打包文件夹,并将其输出通过管道层层传递,将其重置为 nc 连接的输入

tar -zvcf - test | pv | nc -l 127.0.0.1 10086

客户端连接服务端,并通过 tar 命令拆包

nc -v -p 10087 127.0.0.1 10086 | pv | tar -zvxf -

3.4 shell 反弹

这部分可以参考 远程代码执行(RCE)漏洞 中反弹 shell 的段落,

实际上原理就是通过代码执行将被攻击机器的输入输出重定向到远端,

远端攻击者使用nc等工具完成渗透入侵

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux CentOS7 vim临时文件使用

    Linux CentOS7 vim临时文件使用

    这篇文章主要介绍了Linux CentOS7 vim临时文件使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Linux中在防火墙中开启80端口方法示例

    Linux中在防火墙中开启80端口方法示例

    这篇文章主要介绍了Linux中在防火墙中开启80端口方法示例,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • ubuntu16.04服务器配置ssh免密码登录

    ubuntu16.04服务器配置ssh免密码登录

    通过本文给大家分享ubuntu16.04服务器配置ssh免密码登录的方法,分为客户端和服务端操作及ssh简写技巧,非常不错具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • Linux使用partprobe更新分区表的示例代码

    Linux使用partprobe更新分区表的示例代码

    partprobe 是一个用于在 Linux 操作系统中通知内核分区表变化的命令,它请求操作系统重新读取磁盘的分区表,以便及时反映对分区所做的修改,本文给大家介绍了Linux使用partprobe更新分区表的方法,需要的朋友可以参考下
    2025-03-03
  • Linux中文件描述符fd与文件指针FILE*互相转换实例解析

    Linux中文件描述符fd与文件指针FILE*互相转换实例解析

    这篇文章主要介绍了Linux中文件描述符fd与文件指针FILE*互相转换实例解析,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Linux中配置DNS全过程

    Linux中配置DNS全过程

    本文详细介绍了DNS(域名系统)的工作原理,包括域名解析的定义、作用以及解析方式,同时,文章还讲解了如何搭建DNS服务,包括配置主DNS和辅助DNS,通过配置DNS,可以将域名映射到IP地址,以便于人们记忆和访问互联网上的资源
    2025-12-12
  • linux Bash脚本判别使用者的身份方法示例

    linux Bash脚本判别使用者的身份方法示例

    这篇文章主要介绍了linux Bash脚本判别使用者的身份方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • CentOS解压rar格式包实现过程

    CentOS解压rar格式包实现过程

    文章主要介绍了如何解决yum安装报错的问题,提供了离线安装32位和64位包的方法,并详细介绍了如何使用unrar命令进行解压
    2026-01-01
  • Linux利用traceroute命令发现负载均衡的实战案例

    Linux利用traceroute命令发现负载均衡的实战案例

    在网络管理和故障排除中,了解数据包的路径和识别负载均衡节点是非常重要的,traceroute 命令是一个用于跟踪数据包在网络中经过的路由路径的工具,本文将详细介绍如何利用 traceroute 命令发现网络中的负载均,需要的朋友可以参考下
    2024-07-07
  • linux系统安装git及git常用命令

    linux系统安装git及git常用命令

    这篇文章主要介绍了linux系统安装git及git常用命令,大家参考使用吧
    2014-01-01

最新评论