AWD-SecCheck 是一个针对 AWD(Attack With Defense)竞赛环境编写的自动化安全检查脚本,旨在帮助参赛选手快速完成系统安全检查和加固工作,同时也可以用于对失陷主机的快速检查和分析。
在 AWD 竞赛中,选手需要在有限的时间内完成系统的加固和漏洞修复,同时还要对失陷的主机进行快速检查和分析。AWD-SecCheck 脚本通过自动化的方式,帮助选手快速完成以下任务:
- 系统安全检查
- WebShell 检测
- 防火墙配置检查
- 数据库服务安全检查
- Web服务安全检查
- 用户和组权限检查
- 系统更新和补丁检查
- 日志文件分析
- 网络连接和端口检查
- 启动项和服务检查
- 自动化检查:脚本自动化执行多种安全检查任务,减少手动操作的工作量。
- 全面覆盖:涵盖系统、网络、Web、数据库等多个层面的安全检查。
- 日志记录:所有检查结果会保存到日志文件中,方便后续分析和审计。
- 动态配置:支持动态配置文件路径、白名单目录等,适应不同环境的需求。
- 颜色输出:通过颜色编码区分不同类型的信息(如正常、警告、错误),方便快速识别问题。
- 操作系统:Linux(支持 Debian/Ubuntu 和 CentOS/RHEL) 其余系统未进行测试
- 权限要求:需要以 root 权限运行
- 克隆项目仓库:
git clone https://github.com/lyscf/AWD-SecCheck.git cd AWD-SecCheck - 确保脚本具有可执行权限:
chmod +x AWD-SecCheck.sh
- 以 root 权限运行脚本:
sudo ./AWD-SecCheck.sh
目前脚本无需额外参数,所有输出会自动保存到日志文件中。
运行脚本后,所有检查结果会输出到终端,并同时保存到日志文件中:
$ sudo ./AWD-SecCheck.sh日志文件路径示例:
- 清理不必要的缓存文件(如 /tmp 和 /var/tmp 中的过期文件)。
- 修复敏感文件的权限(如 /etc/passwd 和 /etc/shadow)。
- 收集系统基本信息(如内核版本、发行版信息)。
- 检查已安装的软件和服务(如 Nginx、Apache、MySQL、Redis 等)。
- 针对常见的 WebShell 特征进行检测,支持 PHP、JSP 等文件类型的扫描。
- 支持白名单目录配置,避免误报。
- 检查 firewalld、iptables、ufw 等防火墙配置。
- 检测开放端口和规则,确保防火墙配置符合安全要求。
- 检查 Redis、MySQL、MongoDB、PostgreSQL 等数据库服务的配置和运行状态。
- 检测数据库端口是否暴露在公网。
- 检查新增用户和组。
- 检查 SUID/SGID 文件。
- 检查 /etc/passwd、/etc/shadow、/etc/sudoers 等文件的权限。
- 检查系统是否有待更新的软件包(支持 YUM、APT、Zypper)。
- 检查登录日志(如 /var/log/auth.log 和 /var/log/secure)。
- 检查 HTTP 服务日志(如 Nginx、Apache)。
- 列出所有网络连接和开放端口。
- 检测可疑的网络活动。
脚本需要以 root 权限运行。如果提示权限不足,请使用 sudo 或切换到 root 用户运行脚本。
- 绿色:正常信息。
- 黄色:警告信息,需要注意但不一定需要立即处理。
- 红色:错误信息,建议立即处理。
脚本会对系统进行全面检查,运行时间取决于系统规模和配置。如果运行时间过长,可以尝试优化系统环境或分模块运行脚本。
欢迎社区开发者参与项目开发和改进。如果您发现脚本中的问题或有新的功能建议,可以通过以下方式参与:
- 提交 Issue:在 GitHub 项目页面提交问题或功能建议。
- 提交 Pull Request:如果您对脚本进行了改进或添加了新功能,可以通过 Pull Request 提交代码。
本项目基于 AGPL-3.0 开源协议发布。请在使用和二次开发时遵守相关条款。
- 项目地址:https://github.com/lyscf/AWD-SecCheck
- 作者邮箱:lyscf#proton.me
- 作者 GitHub:@lyscf






