当前位置: 首页 > news >正文

【应急响应】Linux 自用应急响应工具(LinuxCheckShoot)

目录

  • 项目介绍 Introduction
  • 安装指南 Installation
  • 使用方法 Usage
      • 目录结构
      • 运行检查
        • linuxGun.sh
        • linuxcheck.sh
  • 贡献指南 Contributing
  • 联系方式 Contact
  • 功能特性 Features
      • linuxGun 的功能特性
        • 基础特性
        • 详细功能
      • linuxcheck 的功能特性
        • 详细功能

项目介绍 Introduction

对于每一位安全从业者来说,应急响应能力都是一门必修课,然而应急的方式千千万,应急命令复杂繁多,网上的所谓的应急检查脚本工具也是角度各异种类颇多,几乎人人会一点 linux 基础都能写出一两句检查命令,但是往往深究就会发现不是这漏一点就是那漏一点,所以应急响应水平高低往往体现在应急人员的思路和经验上。从事网络安全行业 5 年来,我总结沉淀了自己在应急响应中的一些经验和思考,本着学习和成长的态度开源出来。工具最开始只是我为了简化应急流程而写的小脚本,后来功能越扩越多,于是决定当成一个项目来写。早期版本叫 linuxcheck(更新到 v5.0 版本后不再更新),在旧版本基础上功能模块化就有了新版本叫 linuxGun,全工具使用 shell 编写,不依靠外部环境,尽量不使用第三方条件,为的就是在极端条件下能出一份力。现版本两个文件有些许的区别,请自行查看。

安装指南 Installation

1、可以到需要应急的主机上 git 安装

git clone https://github.com/sun977/linuxcheckshoot.git

2、或者下载 zip 包解压到应急主机上使用

unzip linuxcheckshoot.zip

使用方法 Usage

目录结构

1、linuxGun.sh 是新版本应急响应工具,功能已经封装成不同的模块函数,支持交互式应急,运行指定一个或者多个功能模块,也可以一把梭然后分析日志报告。

2、linuxcheck.sh 是旧版本一把梭工具,功能齐全但是未封装成函数,不支持交互式。

3、linuxcheck_EN.sh 是旧版本的英文版本(之前给阿曼学生定制的版本),全英文输出,中国人在终端编码异常懒得调整的时候可以考虑使用这个版本,一把梭。

4、checkrules 目录是存放检查规则文件的位置,不论是 linuxGun.sh 还是 linuxcheck.sh,都是基于这个目录下的规则文件进行检查的。里面的规则支持自定义(支持正则)。

  • dangerstcpports.txt 危险TCP端口定义
  • dangersudpports.txt 危险UDP端口定义
  • hackertoolslist.txt 恶意或黑客软件定义
  • dangerspslist.txt 危险进程定义

5、output 目录是存放检查结果文件的位置。运行后会自动生成,项目里面未体现,结果文件有以下几个:

  • log 存放检查日志,采集的系统日志和工具自身生成的检查日志文件都会放在这里。
  • checkresult.txt 是 linuxGun.sh 或者 linuxcheck.sh 运行结果文件(和shell输出一致),为了后期方便看所以打印了一份。
  • dangerlist.txt 是老版本linuxcheck.sh运行过程中发现的危险项输出文件(新版本 linuxGun.sh 不再输出此文件)。
  • 其他文件若干。

运行检查

[!]脚本需要使用 root 权限运行

[!]记得给 shell 文件添加执行权限

chmod +x linuxGun.sh 
或者
chmod +x linuxcheck.sh
linuxGun.sh
bash linuxGun.sh [选项] 
可使用 -h 参数查看帮助
bash linuxGun.sh -h 
指定模块函数运行(分析用户信息模块函数)
bash linuxGun.sh --system-user 
linuxcheck.sh

一把梭

bash linuxcheck.sh 

贡献指南 Contributing

代码贡献者:sun977

思路贡献者:安全圈的朋友们

联系方式 Contact

邮箱:jiuwei977@foxmail.com

纷传:启点安全实验室

功能特性 Features

linuxGun 的功能特性

基础特性

1、模块化:功能函数模块化(小白友好)

2、可定制:匹配规则可高度自定义

3、支持交互式应急

详细功能
****************************************************************__     __                      ______                     / /    /_/____   __  __ _  __ / ____/__  __ ____           / /    / // __ \ / / / /| |/_// / __ / / / // __ \         / /___ / // / / // /_/ /_>  < / /_/ // /_/ // / / /          /_____//_//_/ /_/ \__,_//_/|_| \____/ \__,_//_/ /_/           Version:6.0     Author:sun977   Date:2025.07.04  
****************************************************************
检查内容:1.采集系统基础环境信息2.网络连接情况分析3.系统进程信息分析4.系统文件信息分析5.后门排查6.webshell排查7.病毒信息排查8.内存信息排查9.黑客工具排查10.内核信息排查11.其他重要排查12.kubernets信息排查13.系统性能分析14.系统基线检查
如何使用:1.需要将本脚本上传到相应的服务器中2.运行 chmod +x linuxgun.sh 赋予脚本执行权限3.运行 ./linuxgun.sh 查看使用说明
================================================================
LinuxGun 安全检查工具 v6.0 使用说明
使用方法: bash ./linuxGun.sh [选项]
可用选项:-h, --help              显示此帮助信息--show               	详细显示linuxGun检测大纲全量检查:--all                   执行所有检查项(推荐首次运行)系统相关检查:--system                执行所有系统相关检查(baseinfo/user/crontab/history)--system-baseinfo       检查系统基础信息(IP/版本/发行版)--system-user           用户信息分析(登录用户/克隆用户/非系统用户/口令检查等)--system-crontab        检查计划任务(系统/用户级crontab)--system-history        历史命令分析(.bash_history/.mysql_history/历史下载/敏感命令等)网络相关检查:--network               网络连接信息(ARP/高危端口/网络连接/DNS/路由/防火墙策略等)进程相关检查:--psinfo                进程信息分析(ps/top/敏感进程匹配)文件相关检查:--file                  执行所有文件相关检查(系统服务/敏感目录/关键文件属性/各种日志文件分析)--file-systemservice    系统服务检查(系统服务/用户服务/启动项等)--file-dir              敏感目录检查(/tmp /root/ 隐藏文件等)--file-keyfiles         关键文件检查(SSH相关配置/环境变量/hosts/shadow/24H变动文件/特权文件等)--file-systemlog        系统日志检查(message/secure/cron/yum/dmesg/btmp/lastlog/wtmp等)[/var/log]后门与攻击痕迹检查:--backdoor              检查后门特征(SUID/SGID/启动项/异常进程)[待完成]--webshell              WebShell 排查(关键词匹配/文件特征)[待完成]--virus                 病毒信息排查(已安装可疑软件/RPM检测)[待完成]--memInfo               内存信息排查(内存占用/异常内容)[待完成]--hackerTools           黑客工具检查(自定义规则匹配)其他重要检查:--kernel                内核信息与安全配置检查(驱动排查)--other                 其他安全项检查(可以脚本/文件完整性校验/软件排查)--performance           系统性能评估(磁盘/CPU/内存/负载/流量)Kubernetes 相关检查:--k8s                   Kubernetes 全量安全检查--k8s-cluster           Kubernetes 集群信息检查(集群信息/节点信息/服务信息等)--k8s-secret            Kubernetes 集群凭据信息检查(secret/pod等) --k8s-fscan            	Kubernetes 集群敏感信息扫描(默认路径指定后缀文件[会备份敏感文件]) --k8s-baseline          Kubernetes 集群安全基线检查系统安全基线相关:--baseline              执行所有基线安全检查项--baseline-firewall     防火墙策略检查(firewalld/iptables)--baseline-selinux      SeLinux 策略检查攻击角度信息收集[可选|默认不与--all执行]:--attack-filescan       攻击角度信息收集(默认收集当前系统所有敏感文件信息)================================================================
更新日志:2024-08-08:1、完善systemCheck检查函数2025-06-29:1、所有功能封装成函数由 main 函数统一调用2、基础功能已经完备3、支持单独调用一个或多个模块函数4、统一的输出函数2025-07-02:1、添加 k8s 排查模块函数,功能包含- 集群信息检查- secrets 排查- 敏感文件扫描- 集群基线检查2025-07-03:1、添加攻击角度信息收集模块函数,功能包含- 攻击角度信息收集默认收集当前系统所有敏感文件信息2、优化进程分析模块- 高内存占用进程- 高CPU占用进程- 自定义敏感进程匹配- 异常进程检测- 孤儿进程检测- 网络连接和进程映射- 进程可疑内存映射- 文件描述符异常进程- 系统调用表完整性检测- 进程启动时间异常检测- 进程环境变量异常检测linuxGun 检测项目大纲(summary)一.系统信息排查- IP地址- 系统基础信息- 系统版本信息- 系统发行版本- 用户信息分析- 正在登录用户- 系统最后登录用户- 用户信息passwd文件分析- 检查可登录用户- 检查超级用户(除root外)- 检查克隆用户- 检查非系统用户- 检查空口令用户- 检查空口令且可登录用户- 检查口令未加密用户- 用户组信息group文件分析- 检查特权用户组(除root组外)- 相同GID用户组- 相同用户组名- 计划任务分析- 系统计划任务- 用户计划任务- 历史命令分析- 输出当前shell系统历史命令[history]- 输出用系历史命令[.bash_history]- 是否下载过脚本文件- 是否通过主机下载,传输过文件- 是否增加,删除过账号- 是否执行过黑客命令- 其他敏感命令- 检查系统中所有可能的历史文件路径[补充]- 输出系统中所有用户的历史文件[补充]- 输出数据库操作历史命令二.网络链接排查- ARP 攻击分析- 网络连接分析- 端口信息排查- TCP 端口检测- TCP 高危端口(自定义高危端口组)- UDP 端口检测- UDP 高危端口(自定义高危端口组)- DNS 信息排查- 网卡工作模式- 网络路由信息排查- 路由转发排查- 防火墙策略排查三.进程排查- ps进程分析- top进程分析- 规则匹配敏感进程(自定义进程组)- 异常进程检测- 孤儿进程检测- 网络连接和进程映射- 进程可疑内存映射- 文件描述符异常进程- 系统调用表完整性检测- 进程启动时间异常检测- 进程环境变量异常检测四.文件排查- 系统服务排查- 系统服务收集- 系统服务分析- 系统自启动服务分析- 系统正在运行的服务分析- 用户服务分析- 敏感目录排查- /tmp目录- /root目录(隐藏文件)【隐藏文件分析】- 特殊文件排查- ssh相关文件排查- .ssh目录排查- 公钥私钥排查- authrized_keys文件排查- known_hosts文件排查- sshd_config文件分析- 所有开启的配置(不带#号)- 检测是否允许空口令登录- 检测是否允许root远程登录- 检测ssh协议版本- 检测ssh版本- 环境变量排查- 环境变量文件分析- env命令分析- hosts文件排查- shadow文件排查- shadow文件权限- shadow文件属性- gshadow文件权限- gshadow文件属性- 24小时变动文件排查— SUID/SGID文件排查	- 日志文件分析- message日志分析- ZMODEM传输文件- 历史使用DNS情况- secure日志分析- 登录成功记录分析- 登录失败记录分析(SSH爆破)- SSH登录成功记录分析- 新增用户分析- 新增用户组分析- 计划任务日志分析(cron)- 定时下载文件- 定时执行脚本- yum日志分析- yum下载记录- yum卸载记录- yum安装可疑工具- dmesg日志分析[内核自检日志]- btmp日志分析[错误登录日志]- lastlog日志分析[所有用户最后一次登录日志]- wtmp日志分析[所有用户登录日志]- journalctl工具日志分析- 最近24小时日志- auditd 服务状态- rsyslog 配置文件五.后门排查六.webshell排查七.病毒排查八.内存排查九.黑客工具排查- 黑客工具匹配(规则自定义)- 常见黑客痕迹排查(待完成)十.内核排查- 内核驱动排查- 可疑驱动排查(自定义可疑驱动列表)十一.其他排查- 可疑脚本文件排查- 系统文件完整性校验(MD5)- 安装软件排查十二.k8s排查- 集群信息排查- 集群凭据排查- 集群敏感文件扫描- 集群基线检查十三.系统性能分析- 磁盘使用情况- CPU使用情况- 内存使用情况- 系统负载情况- 网络流量情况十四.基线检查- 1.账户管理- 1.1 账户审查(用户和组策略) - 系统最后登录用户- 用户信息passwd文件分析- 检查可登录用户- 检查超级用户(除root外)- 检查克隆用户- 检查非系统用户- 检查空口令用户- 检查空口令且可登录用户- 检查口令未加密用户- 用户组信息group文件分析- 检查特权用户组(除root组外)- 相同GID用户组- 相同用户组名- 1.2 密码策略- 密码有效期策略- 口令生存周期- 口令更改最小时间间隔- 口令最小长度- 口令过期时间天数- 密码复杂度策略- 密码已过期用户- 账号超时锁定策略- grub2密码策略检查- grub密码策略检查(存在版本久远-弃用)- lilo密码策略检查(存在版本久远-弃用)- 1.3 远程登录限制- 远程访问策略(基于 TCP Wrappers)- 远程允许策略- 远程拒绝策略- 1.4 认证与授权- SSH安全增强- sshd配置- 空口令登录- root远程登录- ssh协议版本- PAM策略- 其他认证服务策略- 2.文件权限及访问控制- 关键文件保护(文件或目录的权限及属性)- 文件权限策略- etc文件权限- shadow文件权限- passwd文件权限- group文件权限- securetty文件权限- services文件权限- grub.conf文件权限- xinetd.conf文件权限- lilo.conf文件权限(存在版本久远-弃用)- limits.conf文件权限- core dump 关闭- 系统文件属性检查- passwd文件属性- shadow文件属性- gshadow文件属性- group文件属性- useradd 和 usedel 的时间属性- 3.网络配置与服务- 端口和服务审计- 防火墙配置- 允许服务IP端口- 网络参数优化- 4.selinux策略- 5.服务配置策略- NIS配置策略- SNMP配置检查- Nginx配置策略- 6.日志记录与监控- rsyslog服务- 服务开启- 文件权限默认- audit服务- 日志轮转和监控- 实时监控和告警- 7.备份和恢复策略- 8.其他安全配置基准

linuxcheck 的功能特性

详细功能
*********************************************************************__     __                      ______            / /    /_/____   __  __ _  __ / ____/__  __ ____ / /    / // __ \ / / / /| |/_// / __ / / / // __ \/ /___ / // / / // /_/ /_>  < / /_/ // /_/ // / / /
/_____//_//_/ /_/ \__,_//_/|_| \____/ \__,_//_/ /_/ Version:5.0
Author:sun977
Mail:jiuwei977@foxmail.com
Date:2024.07.31linuxcheck.sh 更新日志:2024.06.16:1、优化最近24h变化文件只看文件不看目录,同时排除目录/proc,/dev,/sys,/run2、修改了找不到高危端口的文件bug3、增加了检测系统环境变量的功能[.bashrc|.bash_profile|.zshrc|.viminfo等]4、增加了journalctl日志输出2024.07.17:1、修改了logo显示bug2024.07.30:1、优化掉ifconfig命令全部使用ip替换2024.x.x:1、支持多linux系统2、添加容器检查内容3、添加k8s检查内容[说明]:1、linuxcheck.sh 可正常使用,照常维护和更新,其更新日志记录在linuxcheck.sh中2、linuxGun.sh 为新开发 5.x 版本脚本,模块化分解(开发中)3、README.md 的变动记录的是 linuxGun.sh 设想和实现4、一些好的建议和更新会在 linuxGun.sh 和 linuxcheck.sh 中都体现检查说明:1.首先采集原始信息保存到当前目录的 output/liuxcheck_[your-ip]_[date]/check_file 目录下2.将系统日志、应用日志打包并保存到当前目录的 output/liuxcheck_[your-ip]_[date]/check_file/log 目录下3.在检查过程中检查项的结果会输出到当前目录 output/liuxcheck_[your-ip]_[date]/check_file/checkresult.txt 文件中4.在检查过程中若发现存在问题则直接输出到当前目录 output/liuxcheck_[your-ip]_[date]/check_file/saveDangerResult.txt 文件中5.有些未检查可能存在问题的需要人工分析原始文件6.脚本编写环境Centos7,在实际使用过程中若发现问题可以邮件联系:jiuwei977@foxmail.com7.使用过程中若在windows下修改再同步到Linux下,请使用dos2unix工具进行格式转换,不然可能会报错8.在使用过程中必须使用root账号,不然可能导致某些项无法分析9.checkrules目录下存放的是一些检测规则,可以根据实际情况进行修改如何使用:1.需要将本脚本上传到相应的服务器中2.执行 chmod +x linuxcheck.sh3.执行 ./linuxcheck.sh 即可运行检查功能设计:1.采集系统基础环境信息2.将原始数据进行分析,并找出存在可疑或危险项3.增加基线检查的功能4.黑客工具检查功能5.所有系统通用(待定)检查内容:1.系统基础信息1.1 IP地址信息1.2 系统版本信息1.3 发行版本信息2.网络连接2.1 ARP表项2.2 ARP攻击2.3 网络连接信息2.3.1 网络连接情况2.3.2 端口监听情况[3.端口信息]2.3.2.1 TCP开放端口2.3.2.2 TCP高危端口[遍历端口规则]2.3.2.3 UDP开放端口2.3.2.4 UDP高危端口[遍历端口规则]2.3.3 网络DNS2.4 网卡工作模式2.4.1 网卡混杂模式2.4.2 网卡监听模式2.5 网络路由2.5.1 网络路由表2.5.2 网络路由转发2.6 防火墙策略2.6.1 firewalld策略2.6.2 iptables策略3.端口信息[新版迁移到2.3.2--作废]3.1 TCP开放端口3.2 TCP高危端口3.3 UDP开放端口3.4 UDP高危端口4.系统进程[改名:3.进程分析--包含18.性能分析]4.1 系统进程信息4.2 系统进程分析4.3 敏感进程匹配[规则匹配]5.自启动项5.1 用户自启动项5.2 系统自启动项5.3 危险启动项分析6.定时任务[添加计划任务文件修改时间检查--输出所有的计划任务]6.1 系统定时任务收集6.2 系统定时任务分析6.3 用户定时任务收集6.4 用户定时任务分析7.系统服务8.关键文件检查8.1 hosts文件[11.历史命令]8.2 公钥文件8.3 私钥文件8.4 authorized_keys文件8.5 known_hosts文件8.6 tmp目录检查8.7 环境变量检查8.8 /root下隐藏文件检查9.用户登录情况9.1 正在登陆的用户9.2 用户信息[passwd文件]9.3 超级用户信息9.4 克隆用户信息9.5 可登录用户信息9.6 非系统用户信息9.7 检查shadow文件9.8 空口令用户9.9 空口令且可登录用户9.10 口令未加密用户9.11 用户组信息9.11.1 用户组信息9.11.2 特权用户组9.11.3 相同GID用户组9.11.4 相同用户组名9.12 sshd登陆配置[归类到文件排查中]9.12.1 sshd配置9.12.2 空口令登录9.12.3 root远程登录9.12.4 ssh协议版本9.13 文件权限9.13.1 etc文件权限9.13.2 shadow文件权限9.13.3 passwd文件权限9.13.4 group文件权限9.13.5 securetty文件权限9.13.6 services文件权限9.13.7 grub.conf文件权限9.13.8 xinetd.conf文件权限9.13.9 lilo.conf文件权限9.13.10 limits.conf文件权限9.14 文件属性9.14.1 passwd文件属性9.14.2 shadow文件属性9.14.3 gshadow文件属性9.14.4 group文件属性9.15 useradd和userdel时间属性9.15.1 useradd时间属性9.15.2 userdel时间属性10.配置策略检查(基线检查)--[基线检查放后]10.1 远程访问策略10.1.1 远程允许策略10.1.2 远程拒绝策略10.2 账号与密码策略10.2.1 密码有效期策略10.2.1.1 口令生存周期10.2.1.2 口令更改最小时间间隔10.2.1.3 口令最小长度10.2.1.4 口令过期时间天数10.2.2 密码复杂度策略10.2.3 密码已过期用户10.2.4 账号超时锁定策略10.2.5 grub密码策略检查10.2.6 lilo密码策略检查10.3 selinux策略10.4 sshd配置10.4.1 sshd配置10.4.2 空口令登录10.4.3 root远程登录10.4.4 ssh协议版本10.5 NIS配置策略10.6 Nginx配置策略10.6.1 原始配置10.6.2 可疑配置10.7 SNMP配置检查11.历史命令[优先级需要提高--关键文件检查]11.1 系统历史命令11.1.1 系统操作历史命令11.1.2 是否下载过脚本文件11.1.3 是否增加过账号11.1.4 是否删除过账号11.1.5 历史可疑命令11.1.6 本地下载文件11.1.7 yum下载记录11.1.8 关闭历史命令记录11.2 数据库历史命令12.可疑文件检查12.1 检查脚本文件12.2 检查webshell文件(需要第三方工具)12.3 检查最近变动的敏感文件12.4 检查最近变动的所有文件12.5 黑客工具检查13.系统文件完整性校验14.系统日志分析14.1 日志配置与打包14.1.1 查看日志配置14.1.2 日志是否存在14.1.3 日志审核是否开启14.1.4 自动打包日志14.2 secure日志分析14.2.1 成功登录14.2.2 登录失败14.2.3 窗口登陆情况14.2.4 新建用户与用户组14.3 message日志分析14.3.1 传输文件14.3.2 历史使用DNS14.4 cron日志分析14.4.1 定时下载14.4.2 定时执行脚本14.5 yum日志分析14.5.1 下载软件情况14.5.2 卸载软件情况14.5.3 下载可疑软件14.6 dmesg日志分析14.6.1 内核自检分析14.7 btmp日志分析14.7.1 错误登录分析14.8 lastlog日志分析14.8.1 所有用户最后一次登录分析14.9 wtmp 日志分析14.9.1 所有用户登录分析14.10 journalctl 日志输出15.内核检查15.1 内核信息15.2 异常内核16.安装软件(rpm)16.1 安装软件16.2 可疑软件17.环境变量18.性能分析[df|ps规并到--3.进程分析]18.1 磁盘使用18.1.1 磁盘使用情况18.1.2 磁盘使用过大18.2 CPU18.2.1 CPU情况18.2.2 占用CPU前五进程18.2.3 占用CPU较多资源进程18.3 内存18.3.1 内存情况18.3.2 占用内存前五进程18.3.3 占用内存占多进程18.4 系统运行及负载18.4.1 运行时间及负载情况19.统一结果打包19.1 系统原始日志统一打包19.2 检查脚本日志统一打包

by 久违(GitHub:Sun977)

ps:脚本工具持续更新中

http://www.dtcms.com/a/269087.html

相关文章:

  • 腾讯地图 vue3 使用 封装 地图组件
  • 赛事开启|第三届视觉语音识别挑战赛 CNVSRC 2025 启动
  • 自动驾驶ROS2应用技术详解
  • 鸿蒙arkts使用关系型数据库,使用DB Browser for SQLite连接和查看数据库数据?使用TaskPool进行频繁数据库操作
  • Python 异步编程从基础到高级全面指南
  • 模拟数字电路基础-2
  • 初识Neo4j之Cypher(三)
  • leetcode1089.复写零
  • 代码审计-SQL注入
  • 简单的安卓ANR与卡顿分析
  • 要将本地分支强制更新为与远程分支完全一致(以远程为主
  • c++文字游戏_闯关打怪2.0(开源)
  • paimon.disk包:磁盘处理
  • 关于Novatek B/G-R/G白平衡色温坐标系再探究
  • 谢飞机的Java高级开发面试:从Spring Boot到分布式架构的蜕变之旅
  • 安卓10.0系统修改定制化____如何修改ROM 实现开机自动开启开发者选项与隐藏开发者选项
  • 基于区块链的电子签署系统的设计与实现(源码+文档+部署讲解)
  • da y54
  • LED 闪烁 LED 流水灯 蜂鸣器
  • IROS 2025|RL vs MPC性能对比:加州理工无人机实测,谁在「变形控制」中更胜一筹?
  • pg_class 系统表信息
  • React + Express 传输加密以及不可逆加密
  • OpenCV人脸分析------绘制面部关键点函数drawFacemarks()
  • day08-Elasticsearch
  • MinIO与SpringBoot集成完整指南
  • maven 发布到中央仓库常用脚本-02
  • 视频序列和射频信号多模态融合算法Fusion-Vital解读
  • 力扣 hot100 Day37
  • C++笔记之和的区别
  • Isaac Lab:让机器人学习更简单的开源框架