跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Linux中Netcat工具的使用方式

目录1. 安装 Netcat

2. 常用参数

3. 使用示例

3.1 端口扫描3.2 端口监听与连接3.3 文件传输3.4 shell 反弹总结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 100863.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.txt3.3.2 服务端发送文件到客户端服务端启动监听,重定向输入为指定文件,则在客户端连接上时会发送文件数据到远端nc -l -k 127.0.0.1 10086 < fi.txt客户端连接服务端,重定向输出到指定文件,则接收到服务端数据时会将其输出到文件nc -v -p 10087 127.0.0.1 10086 > fi.txt3.3.3 使用 pv(Pipe Viewer)工具显示文件传输进度服务端重定向 nc 输出到指定文件nc -l 127.0.0.1 10086 > fi.txt客户端使用 pv 传输文件如机器上没有 pv 工具,使用包管理工具下载即可,CentOS 系统下载命令为sudo yum install pv -ypv 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中修改/etc/profile文件写错环境变量路径导致系统命令找不到问题如何解决Linux环境变量每次要source /etc/profile问题Linux中如何修改~/.bashrc或/etc/profile设置环境变量Linux /etc/passwd详解

相关文章