使用 Nmap 进行 SSL/TLS 加密套件枚举
1. Nmap 简介
Nmap(Network Mapper)是一个开源的网络探测和安全审计工具。它广泛用于扫描网络并发现设备、端口及服务,同时也支持多种脚本来进行更高级的安全扫描。Nmap 的 -sV 参数可以用于探测开放端口上的服务及版本信息,配合其脚本引擎(NSE),能够进行深度服务检测与漏洞扫描。
2. SSL/TLS 加密套件与风险
SSL(Secure Sockets Layer)和 TLS(Transport Layer Security)是用于保护网络通信的协议,提供了加密和认证功能。为了确保安全性,服务器应该使用强加密套件。然而,某些旧的或配置不当的服务器可能仍然支持弱加密套件,如使用过时的 SSL 版本(如 SSLv3)或使用弱密码(如 3DES)。
因此,扫描并发现目标服务器所支持的加密套件是一项至关重要的安全检查。使用弱加密套件可能导致数据泄露、会话劫持或中间人攻击等风险。
3. 命令分解
让我们分析以下命令:
nmap -sV --script ssl-enum-ciphers -p 3389 test.com
3.1 -sV
-sV 是 Nmap 中的服务版本探测选项。它不仅可以识别开放端口,还可以探测运行在这些端口上的服务及其版本信息。通过服务版本探测,Nmap 可以通过不同的服务指纹数据库来确认特定端口上的服务(如HTTP、SMTP、TLS/SSL等)。
3.2 --script ssl-enum-ciphers
--script ssl-enum-ciphers 命令调用了 Nmap 的 NSE(Nmap Scripting Engine)脚本。这个特定脚本的作用是枚举目标服务器在某个端口上支持的 SSL/TLS 加密套件,并将其输出为易于阅读的报告。该脚本会显示每个加密套件的安全评级,并指出是否有已知的漏洞。
通过这个脚本,我们可以:
- 枚举 SSL/TLS 协议(如 SSLv3、TLSv1.0、TLSv1.2 等)。
- 显示服务器所支持的加密套件(如 AES、RC4、3DES)。
- 提供每个加密套件的加密强度评级(弱、中、强)。
- 确认服务器是否支持不安全或过时的加密协议。
3.3 -p 3389
-p 3389 指定了端口 3389,这是远程桌面协议(RDP)所使用的默认端口。通过此参数,Nmap 仅扫描该端口是否支持 SSL/TLS 加密,并不对其他端口进行检测。
3.4 test.com
test.com 是目标服务器的域名或 IP 地址。在实际使用中,您需要将其替换为您想要扫描的服务器域名或 IP 地址。
4. 执行扫描并解释结果
执行命令后,Nmap 会尝试与服务器建立 SSL/TLS 连接并测试其支持的加密套件。以下是命令输出的示例和解释:
Starting Nmap 7.92 ( https://nmap.org ) at 2024-09-08 12:00
Nmap scan report for test.com (192.0.2.1)
Host is up (0.050s latency).PORT STATE SERVICE VERSION
3389/tcp open ssl/ms-wbt-server
| ssl-enum-ciphers:
| TLSv1.2:
| ciphers:
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
| TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
| compressors:
| NULL
|_ least strength: A
4.1 服务检测
Nmap 确认端口 3389 运行的是 ssl/ms-wbt-server 服务,这意味着该服务器在 3389 端口上支持 RDP 并启用了 SSL/TLS 加密。
4.2 加密套件信息
在 TLSv1.2 下,Nmap 列出了服务器支持的多个加密套件,如 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 和 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,这些套件都被标记为 A 级,意味着它们是安全的。
4.3 加密等级
least strength: A 表示该服务器支持的最弱加密套件的强度也是 A 级,这意味着该服务器的加密强度较高,未发现弱加密套件。
5. 结果解读与后续行动
5.1 安全分析
从上述输出可以看出,该服务器在 TLSv1.2 下支持的加密套件都是较为安全的。所有列出的加密套件使用了 AES 作为加密算法,并结合了 GCM 模式,这种组合能够有效防止大多数常见的攻击(如 BEAST、CRIME 等)。因此,服务器的安全性较高。
5.2 改进措施
如果在扫描结果中发现服务器支持过时的协议(如 SSLv3)或弱加密套件(如 RC4 或 3DES),则需要对服务器的 SSL/TLS 配置进行改进。可以通过修改服务器的 SSL 配置文件,禁用不安全的协议和加密套件。
- 禁用 SSLv3 和弱加密套件:确保服务器仅支持安全的 TLS 版本(如 TLSv1.2 或 TLSv1.3)。
- 强制使用强加密算法:禁用
RC4、DES和3DES加密套件,改用 AES 或 ChaCha20 等现代加密算法。
6. 结论
通过使用 Nmap 的 ssl-enum-ciphers 脚本,我们可以轻松地枚举服务器在某个端口上所支持的 SSL/TLS 加密套件,并评估这些加密套件的强度和安全性。这种方法是进行服务器安全审计的有效工具之一,帮助我们快速定位潜在的加密弱点并采取相应的安全措施。
当扫描结果显示服务器支持不安全的加密协议或套件时,管理员应迅速对服务器进行配置更新,以确保网络通信的安全性,避免潜在的攻击风险。
相关文章:
使用 Nmap 进行 SSL/TLS 加密套件枚举
1. Nmap 简介 Nmap(Network Mapper)是一个开源的网络探测和安全审计工具。它广泛用于扫描网络并发现设备、端口及服务,同时也支持多种脚本来进行更高级的安全扫描。Nmap 的 -sV 参数可以用于探测开放端口上的服务及版本信息,配合…...
探索 Python 的火焰:Fire 库的神秘力量
文章目录 🔥 探索 Python 的火焰:Fire 库的神秘力量第一部分:背景介绍第二部分:Fire 库是什么?第三部分:如何安装 Fire?第四部分:简单库函数使用方法第五部分:场景应用第…...
【Day14-单例设计模式动态代理】
单例设计模式 什么是设计模式(Design pattern) ? 一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。设计模式有20多种,对应20多种软件开发中会遇到的问题…...
代码随想录训练营Day7 | 454.四数相加II | 383. 赎金信 | 15. 三数之和 | 18. 四数之和
代码随想录 (programmercarl.com) Leetcode 454. 四数相加 II 题目描述 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] B[j] C[k] D[l] 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N&#…...
C++和OpenGL实现3D游戏编程【目录】
欢迎来到zhooyu的专栏。 个人主页:【zhooyu】 文章专栏:【OpenGL实现3D游戏编程】 贝塞尔曲面演示: 贝塞尔曲面演示zhooyu 本专栏内容: 我们从游戏的角度出发,用C去了解一下游戏中的功能都是怎么实现的。这一切还是要…...
03-Mac系统PyCharm主题设置
目录 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm,点击Settings 3. 点击第一项Appearance& Behavior 4. 点击Appearance 5. 找到Theme进行设置 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm,点击Settings 3. 点击第一项Appearance& Behavi…...
Java并发的四大定律
每一个进入 Java 并发世界的人,都会不可避免地面临一系列问题:线程安全、并发控制、锁,以及共享资源。这些概念复杂又抽象,往往让人无从下手。幸运的是,业界早已总结出一些法则,这些法则为我们处理并发问题…...
java项目之基于springboot的贸易行业crm系统(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的基于springboot的贸易行业crm系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于sp…...
General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model
摘要 传统的OCR系统(OCR-1.0)越来越无法满足人们对智能处理人造光学字符的需求。在本文中,我们将所有人造光学信号(例如,普通文本、数学/分子公式、表格、图表、乐谱,甚至是几何形状)统称为“字…...
二十种编程语言庆祝中秋节
二十种编程语言庆祝中秋节 文章目录 二十种编程语言庆祝中秋节中秋快乐!家人们 🥳一 Python二 C三 C四 Java五 C#六 Perl七 Go八 Asp九 PHP十 JavaScript十一 JavaScript HTML十二 Visual Basic十三 早期 VB十四 Visual C十五 Delphi十六 Shell十七 Cobo…...
202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】
202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】 2024/9/12 10:44 缘起,拿到一块MIPI屏,需要使用飞凌的OK3588-C的核心板在Android12下点亮。 在飞凌的Linux R4下修改部分屏参之后即可直接点亮。 但是在飞凌的Andro…...
DMDRS搭建
DMDRS搭建 本次进行DMDRS工具的部署搭建以及使用 环境配置 操作系统及数据库配置 操作系统:使用CentOS7数据库:dm8_20240408_x86_rh7_64 服务器配置 实例名服务器IPDM1192.168.19.7(源DMDRS)DM2192.168.19.4(目的…...
【油猴脚本】00006 案例 Tampermonkey油猴脚本自定义表格列名称,自定义表格表头,自定义表格的thead里的td
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【油…...
JS - 获取剪切板内容 Clipboard API
目录 1,需求最终效果 2,实现示例 3,注意点1,只支持安全上下文环境2,只能读取当前页面的剪切板3,权限获取问题4,获取内容的 MIME_TYPE 问题1,文本内容2,图片内容 5&#x…...
Qt自动打开文件夹并高亮文件
在Qt中,如果你想要打开一个文件夹并在文件管理器中高亮显示(选中)某个文件,你可以使用以下方法: 对于Windows系统,你可以使用QProcess来启动explorer命令,并带上/select,参数来高亮显示文件。以…...
神经网络-MNIST数据集训练
文章目录 一、MNIST数据集1.数据集概述2.数据集组成3.文件结构4.数据特点 二、代码实现1.数据加载与预处理2. 模型定义3. 训练和测试函数4.训练和测试结果 三、总结 一、MNIST数据集 MNIST数据集是深度学习和计算机视觉领域非常经典且基础的数据集,它包含了大量的手…...
数据结构二
求 sizeof(name1)?(晟安信息) struct name1{ char str; short x; int num; }; sizeof name1内存对齐 8个字节 char分配8个字节 然后 short节省空间在4个字节中 而这个int独自分配分配内存 4个字节所以共8个字节 (电工时代) typedef struct _a { char c1; long i…...
Python|基于Kimi大模型,删除已上传的“指定文档”或“全部文档”(6)
前言 本文是该专栏的第6篇,后面会持续分享AI大模型干货知识,记得关注。 在本专栏上一篇《Python|基于Kimi大模型,实现上传文档并进行对话(5)》中,笔者有详细介绍“基于kimi大模型,上传指定文档并结合prompt,获取目标文本数据”。对此感兴趣的同学,可以直接点击翻阅查…...
CenterPoint-KITTI:环境配置、模型训练、效果展示;KITTI 3D 目标检测数据集下载
目录 前言 Python虚拟环境创建以及使用 KITTI3D目标检测数据集 CenterPoint-KITTI编译遇到问题合集 ImportError: cannot import name VoxelGenerator from spconv.utils 失败案例 最终解决方案 对于可选参数,road plane的处理 E: Unable to locate packag…...
【Android】ViewPager
1.ViewPager的简介和作用 ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view,用于允许用户在几个页面(或称为碎片)之间左右滑动切换。它通常用于创建像画廊或轮播图那样的用户体验。 ViewPager类直接继承了…...
深度学习从心电信号中解码呼吸频率:原理、实现与临床价值
1. 项目概述:从心电信号中“听”到呼吸声呼吸频率,这个我们每分钟都在进行却很少被精确量化的生命体征,在临床医学中扮演着至关重要的角色。它不仅是评估呼吸系统功能的直接指标,更是反映全身代谢、循环乃至神经系统状态的“窗口”…...
机器学习模型评估中的构念效度:超越基准测试分数的科学推断
1. 项目概述与核心问题在机器学习的日常研究和工程实践中,我们每天都在和各种各样的基准测试(Benchmark)打交道。无论是为了比较新提出的ResNet变体在ImageNet上的Top-1准确率,还是评估一个大型语言模型在MMLU上的常识推理能力&am…...
浅聊26上半年软考架构师
2026年上半年架构师考试已然落幕,大家都考的如何?架构师共有三门考试,上午综合知识(75道选择题)案例分析,时间为8.30-12.30;下午论文,时间为14.30-16.30。下面说说我整体的备考过程。…...
Vue3 图片标框功能实现方案
基于 Vue3 组合式 API 的图片标框(画框、标注、选框)完整实现,核心逻辑封装在 GetBoxes 组件里,复制就能用 一、功能说明 ✅ 在图片上鼠标拖拽画矩形框 ✅ 实时显示框坐标(x, y, width, height) ✅ 支持多…...
关于psthon问题
我想问问各位 我python可以查到 但是我的bit文件查不到python怎么回事...
YOLOv8晶圆体缺识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
摘要 晶圆制造过程中的缺陷检测是保证芯片良率的关键环节。本文基于YOLOv8目标检测算法,构建了一套针对晶圆表面9类典型缺陷的自动检测系统。所识别的缺陷类型包括:Center、Donut、Edge-Loc、Edge-Ring、Loc、Near-full、None、Random、Scratch。模型在…...
用Azure Kinect DK和Body Tracking SDK,5分钟实现一个实时人体骨骼点检测Demo(C++版)
5分钟实战:用Azure Kinect DK实现实时人体骨骼点追踪(C版) 当你第一次拿到Azure Kinect DK时,最令人兴奋的莫过于它强大的人体追踪能力。这款深度相机不仅能捕捉高清彩色图像,更能通过AI算法实时重建人体骨骼关节点。本…...
PS5 NOR Modifier深度解析:如何通过Windows工具修复PS5硬件故障与实现光驱版转数字版
PS5 NOR Modifier深度解析:如何通过Windows工具修复PS5硬件故障与实现光驱版转数字版 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corru…...
基于Arduino与433MHz射频的智能灯光定时系统设计与实现
1. 项目概述:告别机械定时器,打造智能灯光管家家里前后院的照明,还有出门度假时屋内的几盏灯,过去一直靠四个老旧的机械定时器来管理。说实话,这玩意儿用起来真是费劲。它的核心问题在于“死板”——你设定好晚上7点开…...
Go开发者必备:circuitbreaker API全解析与最佳实践指南 [特殊字符]
Go开发者必备:circuitbreaker API全解析与最佳实践指南 🚀 【免费下载链接】circuitbreaker Circuit Breakers in Go 项目地址: https://gitcode.com/gh_mirrors/circ/circuitbreaker 作为一名Go开发者,你是否经常遇到远程服务调用失败…...
