Pular para o conteúdo
Skillpedia
Segurança48 mil · #3795

patch-diff-exploit

Permite ao agente encontrar falhas de segurança em programas. Ele compara versões de código e ajuda a criar testes. Útil para pesquisadores de segurança.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança em atualizações de software (patches). Ela compara diferentes versões de um programa para identificar onde as correções foram aplicadas e ajuda a criar exemplos de como explorar essas falhas em pesquisas autorizadas.

Quando usar

  • ✓Quando você tem um aviso de segurança sobre um software, mas não sabe exatamente onde está o problema.
  • ✓Ao criar um exemplo prático (prova de conceito) de uma falha que já foi corrigida, para fins de pesquisa autorizada.
  • ✓Para verificar se falhas de segurança corrigidas em atualizações recentes ainda podem ser exploradas em sistemas que não foram atualizados.

Exemplo do que pedir para a IA

“Quero analisar a atualização de segurança KB12345 para o programa XYZ. Você pode me ajudar a encontrar a falha corrigida e criar um exemplo de como ela funcionava antes da correção?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/patch-diff-exploit/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/patch-diff-exploit/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta compara duas versões do mesmo programa: uma antes da correção (vulnerável) e outra depois (corrigida). Ela analisa as diferenças no código para localizar a parte exata que foi modificada para corrigir a falha.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill patch-diff-exploit

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/patch-diff-exploit/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

⚠️ USO AUTORIZADO APENAS Esta habilidade destina-se apenas a fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.

Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:

  1. Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. Aguarde a confirmação explícita na conversa atual.

Sem essa confirmação, permaneça apenas em modo somente leitura e forneça orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

Quando Usar

  • Transformar um aviso de segurança de fornecedor em um local concreto de função vulnerável.
  • Construir uma prova de conceito para uma vulnerabilidade corrigida em pesquisa autorizada.

适用范围

当任务属于以下场景时使用本 skill:

  1. 已知 CVE 但无公开 PoC — 厂商公告写了"修复了 XX 组件的越界写"但没放 PoC,需要从补丁反推
  2. SRC / 红队打 N-day — 目标资产未及时更新,需要把刚发布的补丁差成可用的 1-day 利用
  3. Patch Tuesday 跟进 — 每月第二个周二微软放补丁,需要快速锁定高价值漏洞(Kernel / Win32k / AFD / CLFS)
  4. Linux LTS 补丁分析 — 主线 fix 已合并,但旁支或某发行版 backport 不全,找未修补面
  5. 驱动 / 服务的安全补丁还原 — 显卡驱动、AV 引擎、虚拟化组件等闭源软件的补丁分析

与其他 skill 的分工

场景 用什么
有旧版符号,迁移到新版本帮助分析 binary-diff/
从补丁找漏洞、写 PoC 打补丁前版本 本 skill
写出完整利用链(堆喷、ROP、提权) pwn-chain/
把 1-day 武器化部署到目标网络 pentest-tools/network-attack-defense/
从零逆向一个二进制 ida-reverse/ / radare2/

差别的关键:binary-diff 的目标是让新版可分析(把旧符号搬过来),本 skill 的目标是找出补丁修了什么 bug 然后打补丁前的版本。前者服务防御侧 / 研究侧分析,后者服务攻击侧武器化。

核心原理

patched 二进制 (after)         unpatched 二进制 (before)
        ↓                                  ↓
    导入 IDA/Ghidra              导入 IDA/Ghidra
        ↓                                  ↓
        └──────── BinDiff / ghidriff ──────┘
                        ↓
        函数级 diff(matched / unmatched / changed)
                        ↓
        聚焦 match score 中等的函数(0.5 - 0.9)
                        ↓
        看新增了什么:边界检查 / 锁 / 字段清零 / 整数溢出检查
                        ↓
        反推 bug class:OOB / Race / Info Leak / UAF / Integer Overflow
                        ↓
        在 unpatched 版本上写 PoC 触发
                        ↓
        验证:unpatched 崩 / patched 不崩 → 漏洞确认

补丁修复模式 → 漏洞类型反查:

新增内容 大概率的 bug class
if (a + b < a) / __builtin_add_overflow 整数溢出
KeAcquireSpinLock / mutex_lock 竞争条件 (TOCTOU / double-free)
if (idx >= MAX) / if (len > buf_size) 越界读 / 越界写
RtlZeroMemory / memset(struct, 0, ...) 未初始化内存信息泄漏
InterlockedDecrement + refcount 检查 UAF / 引用计数错误
ProbeForRead / ProbeForWrite 用户态指针未校验
SeAccessCheck / capability 校验 权限校验缺失
删除 / 收紧 IOCTL code 暴露面收敛(看老接口怎么打)

工作流

5 步完整流程

Step 1: 拿 before / after 二进制
  - Windows: Microsoft Update Catalog 下 MSU/MSP,用 expand.exe / dism 解包
  - Linux: 从发行版 USN/RHSA 拉 .deb/.rpm,用 dpkg-deb / rpm2cpio 解包
  - 第三方软件: 官网取 N-1 和 N 版本安装包

Step 2: 对齐符号
  - 有 PDB 直接吃,没 PDB 时用 binary-diff skill 把 N-1 版本的符号搬到 N 版本
  - Linux 内核取对应版本的 vmlinux + System.map / debuginfo

Step 3: 二进制 diff
  - BinDiff: 直接给两个 IDB,看函数级匹配结果
  - ghidriff: pip 一键安装,CLI 输出 markdown 报告
  - Diaphora: IDA 内插件,老牌但需要 IDA Pro

Step 4: 定位变更
  - 过滤 match score 0.5-0.95 的函数(完全相同的不看,完全不同的多半是新加 / 重命名)
  - 重点看:新增的 if / 新增的循环边界 / 删除的代码块(删了什么也是线索)
  - 用 LLM 看 before/after 伪代码反推 bug class(见 references/root-cause-and-poc.md)

Step 5: 写 PoC
  - 整数溢出:构造边界值(INT_MAX-1、0xFFFFFFFF)
  - 竞争:多线程 hammer,open/close + ioctl 高频并发
  - UAF:spray → free → reuse pattern
  - OOB:精确控制 len / index 越过边界
  - 验证 patched 版本不再崩,unpatched 版本稳定崩 → bug 复现成功

工具调用顺序

下补丁 → 解包 → 加载到 IDA/Ghidra → BinDiff/ghidriff → 看 unmatched/low-match 函数
       → LLM 反推 bug class → 写 PoC → 在 unpatched 跑 → 崩 → 收工

典型场景示例

场景 1:Windows Patch Tuesday — Kernel CVE 复现

背景:2025 年 11 月 Patch Tuesday,MSRC 公告 CVE-2025-62215
      Windows Kernel race condition 导致 double free,CVSS 7.0,本地提权
      微软只放了补丁,没放细节,没有公开 PoC

目标:复现 PoC,验证未打补丁的 Windows 11 22H2 / 23H2 可提权

步骤:
1. Microsoft Update Catalog 搜 "2025-11" + KB 号,下两个版本:
   - 22H2 build 22621.xxxx (unpatched)
   - 22H2 build 22621.yyyy (patched 后)
   命令:
     expand.exe Windows-KB5052000-x64.msu -F:* C:\out\patched\

…
Perguntas frequentes

Preciso de permissão para usar esta ferramenta?

Sim, esta ferramenta só pode ser usada para fins educacionais ou em avaliações de segurança com permissão explícita e por escrito do proprietário do sistema. O uso indevido é ilegal.

O que é um 'patch'?

Um patch é uma atualização de software que corrige bugs ou falhas de segurança.

O que é um 'PoC' (Prova de Conceito)?

Um PoC é um exemplo simples que demonstra que uma falha de segurança realmente existe e como ela pode ser explorada.

Detalhes

Descrição original do autor

Locate vulnerability fixes in vendor patches, diff binaries across versions, and build N-day PoCs. Attack-side complement to binary-diff for authorized research.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3795
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas