Skip to main content

linux-vuln-discovery

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

跳到安装

来源信息

仓库
Kur1sulab/blackbox
最近来源活动
2026年8月12日 15:05
检测到的 SKILL.md 语言
中文
星标
3
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
18 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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 模块逆向 | # | 测试点 | 命令/方法 |
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看