当前位置: 首页 > news >正文

ssh端口探测 端口测试

目录

开放端口测试:

ssh端口探测


开放端口测试:

import socket
import threading
from time import sleepdef scan_port(ip, port, timeout=1):"""探测单个端口是否开放"""try:# 创建socket对象sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.settimeout(timeout)# 尝试连接result = sock.connect_ex((ip, port))if result == 0:print(f"端口 {port} 开放")sock.close()except Exception as e:pass  # 忽略连接过程中的异常(如超时、网络错误等)def port_scan(ip, start_port, end_port, thread_num=100):"""批量探测端口范围,使用多线程提高效率"""print(f"开始探测 {ip} 的端口范围 {start_port}-{end_port}...")threads = []for port in range(start_port, end_port + 1):# 创建线程t = threading.Thread(target=scan_port, args=(ip, port))threads.append(t)t.start()# 控制线程数量,避免过多线程导致系统资源耗尽if len(threads) >= thread_num:for t in threads:t.join()threads = []# 等待剩余线程完成for t in threads:t.join()print("端口探测完成")if __name__ == "__main__":# 注意:以下IP和端口范围仅为示例,使用时必须替换为你拥有合法授权的目标target_ip = "175.27.214.223"  # 目标IP(需合法授权)start = 1                     # 起始端口end = 20000                  # 结束端口(建议先扫描常用端口,如1-1000)port_scan(target_ip, start, end)

ssh端口探测

知道ip地址和用户名密码,不知道端口是多少,这个是探测ssh端口的:

import socket
import threadingdef scan_port_for_ssh(ip, port, timeout=1):"""探测单个端口是否开放,并尝试读取 SSH banner(如果有)"""try:sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.settimeout(timeout)res = sock.connect_ex((ip, port))if res != 0:# 端口未开放或不可达sock.close()return# 端口开放banner = Nonetry:# 读取对方可能主动发来的 banner(许多 SSH 服务会在建立连接后发送)banner = sock.recv(1024).decode(errors='ignore').strip()except socket.timeout:banner = Noneexcept Exception:banner = Noneif banner:# 如果 banner 中包含 SSH,则很大概率是 SSH 服务if "SSH" in banner.upper():print(f"[{port}] 开放 — 检测到 SSH banner: {banner}")# else:#     print(f"[{port}] 开放 — 读取到 banner,但未包含 'SSH':{banner}")sock.close()except Exception as e:# 这里忽略细节错误,避免大量噪音;可在调试时打印 e# print(f"port {port} error: {e}")passdef port_scan(ip, start_port=None, end_port=None, ports_list=None, thread_num=200, timeout=1):"""探测端口:- 可传 ports_list (优先),例如 [22,2222,2200]- 或者传 start_port 和 end_port 扫描范围"""if ports_list is None:if start_port is None or end_port is None:raise ValueError("请提供 ports_list 或 start_port 和 end_port")ports = range(start_port, end_port + 1)print(f"开始探测 {ip} 的端口范围 {start_port}-{end_port} ...")else:ports = ports_listprint(f"开始探测 {ip} 的端口列表: {ports_list} ...")threads = []for port in ports:t = threading.Thread(target=scan_port_for_ssh, args=(ip, port, timeout))threads.append(t)t.start()# 控制同时活跃线程数,避免资源耗尽if len(threads) >= thread_num:for th in threads:th.join()threads = []# 等待剩余线程完成for th in threads:th.join()print("端口探测完成")if __name__ == "__main__":target_ip = "175.27.214.223"  # 请确保你有授权# 建议先检查常见 SSH 端口与常用替代端口start_port=22end_port=5000# port_scan(target_ip, start_port=1, end_port=2000, thread_num=200, timeout=1)port_scan(target_ip, start_port=22,end_port=5000, thread_num=50, timeout=1)

http://www.dtcms.com/a/494607.html

相关文章:

  • 计算机操作系统:避免死锁
  • YOLOv3 详解:核心改进、网络架构与目标检测实践
  • Redis过期键的删除策略有哪些?
  • 云南网站建设设计公司百度网站怎么做的
  • HTTP请求走私漏洞介绍
  • 【论文笔记】Introduction to Explainable AI
  • shizuku —详细教程
  • MySQL的CRUD
  • 【C语言】基本语法结构(上篇)
  • 云原生进化论:加速构建 AI 应用
  • 【论文阅读】PathMR: Multimodal Visual Reasoning for Interpretable Pathology Analysis
  • 做护肤品好的网站不用流量的地图导航软件
  • 网站建网站建设wordpress自动标签添加内链插件
  • Java集合【开发的重点*】
  • 深度学习笔记39-CGAN|生成手势图像 | 可控制生成(Pytorch)
  • 第7篇 halcon12导出c++在vs2019配置环境显示图片
  • Socket.IO 聊天应用实例
  • 首发即交付,智元精灵G2携均胜集团过亿订单落地
  • 网站建设需要步骤到哪里查网站备案信息
  • 哈尔滨网站制作哪里专业西安公司网站制作要多少钱
  • WPF中的DataTemplate
  • 浙江建设局网站泰安北京网站建设公司哪家好
  • TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题
  • Python数据分析实战:基于5年地铁犯罪数据构建多维安全评估模型【数据集可下载】
  • YOLO系列——OpenCV DNN模块在YOLOv11检测物体时输出的边界框坐标问题
  • 网站地图怎么用wordpress发布文章添加新字段
  • OpenCV轻松入门_面向python(第六章 阈值处理)
  • Visual Studio 2017(VS2017)可以编译 OpenCV 4.5.5 为 32 位(x86)版本
  • 使用 Wireshark 进行 HTTP、MQTT、WebSocket 抓包的详细教程
  • 一个基于BiTCN-LSTM混合神经网络的时间序列预测MATLAB程序