Linux Shell测试端口的TLS协议

Shell脚本使用nmap工具来扫描目标服务器的所有开放端口,并列出每个端口支持的TLS协议加密套件。这对于检查服务器的安全配置和确保只支持安全的TLS版本非常有用。

基于 nmap 工具和ssl-enum-ciphers脚本

#!/bin/bash

# 检查是否提供了目标服务器IP或域名
if [ -z "$1" ]; then
  echo "Usage: $0 <target>"
  TARGET=localhost
else
TARGET=$1
fi
# 使用nmap扫描目标服务器的开放端口并测试每个端口支持的TLS协议
nmap -p- --open --script ssl-enum-ciphers -T4 $TARGET
  • -p-:扫描所有端口。
  • --open:只显示开放的端口。
  • --script ssl-enum-ciphers:使用ssl-enum-ciphers脚本来列出每个端口支持的TLS协议和加密套件。
  • -T4:设置扫描速度为4,以加快扫描速度

基于 openssl 工具,结合 nmap 实现

#!/bin/bash

# 检查是否提供了目标服务器的IP或域名
if [ -z "$1" ]; then
    echo "Usage: $0 <target>"
    TARGET=localhost
else
	TARGET=$1
fi

# 使用nmap扫描目标服务器的开放端口
echo "Scanning open ports on $TARGET..."
OPEN_PORTS=$(nmap -p- --open -T4 $TARGET | grep '^[0-9]' | cut -d '/' -f 1)

# 检查每个开放端口的TLS支持情况
for PORT in $OPEN_PORTS; do
    echo "Testing TLS protocols on port $PORT..."
    for PROTOCOL in ssl3 tls1 tls1_1 tls1_2 tls1_3; do
        echo -n "  Checking $PROTOCOL... "
        RESULT=$(echo | openssl s_client -connect $TARGET:$PORT -$PROTOCOL 2>&1)
        if echo "$RESULT" | grep -q "handshake failure\|no peer certificate available"; then
            echo "Not supported"
        else
            echo "Supported"
        fi
    done
done
  • nmap -p- --open -T4 $TARGET:扫描所有端口,显示开放的端口。
  • grep '^[0-9]' | cut -d '/' -f 1:从nmap的输出中提取开放端口号。
  • openssl s_client -connect $TARGET:$PORT -$PROTOCOL:尝试使用指定的TLS协议连接到每个端口。
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值