📜  如何在 Linux 中使用 BASH 脚本和 netcat 工具编写自己的端口扫描器?

📅  最后修改于: 2022-05-13 01:57:05.273000             🧑  作者: Mango

如何在 Linux 中使用 BASH 脚本和 netcat 工具编写自己的端口扫描器?

渗透测试的第一步是侦察(信息收集),包括扫描机器中的开放端口。互联网上有各种工具可用于执行端口扫描,但是,制作自己的端口扫描器的能力令人惊叹。所以这里是为了达到同样的目的要遵循的步骤。为了制作这个端口扫描器,我们将使用netcat。您可以使用(nc -h 或 man nc)查看它是什么以及它的详细功能。

如何使用 BASH 脚本和 netcat 工具编写自己的端口扫描程序

源代码:

#!/bin/bash
if ["$1" == "" ]
then
  echo "Usage: ./port.sh [IP]"
  echo "Example ./port.sh 192.168.1.10"
else
  echo "Please wait while it is scanning all the open ports..."
  nc -nvz $1 1-65535 > $1.txt 2>&1
fi
tac $1.txt
rm -rf $1.txt

输出:

为了制作这个端口扫描器,我们将使用 netcat。您可以使用(nc -h 或 man nc)查看它是什么以及它的详细功能。

使用此端口扫描器的步骤:

步骤 1:复制源代码并创建文件port.sh并将代码粘贴到其中,然后保存。

第 2 步:确保为您的脚本授予可执行权限。键入以下命令来执行此操作。

chmod +x port.sh

使用此端口扫描器的步骤:

第 3 步:脚本类型的用法( ./port.sh [后跟目标的 IP 地址]

./port.sh 192.168.1.10

功能:

#!/bin/bash

由于我们使用的是bash ,因此第一行将是 shebang 行。 Shebang (#!)将指示操作系统我们正在使用哪个解释器,所以在我们的例子中,我们使用的是 bash,所以我们将指定它的路径(/bin/bash)。

if ["$1" == "" ]
then
  echo "Usage: ./port.sh [IP]"
  echo "Example ./port.sh 192.168.1.10"

这里我们将使用 if 语句来查看我们的变量$1是否具有正确且有效的值。在我们的例子中,如果我们的变量不包含任何值,那么它将显示脚本的用法。

else
  echo "Please wait while it is scanning all the open ports..."
  nc -nvz $1 1-65535 > $1.txt 2>&1
fi

哪里有if哪里有else ,所以如果我们的变量 $1 包含一个正确且有效的值,那么它将触发我们的 else 语句,在该语句中我们使用 Netcat 命令查看目标机器中打开了多少端口和哪些端口,然后我们将输出(结果)存储在一个文本文件中,该文件的名称与 IP 地址相同(用户将输入)。然后我们使用fi命令来指示我们的(if/else)语句的结束。

注意:您可以使用(nc -h 或 man nc)查看 netcat 是什么以及它的详细功能。

tac $1.txt
rm -rf $1.txt

结果将从最后一个打开的端口存储到它找到的第一个打开的端口,因此我们将使用tac命令(与cat 命令相反)将结果以相反的顺序排列,因此会将结果转换为正确的即从第一个开放端口到最后一个开放端口。最后以正确的顺序显示结果后,我们将使用rm -rf命令删除(删除)输出文本文件。

笔记:

nc -nvz $1 1-65535 > $1.txt 2>&

在第 8 行的源代码中, (nc -nvz $1 1-65535 > $1.txt 2>&)您可以自定义您必须在哪个范围内扫描的端口。