可疑文件、文件夹、进程监控查杀脚本

#!/bin/bash

# 可疑文件列表
SUSPICIOUS_FILES=(
    "/root/.dragosteftp"
    "/bin/CZEdY7oP"
    "/data/rcu_scheb"
    "/dev/shm/netmonxd"
    "/usr/bin/mslog/.cfg/rcu_scheb"
    "/tmp/.cfg"
    "/var/tmp/logxwatch"
    "/tmp/taskxclean"
    "/tmp/*x*"
    "/bin/nOabp95U"
    "/bin/CZEdY7oP"
    "/usr/bin/udeb"
    "/etc/security/dev_/dev_b573d3af"
    "/usr/lib/x86_64-linux-gnu/e2fsprogs/e2scrub_all_cron"
    "/sbin/e2scrub_all"
    "/usr/bin/35b0083b"
)

# 可疑目录列表
SUSPICIOUS_DIRS=(
    "/root/.cfg"
    "/dev/shm/.cfg"
    "/dev/shm/*x*"
    "/tmp/.cfg"
    "/usr/bin/mslog/.cfg"
    "/etc/cron.*"
)

# 可疑进程字段列表
SUSPICIOUS_PROC_FIELDS=(
    "/root/.cfg"
    "/dev/shm"
    "/var/tmp"
    "/tmp"
    "mining"
    "crypto"
    "miner"
    "^/[^/]*[a-zA-Z0-9]{8}$"
)

# 获取所有进程及其command信息
get_all_procs() {
    ps -eo pid,cmd=
}

# 处理可疑进程(已更新)
process_suspicious_procs() {
    all_procs=$(get_all_procs)
    match_pids=()
    while IFS= read -r line; do
        pid=$(echo $line | awk '{print $1}')
        cmd=$(echo $line | awk '{print $2}')
        
        for field in "${SUSPICIOUS_PROC_FIELDS[@]}"; do
            if [[ $cmd =~ $field ]]; then
                match_pids+=("$pid")
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Matched Command with suspicious field '$field': $cmd, PID: $pid"
                break
            fi
        done
    done <<< "$all_procs"

    if [ ${#match_pids[@]} -gt 0 ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - Found processes with suspicious fields: ${match_pids[*]}"
        for pid in "${match_pids[@]}"; do
            COMMAND_INFO=$(ps -p $pid -o command=)
            if kill -0 $pid 2>/dev/null; then
                sudo kill -9 $pid
                if [ $? -eq 0 ]; then
                    echo "$(date '+%Y-%m-%d %H:%M:%S') - Killed process with PID: $pid, Command: $COMMAND_INFO"
                else
                    echo "$(date '+%Y-%m-%d %H:%M:%S') - Failed to kill process with PID: $pid, Command: $COMMAND_INFO"
                fi
            else
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Process with PID: $pid does not exist, Command: $COMMAND_INFO"
            fi
        done
    fi
}
# 处理可疑文件
process_suspicious_files() {
    for file in "${SUSPICIOUS_FILES[@]}"; do
        if [ -f "$file" ]; then
            echo "$(date '+%Y-%m-%d %H:%M:%S') - Found suspicious file: $file"
            sudo rm -f "$file"
            if [ $? -eq 0 ]; then
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Deleted suspicious file: $file"
            else
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Failed to delete suspicious file: $file"
            fi
        fi
    done
}

# 处理可疑目录
process_suspicious_dirs() {
    for dir in "${SUSPICIOUS_DIRS[@]}"; do
        if [ -d "$dir" ]; then
            echo "$(date '+%Y-%m-%d %H:%M:%S') - Found suspicious directory: $dir"
            sudo rm -rf "$dir"
            if [ $? -eq 0 ]; then
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Deleted suspicious directory: $dir"
            else
                echo "$(date '+%Y-%m-%d %H:%M:%S') - Failed to delete suspicious directory: $dir"
            fi
        fi
    done
}

# 主循环
while true; do
    # 快速查杀可疑进程
    process_suspicious_procs

    # 较慢频率查杀可疑文件
    process_suspicious_files

    # 较慢频率查杀可疑目录
    process_suspicious_dirs

    # 设置不同任务的执行间隔
    sleep 0.5  # 进程查杀间隔
    sleep 1    # 文件和目录查杀间隔
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之群害马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值