使用 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类直接继承了…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...