📜  使用Python在 Kali Linux 终端中制作端口扫描器(1)

📅  最后修改于: 2023-12-03 15:22:20.038000             🧑  作者: Mango

使用Python在 Kali Linux 终端中制作端口扫描器

在Kali Linux终端中使用Python编写端口扫描器是一项基本的安全工作。端口扫描器可以告诉我们目标设备上开放的端口,这些信息对于网络渗透测试是非常有用的。

介绍

Python是一种通用编程语言,适用于多种任务。它的简单易用性和广泛的支持使其成为Kali Linux等安全测试工具箱中不可或缺的一部分。

在本文中,我们将使用Python编写一个简单的端口扫描器,该扫描器将接收用户提供的IP地址和端口范围,并探测哪些端口处于开启状态。

准备工作

在开始编写代码之前,我们需要打开Kali Linux终端并确保已安装Python。可以使用以下命令来检查Python是否已安装:

python --version

如果Python安装成功,则应显示版本号。如果它没有安装,则可以使用以下命令安装Python:

sudo apt-get install python3
代码实现

代码实现分为 2 步:

  1. 解析用户输入;
  2. 筛选端口。
import argparse
import socket

def scan_ports(host, start_port, end_port):
    print('Scanning host %s from port %s to %s' % (host, start_port, end_port))
    for port in range(start_port, end_port + 1):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(1)
        try:
            s.connect((host, port))
            print('Port %d is open' % (port,))
        except:
            pass
        finally:
            s.close()

def main():
    parser = argparse.ArgumentParser(description='Port scanner.')
    parser.add_argument('--host', dest='host', type=str, required=True)
    parser.add_argument('--start-port', dest='start_port', type=int, required=True)
    parser.add_argument('--end-port', dest='end_port', type=int, required=True)

    args = parser.parse_args()

    scan_ports(args.host, args.start_port, args.end_port)

if __name__ == '__main__':
    main()

代码分为 scan_ports 以及 main 两个函数。scan_ports 函数扫描指定主机的端口,根据用户提供的起始和结束端口范围进行筛选。main 函数解析用户输入,并调用 scan_ports 函数进行扫描。

使用

我们将实现一个简单的端口扫描器,该扫描器接收以下参数:

  • --host:目标主机的IP地址;
  • --start-port:扫描的起始端口号;
  • --end-port:扫描的结束端口号。

如下面所示:

python3 portscanner.py --host 192.168.1.1 --start-port 1 --end-port 80

该命令将扫描IP地址为 192.168.1.1 的主机,其端口范围从 180

总结

在本文中,我们展示了如何使用Python在Kali Linux终端中编写一个简单的端口扫描器。我们了解了如何解析用户输入,并使用socket模块执行指定主机的端口扫描。掌握这些技能将为安全测试工作提供基础。