Linux下快速确定目标服务器支持哪些协议和密码套件

这篇具有很好参考价值的文章主要介绍了Linux下快速确定目标服务器支持哪些协议和密码套件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现原理是利用TLS协议的特点和握手过程来进行测试和解析响应来确定目标服务器支持哪些TLS协议和密码套件。

在TLS握手过程中,客户端和服务器会协商并使用相同的TLS协议版本和密码套件来进行通信。通过发送特定的握手请求并分析响应,可以确定目标服务器所支持的TLS协议和密码套件等信息。

使用namp工具快速确定目标服务器支持哪些协议和密码套件

在Linux下,可以使用nmap工具来快速确定目标服务器支持哪些TLS协议和密码套件。具体实现如下:

  1. 安装nmap工具:首先需要在Linux系统上安装nmap工具。可以通过包管理器(如apt、yum等)进行安装,或者从官方网站下载并编译安装。

  2. 运行nmap扫描:使用以下命令运行nmap扫描,以获取目标服务器支持的TLS协议和密码套件信息:

nmap --script ssl-enum-ciphers -p 443 <目标IP地址>

nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

其中,--script ssl-enum-ciphers表示使用ssl-enum-ciphers脚本,该脚本可以列出目标服务器支持的TLS协议和密码套件;-p 443表示只扫描目标服务器的443端口(HTTPS默认端口);<目标IP地址>是目标服务器的IP地址。

nmap扫描完成后,会输出目标服务器支持的TLS协议和密码套件信息。可以根据需要对结果进行分析和处理。

sslcan工具快速定位目标服务器支持哪些协议和密码套件

sslscan工具的主要工作原理是:通过创建多个HTTPS连接来试探服务器支持的加密方式。当使用HTTPS连接到服务器时,会交换双方所支持的加密方式,之后选择双方都能够支持的方式进行通信。

在这个过程中,如果https服务器配置不当,就会存在MITM(中间人)攻击的风险,攻击者可能利用客户端支持的较弱加密算法来欺骗服务器。例如,如果使用的是SSLV2的56位DES加密方式,那么一旦攻击者成功拦截并使用了这种加密流量,他们可能在很短的时间内就能够破解加密密钥。

此外,值得注意的是,sslscan还具有检测heartbleed漏洞的功能。Heartbleed是一个出现在OpenSSL TSL中的安全漏洞,它源于一个缓冲区的错误处理,这个错误处理允许从内存中读取数据。所以,除了探测服务器支持的协议和密码套件外,sslscan还能帮助发现并防备一些潜在的安全风险。

运行sslcan扫描:使用以下命令运行sslcan扫描,以获取目标服务器支持的协议和密码套件信息:

sslscan -h <目标IP地址>

其中,-h表示使用HTTP方式进行扫描;<目标IP地址>是目标服务器的IP地址。sslcan扫描完成后,会输出目标服务器支持的协议和密码套件信息。可以根据需要对结果进行分析和处理。

openssl ciphers密码套件

可以使用OpenSSL工具来查看Linux系统支持的TLS密码套件列表:

openssl ciphers -V | column -t

nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

将显示您的Linux系统支持的所有TLS密码套件的列表

运行openssl扫描:使用以下命令运行openssl扫描,以获取目标服务器支持的协议和密码套件信息:

openssl s_client -connect <目标IP地址>:443 -cipher <密码套件>

nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

其中,-connect <目标IP地址>:443表示连接到目标服务器的443端口;-cipher <密码套件>表示指定要测试的密码套件。

客户端和服务器不支持SSL协议或密码套件,会怎么样?

如果客户端和服务器不支持SSL协议或密码套件,可能会导致通信过程中数据的安全性受到威胁。在这种情况下,应该考虑以下解决方案:

  1. 升级客户端和服务器端的软件版本,以确保它们支持最新的SSL协议和密码套件。

  2. 如果无法立即升级软件版本,可以考虑使用其他加密协议,如TLS(传输层安全性)来替代SSL协议。

  3. 对于服务器端,可以考虑配置SSL证书和相应的密码套件,以确保通信过程中的数据安全。

  4. 对于客户端,可以考虑配置相应的安全选项,确保能够与服务器端建立安全的连接。

  5. 如果以上方法都无法解决问题,建议寻求专业的网络安全团队或厂商的帮助,以确保客户端和服务器的通信安全。

Linux下快速确定目标服务器支持哪些协议和密码套件(shell脚本实现)

#!/bin/bash

...
TLS_VERSIONS_WITH_CIPHER=(ssl2 ssl3 tls1 tls1_1 tls1_2)
TLS_VERSIONS_WITH_CIPHERSUITES=(tls1_3)

# 删除`openssl的本地副本不支持的旧TLS版本`
for (( i=${#TLS_VERSIONS_WITH_CIPHER[@]}-1; i>=0; i-- )); do
  if ! grep -qxF -- "-${TLS_VERSIONS_WITH_CIPHER[$i]}" <(openssl s_client -help 2>&1 | awk '{print $1}'); then
    unset "TLS_VERSIONS_WITH_CIPHER[$i]"
  fi
done

# TLS_VERSIONS_WITH_CIPHERSUITES创建反向查找数组
...

# 查找任何密码{,suite}名称的最大长度
MAX_NAME_LEN=$(openssl ciphers ALL:COMPLEMENTOFALL | tr ':' '\n' | wc -L)

printf "%*s" $((MAX_NAME_LEN - 2)) ""
for tlsv in "${TLS_VERSIONS_WITH_CIPHER[@]}" "${TLS_VERSIONS_WITH_CIPHERSUITES[@]}"; do
  printf "%10s" "$tlsv"
done
echo
for cipher in $(openssl ciphers 'ALL:COMPLEMENTOFALL' | sed 's/:/ /g'); do
#for cipher in $(openssl ciphers 'RSA-PSK-AES256-GCM-SHA384' | sed 's/:/ /g'); do
  tput sc
  found=0
  printf "%*s" "$MAX_NAME_LEN" "$cipher"
  if ! openssl ciphers "$cipher" >/dev/null 2>/dev/null; then
...
  else
    cipherarg=("-cipher" "$cipher")
    APPLICABLE_TLS_VERSIONS=("${TLS_VERSIONS_WITH_CIPHER[@]}")
  fi
  for tlsv in "${APPLICABLE_TLS_VERSIONS[@]}"; do
    if [ "${TLS_VERSIONS_WITHOUT_CIPHERS+0}" = 1 ]; then
      rv=-1
    else
      ...
      rv=$?
    fi
    printf "%5s%1s%4s" "" "$([ $rv -eq 0 ] && echo "√" || :)" ""
    [ $rv -eq 0 ] && found=1
  done
  if [ $found -eq 0 ]
    then tput rc
    else echo
  fi
done
printf "%78s" " "
tput rc

编译运行:
nmap ssl-enum-ciphers 密码套件,密码学,服务器,linux,网络,网络安全,SSL,c/c++

If you need the complete source code, please add the WeChat number (c17865354792)

总结

对目标服务器开放的端口进行详细扫描,以确定使用的协议。例如,通过连接到80端口可以确定使用HTTP协议,通过连接到443端口可以确定使用HTTPS协议。对HTTPS协议的端口进行进一步扫描,以确定服务器支持的密码套件。可以使用工具如sslscan或openssl s_client,通过连接到目标服务器的443端口,并通过协商SSL/TLS握手过程来获取支持的密码套件列表。

主要通过发送网络请求并解析服务器响应来获取目标服务器开放的端口和服务信息,再通过SSL/TLS握手获取服务器支持的密码套件列表。

Welcome to follow WeChat official account【程序猿编码文章来源地址https://www.toymoban.com/news/detail-793766.html

到了这里,关于Linux下快速确定目标服务器支持哪些协议和密码套件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux服务器快速安装Redis-6.0

    ​本文提供了在Linux服务器上安装Redis-6.0的详细步骤和配置方法,适用于阿里云ECS,CentOS 7.9操作系统。通过按照给定的步骤,您可以轻松地将Redis-6.0部署到您的服务器上,并进行必要的配置。

    2024年02月04日
    浏览(50)
  • Linux服务器快速安装MongoDB-5.0

    最近开始体验FastGPT开源知识库问答系统,用他们试着开发调试一些小助手。这中间需要使用到MongoDB,就在自己服务器上进行了安装,特此记录下。 环境说明:阿里云ECS,2核8G,X86架构,CentOS 7.9操作系统。 1.打开MongoDB社区版下载页面,选择我们想要安装的版本、操作系统、

    2024年02月04日
    浏览(63)
  • 黑客必杀技能之一,黑掉目标服务器后如何快速定位和查找自己需要的目标、信息、文件?如何实现输出内容带有炫酷的颜色和背景色等等?

    黑客必杀技能之一,黑掉目标服务器后如何快速定位和查找自己需要的目标、信息、文件?如何实现输出内容带有炫酷的颜色和背景色等等? 查找资源的方法有很多种,尤其是结合各种正则表达式的用法,先看一下find的高级用法和汇总。 find 命令的基本语法如下: 一、基本

    2024年02月22日
    浏览(51)
  • 在Linux系统(服务器)使用阿里云盘服务快速上传下载文件

    使用集群服务器的时候,尤其是当服务器有多个节点时有些复杂,连接集群我们一般用xshell,传输文件我们一般使用Xftp,一般对于单个节点服务器来说是方便的,使用Xftp还可以可视化本地和服务器端的文件,但当有多个节点时,这就不适用了,他不能选择节点,有局限,连接

    2024年02月04日
    浏览(54)
  • Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

    🍉 CSDN 叶庭云 : https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中,开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统,与 Windows 或 MacOS 并驾齐驱,尤其在服务器和开发环境中占据重要地位。Linux 命令,简而言之,就是指导计算机执行

    2024年04月12日
    浏览(60)
  • 一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)

    参考大佬文章: 一台机器最多能撑多少个TCP连接? 今天掰扯清楚! 这个问题要分场景,先说下结论: 客户端: 最多支持TCP连接数 = IP数 * 端口数 = IP数 * 65535 ,其中的IP数是由于linux下可以配置多IP 服务端:取决于linux服务器的内存大小, 内存数 / 静默TCP连接所占大小 3.3k ,

    2024年02月09日
    浏览(63)
  • Linux服务器监控的神器:Netdata(小白教程)快速搭建

    发现了一个单机监控的Netdata,眼前着实为之一亮。 令人印象非常之深刻的个主要特性: 界面酷炫,实时监控 零配置,即装即用 官网地址在这里: https://my-netdata.io/ netdata的主要功能,主要有几点(详细的可查看github上的说明): interactive bootstrap dashboards, 酷炫(主要是dark主

    2024年02月04日
    浏览(41)
  • Linux服务器快速安装FastGPT知识库问答系统

    最近开始体验FastGPT知识库问答系统,参考官方文档,在自己的阿里云服务器使用Docker Compose快速完成了部署。 环境说明:阿里云ECS,2核8G,X86架构,CentOS 7.9操作系统。 1.登录服务器,执行相关命令完成安装。 1.登录服务器,在/mnt目录(可以自己选择)下创建fastgpt目录,并下载

    2024年02月04日
    浏览(51)
  • Linux服务器快速安装和配置MySQL8.0指南

    环境说明:阿里云ECS,2核2G(新老用户同享,仅需99/年),X86架构,CentOS 7.9操作系统。 1.查看当前服务器是否安装了mariadb,如果有安装需要先删除,如下图所示。 2.安装库(支持MySQL实现异步IO操作)。 1.访问MySQL官网下载MySQL-8.0.35社区版rpm安装包,如下图所示,选择合适的版本和

    2024年02月05日
    浏览(65)
  • Linux服务器快速安装PostgreSQL15以及pgvector向量插件

    最近开始体验FastGPT或Dify等开源知识库问答系统,用他们试着开发调试一些小助手。这中间需要使用到PostgreSQL,就在自己服务器上进行了安装,特此记录下。 环境说明:阿里云ECS,2核8G,X86架构,CentOS 7.9操作系统。 1.打开PostgreSQL官网下载页面,选择操作系统和数据库版本。

    2024年02月04日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包