pwn-chain
Faz seu agente criar exploits a partir de engenharia reversa. Ele trabalha com falhas de segurança em sistemas. Útil para testar e melhorar a segurança de programas.
O que ela faz
Esta ferramenta ajuda a transformar uma vulnerabilidade conhecida em um programa que a explora. Ela é usada para criar 'exploits' (programas que tiram vantagem de falhas de segurança) a partir de falhas em softwares, como estouros de memória ou erros em sistemas que rodam em Linux.
Quando usar
- ✓Quando você já sabe que um programa tem uma falha e quer criar um código para explorá-la.
- ✓Ao adaptar um código de exploração de um ambiente de teste (CTF) para um sistema real e autorizado.
- ✓Para explorar falhas em componentes do sistema operacional Linux (kernel) e ganhar privilégios de administrador.
Exemplo do que pedir para a IA
“Quero criar um exploit para uma falha de estouro de buffer em um programa Linux que identifiquei.”
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
Mensagem pronta para colar
Como funciona
Ela usa bibliotecas como 'pwntools' para escrever o código do exploit. Primeiro, analisa o tipo de falha e as proteções do sistema. Depois, escolhe uma estratégia de exploração, encontra as peças necessárias (como códigos pré-feitos chamados 'gadgets') e monta o exploit.
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 pwn-chainOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/pwn-chain/SKILL.md -o SKILL.mdConteú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.
Porta de confirmação obrigatória Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
Quando Usar
- Uma vulnerabilidade binária é compreendida e um exploit confiável é necessário.
- Portando um exploit estilo CTF para um alvo real autorizado.
Âmbito de Aplicação
Use esta habilidade quando a tarefa se enquadrar nos seguintes cenários:
- Binário obtido + ponto de vulnerabilidade conhecido — Estática/auditoria/fuzzing já encontrou overflow/UAF/double free, e é necessário ir do gatilho ao shell.
- CTF localmente funcional, mas remoto não funciona — Diferenças no ambiente remoto fazem com que o script falhe, necessitando de estabilização.
- Exploração de binários em alvos reais — Em cenários de SRC/Red Team, uma vulnerabilidade de corrupção de memória foi identificada, e é necessário construir um RCE.
- Bug ioctl em driver de kernel Linux — Gatilhado em user-space, com o objetivo de escalonar privilégios para root.
Pré-requisito: Você já sabe "onde está o problema". Esta habilidade não é responsável por encontrar vulnerabilidades (isso é para fuzzing/auditoria), apenas por "escrever o exploit a partir do ponto de vulnerabilidade".
Divisão de Tarefas com Outras Habilidades
| Cenário | Usar o quê |
|---|---|
| Identificar VM customizada / anti-debug / ofuscação complexa | reverse-engineering/ |
| Análise estática de binários do zero | ida-reverse/ ou radare2/ |
| Ponto de vulnerabilidade existente, escrever exploit para atingir o remoto | Esta habilidade |
| Integrar o shell obtido via pwn em uma cadeia de ataque completa | attack-chain/ (downstream) |
reverse-engineering/ foca em "entender o que o programa está fazendo" (reconhecimento de padrões, restauração de protocolos, decifrar mecanismos estranhos em CTFs); esta habilidade foca em "transformar uma vulnerabilidade compreendida em um ataque executável". Ambos são frequentemente usados em conjunto, mas com divisões de trabalho claras.
Fluxo de Trabalho Principal
Step 1: 确认漏洞类型 + 保护机制
├─ checksec ./vuln(NX / Canary / PIE / RELRO / Fortify)
├─ file ./vuln + readelf -d ./vuln
├─ 漏洞分类:栈溢出 / 格式化字符串 / 堆 (UAF/DF/OF) / 整数 / 竞态 / 内核
└─ → 决定走哪个 references/
Step 2: 选择利用策略
├─ NX 关 + 无 ASLR → 直接 shellcode
├─ NX 开 + 给 libc → ret2libc / one_gadget
├─ NX 开 + 不给 libc → leak 后 libc-database 反查
├─ 堆 → 按 glibc 版本对应技术 (tcache/fastbin/unsorted/large)
└─ 内核 → commit_creds / modprobe_path / core_pattern
Step 3: 准备 libc + gadget
├─ libc-database:./find puts 0x6f0
├─ ROPgadget --binary ./libc.so.6 --only "pop|ret"
├─ one_gadget ./libc.so.6
└─ 计算 base:leak_addr - libc.sym['puts']
Step 4: 写 pwntools 模板(本地 process)
├─ context.binary = ELF('./vuln')
├─ p = process('./vuln') / p = gdb.debug('./vuln','b *main+xx')
├─ payload = cyclic(N) + p64(ret) + ...
└─ p.interactive()
Step 5: 本地通
├─ 反复 attach + 看寄存器 + 调 offset
├─ 用 pwndbg/GEF 的 vmmap / heap / bins / telescope
└─ 跑通后切 remote()
Step 6: 远程稳定化
├─ libc 偏移:用 leak 反查 libc-database,不要拍脑袋
├─ 栈对齐:16-byte 不对齐 → movaps 崩 → 加一个 ret gadget
├─ 远程网络延迟 → recvuntil 精确锚字符串,禁用模糊 sleep
├─ 远程缓冲:sendlineafter 比 sendline 更稳
├─ 堆喷成功率:放大 spray 数量 + 留 padding chunk 防合并
└─ 多次跑:写 while True 验证成功率 ≥ 95%
Cenários Típicos
Cenário 1: Binário Remoto de 64 bits (NX+PIE+canary, com libc fornecida)
已有:./vuln(64-bit ELF, NX, PIE, canary)+ ./libc.so.6 + nc host port
漏洞:read(buf, 0x200) 但 buf 只有 0x40 字节 → 栈溢出
保护:canary 拦住,PIE 让 .text 随机化
策略:
1. 先 leak canary(栈/格式化字符串/部分读)
2. 再 leak 一个 libc 函数地址(puts@got)
3. 用 libc.address = leaked - libc.sym['puts'] 算 libc base
4. one_gadget ./libc.so.6 选一个约束能满足的 magic gadget
5. payload = padding + canary + saved_rbp + (pop_rdi + bin_sh + system) 或直接 one_gadget
6. 加一个 ret gadget 修栈对齐(关键!)
Consulte o template completo em references/stack-pwn.md.
Cenário 2: Escrita fora dos limites ioctl em driver de kernel Linux → Obter root
已有:vmlinux + bzImage + initramfs.cpio.gz + 自定义 vuln.ko
漏洞:ioctl(0x1337, ptr) 里 copy_from_user 长度可控 → kernel heap overflow (kmalloc-64 slab)
保护:SMEP, SMAP, KASLR, KPTI
策略:
1. 改 init 脚本拿到 root shell(CTF)或先 leak KASLR base 再继续(真实)
2. 通过 /proc/kallsyms(可能限权)或未初始化堆喷 leak 内核基址
3. 在 kmalloc-64 slab 里喷 tty_struct / msg_msg / pipe_buffer
4. 覆盖 vtable 指针指向用户态 → 不行(SMEP),改走 stack pivot + 内核 ROP
5. ROP 链:prepare_kernel_cred(0) → commit_creds → swapgs+iretq → 用户态 execve("/bin/sh")
6. 或更省事:覆盖 modprobe_path 为 "/tmp/x",写一个 /tmp/x,然后触发 modprobe
Consulte o template completo em references/kernel-pwn.md.
Auto-inicialização Sob Demanda (On-Demand Bootstrap)
Dependências de Ferramentas
| Ferramenta | Uso | Método de Instalação |
|---|---|---|
| pwntools | Framework de escrita de exploits | pip install pwntools |
| GEF | Aprimoramento do gdb (recomendado para kernel + user-space) | git clone https://github.com/bata24/gef (fork com manutenção ativa) |
| pwndbg | Aprimoramento do gdb (melhor experiência de depuração de heap) | git clone https://github.com/pwndbg/pwndbg && ./setup.sh |
| ROPgadget | Busca de gadgets | pip install ropgadget |
…
Perguntas frequentes
O que é 'pwn'?
'Pwn' é uma gíria na comunidade de segurança da informação que significa 'ser explorado' ou 'dominar'. Neste contexto, refere-se à arte de encontrar e explorar vulnerabilidades em programas.
O que são 'gadgets'?
São pequenos trechos de código que já existem dentro do programa alvo ou de suas bibliotecas. Eles são usados para construir o exploit, permitindo que o atacante execute ações específicas sem injetar código novo.
Preciso de permissão para usar esta ferramenta?
Sim, absolutamente. Esta ferramenta só deve ser usada em sistemas para os quais você tem permissão explícita e por escrito. Usá-la em sistemas não autorizados é ilegal.
Detalhes
Descrição original do autor
Go from reverse engineering to a working exploit: stack/heap/kernel pwn workflows with pwntools, libc-database, ROP, and stabilization from CTF to authorized remote targets.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3926
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC