通过10个示例掌握 Linux ncat 命令

ncat / nc 是网络实用程序,功能类似于 cat 命令,但用于网络。它是一个通用的 CLI 工具,用于在网络上读取、写入和重定向数据。它被设计成一个可靠的后端工具,可以与脚本或其他程序一起使用。它也是一个很棒的网络调试工具,因为它可以创建任何类型的连接。

ncat / nc 可以是端口扫描工具、安全工具或监控工具,也是一个简单的 TCP 代理。由于它有这么多的功能,它被称为网络瑞士军刀。它是每个系统管理员都应该知道和掌握的工具之一。

在大多数 Debian 发行版中,nc 都可以使用,并且在安装过程中会自动安装。但是在 Minimal Centos 7 / RHEL 7 安装中,您需要使用以下命令安装。

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

管理员可以使用它来审计他们的系统安全,可以使用它来找到被打开的端口并保护它们。管理员也可以使用它作为审计 web 服务器,telnet 服务器,邮件服务器等客户端,使用它我们可以控制每个字符的发送以及查看请求的响应。还可以让它捕获客户端发送的数据,以了解他们在做什么。

在本教程中,我们将通过 10 个示例学习如何使用 nc 命令。

(1) 监听入站连接

ncat 可以在监听模式下工作,我们可以用选项 l 监听端口号上的入站连接,示例如下:

$ 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

or get the page name,

GET / HTTP/1.1

or we can get banner for OS fingerprinting with the following,

HEAD / HTTP/1.1

This will tell what software is being used to run the web Server.

(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 也可以用作聊天工具,我们可以配置服务器监听端口,然后可以从同一个端口上的远程机器连接到服务器并开始发送消息。

在服务端,运行如下命令:

$ ncat -l 8080

在客户端,运行如下命令:

$ ncat 192.168.1.100 8080

然后开始发送消息,他们将显示在服务器终端上。

(5) NC 作为代理

NC 也可以使用一个简单的命令充当代理,示例如下:

$ ncat -l 8080 | ncat 192.168.1.200 80

现在,通过端口 8080 连接到我们服务器的所有连接都将自动重定向到端口 80 的 192.168.1.200 服务器。但是由于我们使用的是管道,只能传而不能收数据,为了能够收数据,我们需要创建一个双向管道,使用以下命令:

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

现在你将能够通过 nc 代理发送和接收数据。

(6) 复制文件

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 命令也可以用来创建系统后门,这种技术实际上被黑客使用很多。为了保护我们的系统,我们应该知道它是如何工作的。要创建一个后门,使用如下命令:

$ ncat -l 10000 -e /bin/bash

e 选项将 bash 绑定到 10000 端口上,现在客户端可以连接到服务器的 10000 端口,并可以通过 bash 完全访问我们的系统

$ ncat 192.168.1.100 10000

(8) 端口转发

使用选项 c ,nc 可以进行端口转发,示例如下:

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

现在,80 端口的所有连接都将被转发到 8080 端口

(9) 设置连接超时

ncat 的监听模式是持续运行的,必须手动终止,可以用选项 w 来配置超时

$ ncat -w 10 192.168.1.100 8080

这将导致连接在 10 秒内终止,但它只能在客户端使用,不能在服务器端使用。

(10) 强制持续运行

当客户端与服务器断开连接时,一段时间后服务器也停止监听。我们可以使用选项 k 强制服务器保持连接并继续端口监听,运行如下命令:

$ ncat -l -k 8080

我的开源项目

酷瓜云课堂-开源知识付费解决方案

你可能感兴趣的:(linux)