ncat 几个常用例子

ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。

ncat/nc 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。

在大多数 Debian 发行版中,nc 是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中,nc 并不会默认被安装。 你需要用下列命令手工安装。

[root@linuxtechi ~]# yum install nmap-ncat -y

系统管理员可以用它来审计系统安全,用它来找出开放的端口然后保护这些端口。 管理员还能用它作为客户端来审计 Web 服务器、telnet 服务器、邮件服务器等, 通过 nc 我们可以控制发送的每个字符,也可以查看对方的回应。

我们还可以用它捕获客户端发送的数据以此来了解这些客户端是做什么的。

在本文中,我们会通过 10 个例子来学习如何使用 nc 命令。

例子: 1) 监听入站连接

通过 -l 选项,ncat 可以进入监听模式,使我们可以在指定端口监听入站连接。 完整的命令是这样的:

$ ncat -l port_number

比如,

$ ncat -l 8080

服务器就会开始在 8080 端口监听入站连接。

例子: 2) 连接远程系统

使用下面命令可以用 nc 来连接远程系统,

$ ncat IP_address port_number

让我们来看个例子,

$ ncat 192.168.1.100 80

这会创建一个连接,连接到 IP 为 192.168.1.100 的服务器上的 80 端口,然后我们就可以向服务器发送指令了。 比如我们可以输入下面内容来获取完整的网页内容

GET / HTTP/1.1

或者获取页面名称,

GET / HTTP/1.1

或者我们可以通过以下方式获得操作系统指纹标识,

HEAD / HTTP/1.1

这会告诉我们使用的是什么软件来运行这个 web 服务器的。

例子: 3) 连接 UDP 端口

默认情况下,nc 创建连接时只会连接 TCP 端口。 不过我们可以使用 -u 选项来连接到 UDP 端口,

$ ncat -l -u 1234

现在我们的系统会开始监听 UDP 的 1234 端口,我们可以使用下面的 netstat 命令来验证这一点,

$ netstat -tunlp | grep 1234
udp           0          0 0.0.0.0:1234                 0.0.0.0:*               17341/nc
udp6          0          0 :::1234                      :::*                    17341/nc

假设我们想发送或者说测试某个远程主机 UDP 端口的连通性,我们可以使用下面命令,

$ ncat -v -u {host-ip} {udp-port}

比如:

[root@localhost ~]# ncat -v -u 192.168.105.150 53
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 192.168.105.150:53。
例子: 4) 将 nc 作为聊天工具

nc 也可以作为聊天工具来用,我们可以配置服务器监听某个端口,然后从远程主机上连接到服务器的这个端口,就可以开始发送消息了。 在服务器这端运行:

$ ncat -l 8080

在远程客户端主机上运行:

$ ncat 192.168.1.100 8080

之后开始发送消息,这些消息会在服务器终端上显示出来。

例子: 5) 将 nc 作为代理

nc 也可以用来做代理。比如下面这个例子,

$ ncat -l 8080 | ncat 192.168.1.200 80

所有发往我们服务器 8080 端口的连接都会自动转发到 192.168.1.200 上的 80 端口。 不过由于我们使用了管道,数据只能被单向传输。 要同时能够接受返回的数据,我们需要创建一个双向管道。 使用下面命令可以做到这点:

$ mkfifo 2way
$ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way

现在你可以通过 nc 代理来收发数据了。

例子: 6) 使用 nc 拷贝文件

nc 还能用来在系统间拷贝文件,虽然这么做并不推荐,因为绝大多数系统默认都安装了 ssh/scp。 不过如果你恰好遇见个没有 ssh/scp 的系统的话, 你可以用 nc 来作最后的努力。

在要接受数据的机器上启动 nc 并让它进入监听模式:

$ ncat -l  8080 > file.txt

现在去要被拷贝数据的机器上运行下面命令:

$ ncat 192.168.1.100 8080 --send-only < data.txt

这里,data.txt 是要发送的文件。 -–send-only 选项会在文件拷贝完后立即关闭连接。 如果不加该选项, 我们需要手工按下 ctrl+c 来关闭连接。

我们也可以用这种方法拷贝整个磁盘分区,不过请一定要小心。

例子: 7) 通过 nc 创建后门

nc 命令还可以用来在系统中创建后门,并且这种技术也确实被黑客大量使用。 为了保护我们的系统,我们需要知道它是怎么做的。 创建后门的命令为:

$ ncat -l 10000 -e /bin/bash

-e 标志将一个 bash 与端口 10000 相连。现在客户端只要连接到服务器上的 10000 端口就能通过 bash 获取我们系统的完整访问权限:

$ ncat 192.168.1.100 10000
例子: 8) 通过 nc 进行端口转发

我们通过选项 -c 来用 nc 进行端口转发,实现端口转发的语法为:

$ ncat -u -l  80 -c  'ncat -u -l 8080'

这样,所有连接到 80 端口的连接都会转发到 8080 端口。

例子: 9) 设置连接超时

nc 的监听模式会一直运行,直到手工终止。 不过我们可以通过选项 -w 设置超时时间:

$ ncat -w 10 192.168.1.100 8080

这回导致连接 10 秒后终止,不过这个选项只能用于客户端而不是服务端。

例子: 10) 使用 -k 选项强制 nc 待命

当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。 命令如下:

$ ncat -l -k 8080

现在即使来自客户端的连接断了也依然会处于待命状态。


via: https://www.linuxtechi.com/nc-ncat-command-examples-linux-systems/

作者:Pradeep Kumar[1] 译者:lujun9972[2] 校对:wxy[3]

本文由 LCTT[4] 原创编译,Linux中国[5] 荣誉推出

原文来自:http://www.linuxprobe.com/nc-command-linux.html

<think>好的,我现在需要回答用户关于如何在不同操作系统上安装ncat工具的问题。首先,我得确认ncat的来源和不同系统中的安装方法。 ncat是Nmap项目的一部分,通常随Nmap一起分发。所以安装ncat可能需要先安装Nmap。不同的操作系统有不同的管理工具,比如Debian/Ubuntu用apt,CentOS/RHEL用yum或dnf,Arch用pacman,macOS用Homebrew,Windows可能需要下载安装或者通过其他途径。 接下来,我需要针对每个系统详细说明安装步骤。例如,在Ubuntu上,用户可能需要先更新软件列表,然后安装nmap,这样ncat就会被自动安装。要验证是否安装成功,可以运行ncat --version命令。 另外,用户可能想知道如何验证安装是否成功,以及ncat的基本使用方法,比如监听端口或连接到远程主机。这部分可以作为补充信息,帮助用户确认安装正确并能开始使用工具。 还要注意引用用户提供的参考内容,其中提到了socat和sqlmap,但用户的问题是关于ncat的安装,所以需要集中在Nmap相关的引用上。例如,引用[1]提到了socat,但可能和ncat无关,但引用[3]提到sqlmap,这里可能不需要直接关联,但需要确保信息准确。 可能需要检查是否有常见的安装问题,比如权限不足需要sudo,或者某些系统需要额外的仓库。例如,CentOS可能需要EPEL仓库才能通过yum安装nmap。这需要明确说明,避免用户遇到问题。 对于Windows用户,需要指导他们到Nmap官网下载安装程序,并注意在安装过程中勾选ncat组件,因为默认可能不含。安装完成后,需要将安装目录添加到系统PATH,以便在命令行中使用ncat。 最后,生成相关问题,比如安装后的基本使用、常见问题解决、与其他工具的比较(如netcat、socat)等,这样用户可以进一步探索。 总结步骤:分操作系统说明安装命令,验证方法,补充使用示例,引用相关资源,生成相关问题。</think>### 如何在不同操作系统上安装ncat工具 ncat是Nmap项目中的网络工具,提供高级网络连接和数据传输功能。以下是不同系统的安装方法: --- #### **1. Debian/Ubuntu 系统** ```bash sudo apt update sudo apt install nmap # nmap安装ncat ``` 安装后验证: ```bash ncat --version ``` --- #### **2. CentOS/RHEL 系统** 需先启用EPEL仓库: ```bash sudo yum install epel-release # CentOS 7及以下 sudo yum install nmap # 或使用dnf: sudo dnf install nmap (CentOS 8+/RHEL) ``` --- #### **3. Arch Linux 系统** ```bash sudo pacman -S nmap ``` --- #### **4. macOS 系统** 通过Homebrew安装: ```bash brew install nmap ``` --- #### **5. Windows 系统** 1. 访问[Nmap官网](https://nmap.org/download.html)下载安装程序。 2. 安装时勾选 **"Install Ncat"** 选项。 3. 安装完成后,在命令行输入`ncat --version`验证(需将安装路径加入系统环境变量`PATH`)。 --- #### **验证安装** 所有系统均可通过以下命令确认安装成功: ```bash ncat --version ``` --- #### **基础使用示例** - 监听端口:`ncat -lvnp 8080` - 连接到远程主机:`ncat 192.168.1.100 8080` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值