python3+telnet批量验证网络端口连通情况

文章讲述了作者在进行攻防演练时,使用Python3.6编写脚本,通过telnet探测Excel文件中指定IP地址的SSH22端口连通性,以评估访问控制策略的执行情况。
摘要由CSDN通过智能技术生成

背景

最近做攻防演练,需要检查我们自己的机器的访问控制做好没。主要是一些关键的服务端口,比如常见的ssh的22端口。在做好策略之后需要查漏补缺,看哪些策略没有做好,或者已经做了的策略有没有生效,需要做批量验证。

最开始的想法是使用ansible去做这个事情,但是想到直接写python脚本也可以满足需求,而且可能还更简单(省去了安装ansible、编写剧本的过程)。

编码

话不多说,上AI,我把需求告诉了智谱清言。以下是我的提示词:

请你帮我用python3写一个python脚本,作用是使用telnet探测指定ip的端口联通性。ip和端口读取excel中的文件数据。

GLM-4大模型立马给我了回复,亲测可用。下面是代码:

import telnetlib
from openpyxl import load_workbook

# 读取Excel文件
wb = load_workbook('ports.xlsx')  # Excel文件名
sheet = wb.active

# 循环遍历Excel中的每一行
for row in sheet.iter_rows(min_row=2, values_only=True):  # 假设第一行是标题行
    ip, port = row  # 假设第一列是IP,第二列是端口
    try:
        # 尝试连接到指定的IP和端口
        with telnetlib.Telnet(ip, port, timeout=5) as tn:
            print(f"连接到 {ip}:{port} 成功")
    except Exception as e:
        print(f"连接到 {ip}:{port} 失败: {e}")

# 关闭Excel文件
wb.close()

这里注意我的python版本是3.6.8,如果你本地没有openpyxl包还需要下载:

pip install openpyxl

测试

按照GLM-4大模型给的回复你需要把探测的IP和端口放在脚本同级目录下一个名为:ports.xlsx的excel文件中。其中excel格式:第一列为ip,第二列为端口号。运行脚本输出效果如下:

连接到 192.168.16.21:22 失败: timed out
连接到 192.168.16.22:22 失败: timed out
连接到 192.168.16.23:22 失败: timed out
连接到 192.168.16.24:22 失败: timed out
连接到 192.168.16.25:22 失败: timed out
连接到 192.168.16.26:22 失败: [Errno 111] Connection refused
连接到 192.168.16.27:22 成功
连接到 192.168.16.28:22 失败: timed out
连接到 192.168.16.29:22 成功
连接到 192.168.16.30 失败: timed out
......

从结果很容易可以看到,192.168.16.27和192.168.16.29的22端口还是可以连通的,这时候就需要单独检查下这两台ssh的访问控制策略做好没了。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值