📅  最后修改于: 2023-12-03 15:22:20.038000             🧑  作者: Mango
在Kali Linux终端中使用Python编写端口扫描器是一项基本的安全工作。端口扫描器可以告诉我们目标设备上开放的端口,这些信息对于网络渗透测试是非常有用的。
Python是一种通用编程语言,适用于多种任务。它的简单易用性和广泛的支持使其成为Kali Linux等安全测试工具箱中不可或缺的一部分。
在本文中,我们将使用Python编写一个简单的端口扫描器,该扫描器将接收用户提供的IP地址和端口范围,并探测哪些端口处于开启状态。
在开始编写代码之前,我们需要打开Kali Linux终端并确保已安装Python。可以使用以下命令来检查Python是否已安装:
python --version
如果Python安装成功,则应显示版本号。如果它没有安装,则可以使用以下命令安装Python:
sudo apt-get install python3
代码实现分为 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
的主机,其端口范围从 1
到 80
。
在本文中,我们展示了如何使用Python在Kali Linux终端中编写一个简单的端口扫描器。我们了解了如何解析用户输入,并使用socket模块执行指定主机的端口扫描。掌握这些技能将为安全测试工作提供基础。