主机入侵痕迹自动化排查工具(Shell脚本)"

admin 2026-10-18 20:21:30 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

主机入侵痕迹自动化排查工具(Shell 脚本)

cor0ps
cor0ps

Web安全

2026年6月29日 20:00
广东

在小说阅读器读本章

去阅读

服务器遭遇入侵攻击时,逐个人工核查进程、网络、容器、定时任务等风险点耗时费力,排查极易出现遗漏。整理一套适配微服务容器环境的排查脚本,覆盖系统基线、恶意进程、外联会话、容器内部风险、登录审计、后门文件、计划任务等全维度检测,执行后自动生成带时间戳完整审计日志,快速定位入侵痕迹,大幅缩短应急溯源处置时间。

#!/bin/bash

# ========================================
# 安全排查脚本 - 针对Java容器环境
# 生成带时间戳的日志文件
# ========================================

# 设置日志文件(带时间戳)
LOG_DIR=\"./security_check_logs\"
mkdir -p \"$LOG_DIR\"
LOG_FILE=\"$LOG_DIR/security_check_$(date +%Y%m%d_%H%M%S).log\"

# 颜色输出函数(仅终端显示,不写入日志)
RED='\\033[0;31m'
GREEN='\\033[0;32m'
YELLOW='\\033[1;33m'
NC='\\033[0m'# No Color

# 日志函数:同时输出到终端和日志文件
log() {
    local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $1\"
    echo -e \"$msg\" | tee -a \"$LOG_FILE\"
}

log_cmd() {
    local cmd=\"$1\"
    local separator=\"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\"

    echo\"\" | tee -a \"$LOG_FILE\"
    echo\"$separator\" | tee -a \"$LOG_FILE\"
    echo\"【执行命令】$cmd\" | tee -a \"$LOG_FILE\"
    echo\"【执行时间】$(date '+%Y-%m-%d %H:%M:%S')\" | tee -a \"$LOG_FILE\"
    echo\"$separator\" | tee -a \"$LOG_FILE\"

    # 执行命令并追加输出到日志
    eval\"$cmd\" >> \"$LOG_FILE\" 2>&1
    local exit_code=$?

    if [ $exit_code -ne 0 ]; then
        echo\"⚠️ 命令执行异常,退出码: $exit_code\" | tee -a \"$LOG_FILE\"
    fi

    echo\"\" | tee -a \"$LOG_FILE\"
}

# ========================================
# 开始排查
# ========================================

echo -e \"${GREEN}╔══════════════════════════════════════════════════════════╗${NC}\"
echo -e \"${GREEN}║         安全排查脚本 - 开始执行                         ║${NC}\"
echo -e \"${GREEN}╚══════════════════════════════════════════════════════════╝${NC}\"

echo -e \"${YELLOW}日志文件: $LOG_FILE${NC}\"
echo\"\"

# ========================================
# 1. 系统基本信息
# ========================================
log\"========== 系统基本信息 ==========\"
log_cmd \"uname -a\"
log_cmd \"cat /etc/os-release | head -5\"
log_cmd \"uptime\"
log_cmd \"who -a\"

# ========================================
# 2. 可疑进程排查
# ========================================
log\"========== 可疑进程排查 ==========\"
log_cmd \"ps aux | grep -E '(bash|sh|nc|python|perl|curl|wget)' | grep -v grep\"
log_cmd \"ps aux | grep -E 'java.*-jar' | grep -v grep\"

# 重点关注可疑的java子进程
log_cmd \"ps -ef | grep java | grep -v grep\"

# 进程树
log\"========== 进程树(查看父子关系)==========\"
log_cmd \"pstree -p | head -200\"

# 显示CPU/内存占用最高的进程
log\"========== 资源占用TOP 10 ==========\"
log_cmd \"ps aux --sort=-%cpu | head -11\"
log_cmd \"ps aux --sort=-%mem | head -11\"

# ========================================
# 3. 网络连接排查
# ========================================
log\"========== 网络连接排查 ==========\"
log_cmd \"netstat -antlp 2>/dev/null | grep ESTABLISHED\"
log_cmd \"ss -antlp 2>/dev/null\"
log_cmd \"netstat -antlp 2>/dev/null | grep LISTEN\"
log_cmd \"lsof -i -P -n 2>/dev/null | head -100\"

# ========================================
# 4. 登录记录
# ========================================
log\"========== 登录记录 ==========\"
log_cmd \"last -i | head -50\"
log_cmd \"lastlog | grep -v 'Never logged in'\"
log_cmd \"who -a\"

# ========================================
# 5. Docker容器检查
# ========================================
log\"========== Docker容器信息 ==========\"
log_cmd \"docker ps -a --format 'table {{.Names}}\\t{{.Status}}\\t{{.Image}}\\t{{.Ports}}'\"

# 逐个检查指定容器
for container in hzlf-dji-web emqx hzlf-dji-boot minio; do
    log\"---------- 容器: $container ----------\"
    log_cmd \"docker inspect $container 2>/dev/null | head -100\"

    # 检查容器内是否有可疑进程
    log_cmd \"docker exec $container ps aux 2>/dev/null | grep -E '(bash|sh|nc|python|perl|curl|wget)' | grep -v grep\"

    # 检查容器网络连接
    log_cmd \"docker exec $container netstat -antlp 2>/dev/null | grep ESTABLISHED\"
    log_cmd \"docker exec $container ss -antlp 2>/dev/null\"
done

# ========================================
# 6. 额外安全排查
# ========================================
log\"========== 额外安全排查 ==========\"

# 定时任务检查
log_cmd \"crontab -l 2>/dev/null\"
log_cmd \"cat /etc/crontab 2>/dev/null | head -30\"

# 最近修改的可执行文件
log_cmd \"find /tmp -type f -executable -mtime -7 2>/dev/null | head -20\"
log_cmd \"find /var/tmp -type f -executable -mtime -7 2>/dev/null | head -20\"

# 检查可疑的SUID文件
log_cmd \"find / -perm -4000 -type f 2>/dev/null | head -20\"

# 检查SSH配置
log_cmd \"cat /etc/ssh/sshd_config 2>/dev/null | grep -E '^(PermitRootLogin|PasswordAuthentication|Port)'\"

# 查看系统日志中的异常
log_cmd \"tail -50 /var/log/auth.log 2>/dev/null\"
log_cmd \"tail -50 /var/log/syslog 2>/dev/null | grep -i error\"

# ========================================
# 7. 汇总
# ========================================
log\"========== 排查完成 ==========\"

# 统计关键信息
echo\"\" | tee -a \"$LOG_FILE\"
echo\"【排查汇总】\" | tee -a \"$LOG_FILE\"
echo\"日志文件: $LOG_FILE\" | tee -a \"$LOG_FILE\"
echo\"生成时间: $(date '+%Y-%m-%d %H:%M:%S')\" | tee -a \"$LOG_FILE\"

# 提取可能的可疑进程列表
echo\"\" | tee -a \"$LOG_FILE\"
echo\"【可疑进程摘要】\" | tee -a \"$LOG_FILE\"
ps aux | grep -E '(bash|sh|nc|python|perl|curl|wget)' | grep -v grep | grep -v \"$0\" | tee -a \"$LOG_FILE\" 2>/dev/null || echo\"未发现明显可疑进程\" | tee -a \"$LOG_FILE\"

# 提取ESTABLISHED连接摘要
echo\"\" | tee -a \"$LOG_FILE\"
echo\"【活跃连接摘要】\" | tee -a \"$LOG_FILE\"
netstat -antlp 2>/dev/null | grep ESTABLISHED | tee -a \"$LOG_FILE\" || echo\"未发现活跃ESTABLISHED连接\" | tee -a \"$LOG_FILE\"

echo\"\" | tee -a \"$LOG_FILE\"
echo -e \"${GREEN}✅ 排查完成!日志已保存至: $LOG_FILE${NC}\"
echo -e \"${YELLOW}💡 提示:建议重点关注 '可疑进程排查' 和 '网络连接排查' 部分${NC}\"

# 显示日志位置
ls -lh \"$LOG_FILE\"

注: Windows 上传脚本会存在换行符兼容报错,执行修复命令:sed -i 's/\r$//' check.sh

运行结果部分截图:


    主机入侵痕迹自动化排查工具(Shell脚本)" 网络安全文章

    主机入侵痕迹自动化排查工具(Shell脚本)"

    该文档介绍了一款针对Java容器环境的主机入侵痕迹自动化排查Shell脚本,覆盖系统基线、可疑进程、网络连接、Docker容器、登录审计、定时任务等全维度检测,执行后自动生成带时间戳的审计日志,旨在帮助安全运维人员快速定位入侵痕迹并缩短应急响应时间。脚本提供了详细的排查命令和结果汇总,并给出了Windows换行符兼容修复建议。
    Linux内核曝高危提权漏洞" 网络安全文章

    Linux内核曝高危提权漏洞"

    Linux内核流量控制子系统曝高危提权漏洞CVE-2026-46331(PeditCow),影响v5.18至v7.1-rc7内核。因tcf_pedit_act()函数写时复制机制存在执行顺序错误,非特权用户可通过用户命名空间利用该漏洞篡改页缓存获取root权限。PoC已公开,建议立即安装补丁或临时禁用act\\_pedit模块及非特权用户命名空间。
    Windows安全启动证书过期危机" 网络安全文章

    Windows安全启动证书过期危机"

    MicrosoftSecureBoot2011版证书于2026年6月24日起陆续过期,未迁移至2023版证书的设备虽可正常启动,但将丧失对新型引导级恶意软件的防护能力,且无法接收后续安全启动数据库更新。企业需通过OEM固件更新和Windows证书部署两阶段流程完成迁移,关键截止日期为2026年10月19日。
    评论:0   参与:  0