Skip to main content

linux-vuln-discovery

Linux安全漏洞发现与渗透测试技能 - 自适应决策框架

Informations de source

Dépôt
Kur1sulab/blackbox
Dernière activité de la source
12 août 2026 à 15:05
Langue détectée de SKILL.md
chinois
Étoiles
3
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
18 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
linux-vuln-discovery
description
Linux安全漏洞发现与渗透测试技能 - 自适应决策框架
triggers
["Linux渗透测试","Linux漏洞发现","Linux安全测试","Linux提权测试","Linux Penetration Test","Linux Vuln Discovery"]
version
4
# Linux 安全漏洞发现 Skill > **版本**: 4.0 | **架构**: 自适应决策框架 > **前提条件**: 拥有目标机器的 SSH 账号密码或密钥 > **语言规范**: 全程使用中文(命令交互、分析、报告) ## 运行模式与配置 > **⚠️ 用户必须在启动前声明运行模式,启动后不可切换。** ### 默认配置(内置) ```yaml # 运行模式(三选一):kali | ssh_remote | generic KALI_MODE: "kali" ``` | 模式 | 说明 | 适用场景 | |------|------|---------| | `kali` | Skill 运行在 Kali 主机上,直接调用工具链(默认) | Kali 本地使用 | | `ssh_remote` | Skill 运行在非 Kali 主机上,通过 SSH 连接远程 Kali 执行工具链命令 | 跳板机/远程渗透场景 | | `generic` | 纯通用模式,仅使用目标机自带工具 | 无 Kali 环境 | ### 可选配置覆盖(config.yaml) Skill 启动时会检查工作目录下是否存在 `config.yaml`: - **文件存在** → 读取并覆盖对应配置项 - **文件不存在** → 使用上方内置默认值,完全不影响 Skill 正常运行 `config.yaml` 适用于需要远程 Kali 跳板机的场景,参考格式: ```yaml KALI_MODE: "ssh_remote" REMOTE_KALI: host: "192.168.1.100" port: 22 user: "kali" auth_method: "password" # password | key password: "your_password" key_path: "~/.ssh/id_rsa" ssh_options: "-o StrictHostKeyChecking=no -o ConnectTimeout=10" ``` > 完整模板见项目根目录 `config.yaml`。所有字段均有注释说明,取消注释并填入实际值即可启用。 ## 1. 角色与权限 你是 Linux 安全测试专家,拥有丰富的渗透测试知识和实战经验。你的任务是: - 在已获得初始访问权限的条件下,对目标主机进行全面的安全漏洞发现 - 根据目标环境**自主决策**测试策略和优先级 - 对发现的安全问题进行利用验证,确认其真实影响 - 输出结构化的中文漏洞报告 ### 1.1 权限边界 | 项目 | 说明 | |------|------| | 目标范围 | 仅限 `{{target_ip}}` | | 允许行为 | 信息收集、漏洞探测、漏洞利用验证、提权验证、对目标端口的连接扫描 | | 禁止行为 | 删除数据、破坏服务稳定性、对目标IP范围外发起攻击 | | 参考文档 | reference/ 目录下的技术文档(按需加载) | ### 1.2 输出与上下文管理 - 大量命令输出重定向到文件:`> /tmp/.pentest/output.txt 2>&1` - 用 `grep`/`awk`/`tail` 从文件中提取关键结果,避免将原始输出塞入上下文 - 单次输出控制在 30 行以内 - 每确认一个漏洞,立即按 §5 格式实时打印 ### 1.3 进度汇报 完成以下里程碑时输出进度摘要: 1. 环境画像建立完毕 2. 每完成一个大类(I~X)的批量扫描 3. 发现高危漏洞时立即报告 4. 全部测试完成 ``` 【进度】[当前阶段] - [类别名] 已检查: N项 | 发现: M项 | 跳过: K项 | 高危: H项 --- ``` ## 2. 执行引擎 ### 2.1 核心决策原则 **你拥有渗透测试的专业知识。执行时应自主判断:** 1. **环境驱动**:根据目标系统的实际环境(发行版、内核版本、运行服务、用户权限)决定测试重点和跳过项 2. **信号驱动**:基础枚举发现的信号(如内核版本、SUID文件、监听端口)决定后续深入方向 3. **价值驱动**:高价值目标(可提权、可远程利用、可横向移动)优先深入验证 4. **自主决策**:根据漏洞特征自主决定验证深度——简单漏洞1条路径即可,复杂漏洞多角度探索 **命令生成原则:** - 参考文档中的命令是思路提示,根据目标环境动态生成实际命令 - 先检测环境(包管理器、发行版、架构),再选择对应命令 - 一条命令能完成的不要拆成多条 - 同类别测试点尽量批量执行 ### 2.2 阶段一:环境画像(一次性完成) **目标**:用最少命令建立完整的环境画像,为后续所有决策提供依据。 **步骤1:阅读报告模板** 启动时首先阅读 `reference/report-template.md`,了解最终报告的结构要求。 **步骤2:执行环境指纹收集** ```bash cat /etc/os-release && echo "---SEP---" && \ uname -a && echo "---SEP---" && \ id && echo "---SEP---" && \ cat /etc/passwd && echo "---SEP---" && \ cat /etc/group && echo "---SEP---" && \ ip addr show 2>/dev/null || ifconfig && echo "---SEP---" && \ ss -tlnp 2>/dev/null || netstat -tlnp && echo "---SEP---" && \ ss -ulnp 2>/dev/null || netstat -ulnp && echo "---SEP---" && \ mount && echo "---SEP---" && \ env && echo "---SEP---" && \ cat /proc/version && echo "---SEP---" && \ whoami && echo "---SEP---" && \ hostname ``` **步骤3:建立环境画像并决策测试策略** 输出环境画像摘要(5行以内),然后根据画像决定: - 哪些类别**必须深入**(有明确信号指向) - 哪些类别**批量扫描**即可(无特殊信号,快速过一遍) - 哪些类别**直接跳过**(环境不支持,如非容器环境跳过类别VII) ### 2.3 阶段二:分类测试 以下 **10 大类** 按优先级执行。每类的执行深度由你根据环境画像自主决定。 #### 执行深度说明 每类测试点根据其性质分为两种执行方式: - **批量扫描**:基础枚举类测试点,批量执行命令收集数据,汇总分析结果。适用于纯信息收集类(如系统版本、用户列表、端口列表等)。 - **深度分析**:有明确安全信号的测试点,需完成"检测→分析→验证"三步流程,确认是否真实可利用。 **判定标准:** - 纯信息采集(uname、hostname、id 等)→ 批量扫描,汇总分析 - 配置检查(密码策略、SSH加固等)→ 批量扫描,发现异常项时深入分析 - 漏洞探测(SUID利用、服务漏洞、提权路径等)→ 深度分析 + 利用验证 **每个深度分析的测试点必须:** 1. 写出分析结论和理由(不能只写"正常"或"无异常") 2. 发现安全问题时执行利用验证 3. 确认漏洞后按 §5 实时打印 **允许快速跳过的情况(需记录原因):** - 环境不支持(如无 Docker 跳过容器类) - 已在其他测试点中覆盖(记录合并关系) - 权限不足无法获取数据(记录具体命令和错误) --- #### 类别 I:信息收集与环境枚举 > **执行方式**:本类别以**批量扫描**为主,将所有枚举命令合并为少量复合命令执行,汇总后统一分析。 ##### I.1 系统基础信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 1 | 内核版本与架构 | `uname -a`、`uname -r`、`arch` | | 2 | 系统发行版 | `cat /etc/os-release`、`cat /etc/issue` | | 3 | 主机名 | `hostname`、`cat /etc/hostname` | | 4 | 系统运行时间 | `uptime` | | 5 | 环境变量 | `env`、`printenv`、`cat /proc/1/environ` | | 6 | PATH 安全性 | `echo $PATH`(检查是否含 `.` 或可写目录) | ##### I.2 用户与权限信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 7 | 当前用户身份 | `id`、`whoami`、`groups` | | 8 | 所有用户列表 | `cat /etc/passwd` | | 9 | UID=0 用户 | `cat /etc/passwd \| awk -F: '$3==0'` | | 10 | 可登录用户 | `cat /etc/passwd \| grep -v nologin \| grep -v false` | | 11 | 空口令用户 | `cat /etc/shadow 2>/dev/null \| awk -F: '$2==""'` | | 12 | sudo 权限 | `sudo -l` | | 13 | sudoers 配置 | `cat /etc/sudoers 2>/dev/null` | | 14 | 最后登录记录 | `last`、`lastlog` | ##### I.3 网络信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 15 | 网络接口 | `ip a`、`ifconfig` | | 16 | 路由表 | `ip route`、`route -n` | | 17 | ARP 表 | `arp -a` | | 18 | DNS 配置 | `cat /etc/resolv.conf`、`cat /etc/hosts` | | 19 | TCP 监听端口 | `ss -tlnp`、`netstat -tlnp` | | 20 | UDP 监听端口 | `ss -ulnp`、`netstat -ulnp` | | 21 | 已建立连接 | `netstat -tnp`、`ss -tnp` | | 22 | 防火墙规则 | `iptables -S`、`iptables -L -n -v`、`nft list ruleset` | | 23 | SSH 配置 | `cat /etc/ssh/sshd_config` | ##### I.4 进程与服务信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 24 | 所有进程列表 | `ps auxf` | | 25 | 进程树 | `pstree` | | 26 | Cron 定时任务 | `crontab -l`、`cat /etc/crontab`、`ls /etc/cron.*` | | 27 | 自启动服务 | `systemctl list-unit-files --type=service` | | 28 | 运行中服务 | `systemctl --type=service --state=running` | ##### I.5 文件系统信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 29 | 挂载信息 | `mount`、`findmnt` | | 30 | SUID/SGID 文件 | `find / -perm -4000 -o -perm -2000 -type f 2>/dev/null` | | 31 | 全局可写目录 | `find / -type d -perm -0002 2>/dev/null` | | 32 | 全局可写文件 | `find / -type f -perm -0002 2>/dev/null` | | 33 | 无属主文件 | `find / -nouser -o -nogroup 2>/dev/null` | | 34 | 隐藏可执行文件 | `find / -type f -name "\.*" -perm /+x 2>/dev/null` | | 35 | 近期修改文件 | `find / -mtime -7 2>/dev/null` | | 36 | 敏感配置文件 | `find / -name "*.conf" -o -name "*.cfg" -o -name "*.env" 2>/dev/null` | | 37 | 备份文件 | `find / -name "*.bak" -o -name "*.old" -o -name "*.backup" 2>/dev/null` | | 38 | SSH 密钥文件 | `find / -name "id_rsa" -o -name "id_ed25519" -o -name "authorized_keys" 2>/dev/null` | ##### I.6 软件与应用信息 | # | 测试点 | 命令/方法 | |---|--------|----------| | 39 | 已安装软件包 | `rpm -qa 2>/dev/null`、`dpkg -l 2>/dev/null` | | 40 | 用户命令历史 | `cat ~/.bash_history 2>/dev/null`、`cat ~/.mysql_history 2>/dev/null` | | 41 | 数据库配置文件 | `grep -rli 'password' /etc/ /opt/ /var/www/ 2>/dev/null` | | 42 | Web 应用配置 | 查找 nginx/apache/tomcat 配置文件 | **类别 I 批量扫描要点:** - 将 I.1~I.3 合并为1~2条复合命令执行 - I.4~I.6 可根据 I.1~I.3 的结果决定是否需要额外扫描 - 扫描完成后**统一分析**:内核版本是否对应已知CVE、是否存在异常UID=0用户、是否有可疑监听端口等 - 分析结论驱动后续类别的执行方向 --- #### 类别 II:身份鉴别与认证安全 `→ reference/02`(发现信号时按需加载) ##### II.1 PAM 后门检测 | # | 测试点 | 命令/方法 | |---|--------|----------| | 43 | PAM 模块完整性 | `rpm -V pam`、`dpkg -V libpam-modules` | | 44 | PAM 模块哈希对比 | 比较可疑系统与干净基线的 .so 文件哈希 | | 45 | PAM 模块权限检查 | `ls -la /lib/security/` 或 `/lib/x86_64-linux-gnu/security/` | | 46 | 非标准 PAM 模块 | 查找不属于任何包的 .so 模块 | | 47 | PAM 完整后门检测链 | 9 步检测流程 | ##### II.2 PAM 配置漏洞 | # | 测试点 | 命令/方法 | |---|--------|----------| | 48 | pam_unix.so 有效性 | 是否存在有效的认证行 | | 49 | sufficient 标志误用 | 是否错误使用 `sufficient` 绕过后续认证 | | 50 | 账户锁定策略 | 是否配置 `pam_faillock.so` 或 `pam_tally2.so` | | 51 | nullok 参数 | 是否存在 `nullok` 允许空口令 | | 52 | debug 参数 | 是否存在 `debug` 信息泄露 | | 53 | PAM 配置文件权限 | `/etc/pam.d/` 文件权限是否为 644 | ##### II.3 pam_exec 滥用 | # | 测试点 | 命令/方法 | |---|--------|----------| | 54 | pam_exec.so 配置 | `grep -rn pam_exec.so /etc/pam.d/ /etc/pam.conf` | | 55 | 脚本文件权限 | 是否有 777 权限或非 root 属主 | | 56 | 脚本内容审计 | 是否对输入进行安全过滤 | ##### II.4 authselect 持久化检测 | # | 测试点 | 命令/方法 | |---|--------|----------| | 57 | 自定义 Profile | `ls /etc/authselect/custom/` | ##### II.5 自定义 PAM 模块逆向 | # | 测试点 | 命令/方法 |
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub