检查服务器机器是不是被暴力破解

发布于:2024-04-16 ⋅ 阅读:(170) ⋅ 点赞:(0)

以下是一个完整的Shell脚本,用于检测暴力破解尝试,即多次连续的失败登录尝试后终于成功登录。该脚本处理 /var/log/secure* 中的日志文件,分析失败和成功的登录尝试,并打印及保存有关潜在的暴力破解尝试的信息:

#!/bin/bash

# 设置日志文件路径模式
LOGFILES="/var/log/secure*"

# 文件存储外网登录尝试
OUTPUT_FILE="potential_bruteforce_attempts.txt"

# 用于检查是否是外网IP的函数
is_external_ip() {
    ip=$1
    # 此处假设外网IP不包括私有地址和本地回环地址
    if [[ $ip =~ ^10\. || $ip =~ ^172\.(1[6-9]|2[0-9]|3[0-1])\. || $ip =~ ^192\.168\. || $ip =~ ^127\. ]]; then
        return 1 # 是内网IP
    else
        return 0 # 是外网IP
    fi
}

# 确保输出文件是空的
> "$OUTPUT_FILE"

# 检查日志文件并分析
for LOGFILE in $LOGFILES; do
    if [[ -f "$LOGFILE" ]]; then
        echo "Analyzing log file: $LOGFILE"
        
        # 分析文件并提取含外网IP的成功登录尝试
        grep "Accepted password" "$LOGFILE" | while read line; do
            if [[ $line =~ Accepted\ password.*from\ ([^ ]+) ]]; then
                ip=${BASH_REMATCH[1]}
                if is_external_ip "$ip"; then
                    echo "$line"  # 打印到终端
                    echo "$line" >> "$OUTPUT_FILE"  # 写入到文件
                fi
            fi
        done

        # 分析失败的尝试,并检查是否后续有成功的登录
        awk '
        /Failed password/ {fail[$(NF-3)]++}  # 记录失败尝试次数
        /Accepted password/ {
            if (fail[$(NF-3)] > 3) {  # 检查是否存在多次失败尝试
                print "Brute-force detected: IP " $(NF-3) " had " fail[$(NF-3)] " failures before a success on line " NR
                print "Brute-force detected: IP " $(NF-3) " had " fail[$(NF-3)] " failures before a success on line " NR >> "'$OUTPUT_FILE'"
            }
            delete fail[$(NF-3)]  # 重置失败计数
        }
        ' "$LOGFILE"
    else
        echo "Log file does not exist: $LOGFILE"
    fi
done

echo "Analysis complete. Check $OUTPUT_FILE for potential brute-force attempts."

脚本的功能:

  1. IP检查:确定日志行中的IP是否属于外网。
  2. 成功登录尝试:捕捉并记录所有被认为是外网IP的成功登录尝试。
  3. 失败登录尝试:追踪失败的登录尝试,并在检测到成功登录后,如果之前有多次失败尝试,则报告可能的暴力破解尝试。

运行和使用脚本:

  • 保存这段脚本到一个文件中,比如 analyze_bruteforce.sh
  • 给予执行权限:chmod +x analyze_bruteforce.sh
  • 运行脚本:./analyze_bruteforce.sh

这个脚本提供了一种方法来检测潜在的安全威胁,并帮助识别需要关注的特定IP地址。它旨在提供实时反馈和记录,适用于需要监控和防范暴力破解攻击的环境。


网站公告

今日签到

点亮在社区的每一天
去签到