☰
Decepticon Crypto / Decode Playbook:密文识别与自动化解密的实战指南
2026/10/14 15:51:55 网站建设 项目流程

【免费下载链接】Decepticon

Autonomous Hacking Agent for Red Team

项目地址:https://gitcode.com/gh_mirrors/de/Decepticon
点击查看免费下载

本指南以 Decepticon 仓库内技能库 packages/decepticon/decepticon/skills/standard/exploit/crypto/SKILL.md 为核心骨架,系统讲解红队与渗透测试场景下"未知密文/编码 → 识别 → 解码 → 破解 → 汇入知识图谱"的完整作业流程。你将掌握 Ciphey/Ares 自动破解、hashid 哈希类型识别、CyberChef 配方链、hashcat/john 模式速查、多层编码展开工作流,以及如何将解码结果以kg_add_node的形式沉淀进 Decepticon 的 engagement 知识图谱,供后续轮次的 Agent 复用。

0. 技能定位:从 frontmatter 看适用场景

该技能文件的 YAML frontmatter 定义了它在 Decepticon 技能库中的身份与触发条件:

name: crypto-decode description: Cipher detection + automated decryption via Ciphey, Cyberchef recipes, hashcat hash-ID, format conversion, common encoding chains. metadata: when_to_use: "cipher decrypt decode base64 hex caesar rot vigenere xor unknown encoding identify ciphey hashid" mitre_attack: T1140 subdomain: cryptanalysis
  • when_to_use是技能调度器的关键词触发器:只要任务上下文中出现cipher、decrypt、decode、base64、hex、caesar、rot、vigenere、xor、unknown encoding、identify、ciphey、hashid等词汇,该技能就会被召回。这与 Decepticon 的技能注册机制一致——skills_registry.py 将每个SKILL.md解析为SkillRecord(id、slug、name、description、source五元组),其中slug取自尾目录或文件名(本技能即crypto),description直接取自 frontmatter。
  • mitre_attack: T1140对应 MITRE ATT&CK 的Deobfuscate/Decode Files or Information,即"去混淆/解码文件或信息"技术。按照 docs/skill-schema.md 的规范,metadata.subdomain必须存在于subdomains.yaml,且cryptanalysis会被别名映射到规范名credential-access——从侧面说明解码成果通常服务于凭据与敏感信息获取链路。
  • 适用对象:CTF flag、数据库泄漏字段、HTTP 流量中捕获的 token、被编码的 payload、移动端逆向出的字符串、固件中的硬编码密钥等一切"看起来像乱码但可能藏着明文"的东西。

核心原则一句话:先识别密文类别,再选择对应工具,绝不在识别前盲目爆破。

1. 第一步永远是识别(Identify FIRST)

拿到未知密文后,按三类场景分别处置。

1.1 未知文本 → 自动化破解器

对于完全不知道编码/加密方式的文本,直接交给 A* 搜索式自动解码器:

# Ciphey — 原版(Python 实现,维护节奏放缓) ciphey -t "$CIPHERTEXT" # Ares — Rust 重写版(更快,当前主力) ares -t "$CIPHERTEXT"

两者的工作机理相同:用A* 搜索算法在 16+ 个解码器之间进行状态空间搜索,解码器覆盖 base64、base85、hex、Caesar、ROT-N、Atbash、Vigenere、XOR(已知明文)、URL 编码、binary、morse、brainfuck、esolang、leetspeak 等;同时内置BERT 明文检测器判断"什么时候该停"——即解码结果是否已经是自然语言明文,避免无限套娃解码。典型用法是先用ares(快)拿结果,失败再回退ciphey,这与下文第 6 节 Decepticon 集成的封装骨架完全对应。

1.2 哈希 → 先识别类型再选择破解模式

哈希与可逆编码不同,目标是"识别哈希族 → 匹配 hashcat 模式 → 离线爆破":

hashid -m '$2a$12$....' # bcrypt 12 rounds hashid -m '5f4dcc3b5aa765d61d8327deb882cf99' # MD5 hash-identifier

hashid -m会直接输出"该哈希在 hashcat 中的 mode 编号",省去手工对照;hash-identifier则是另一个启发式识别工具,适合脚本化管道。识别结果直接映射到本文第 4 节的 hashcat 模式速查表。

1.3 特定格式的快速校验

手头有明确格式线索时,用三行命令快速验证:

# JWT:三段式,base64url,解码前两段看 header/payload echo $TOKEN | cut -d. -f1-2 | tr '_-' '/+' | base64 -d 2>/dev/null # Hex → 字节 echo "$HEX" | xxd -r -p # Base64 → 字节(兼容 URL-safe 变体) echo "$B64" | tr '_-' '/+' | base64 -d 2>/dev/null # 多层编码(逐层解开) echo "$BLOB" | base64 -d | base64 -d | xxd -r -p

注意 JWT 与 Hex/Base64 属于"可逆编码"层,与真正的加密(AES 等)是不同层次的问题——这也是本文档将 JWT 单列为交叉引用的原因(见第 8 节)。

2. 古典密码特征速查表

识别阶段最重要的依据是特征指纹。下表来自技能文档,是肉眼/正则快速归类密文的核心参考:

CipherSignature(特征签名)
Base64[A-Za-z0-9+/=]+,长度是 4 的倍数
Base32[A-Z2-7=]+
Hex[0-9a-fA-F]+,偶数长度
Caesar/ROT仅 A-Z + 空格,适合频率分析攻击
Vigenere仅 A-Z,存在按密钥长度周期重复的 bigram(IC 值偏离均匀分布)
Substitution仅 A-Z,IC(重合指数)≈ 0.066(英文文本特征)
Vernam/OTP字节呈随机分布,无任何统计信号
XOR fixed-key字节与可打印模式 XOR 后呈规律(文件头泄漏是突破口)
Hill分组小、基于矩阵运算

实际作业中的快速判别经验:

  • 看到/、+、=结尾且长度为 4 的倍数 → 先按 Base64 解;
  • 全是大写字母+数字且是 2-7 字母表 → Base32;
  • 纯 0-9a-f 偶数长度 → Hex;
  • 纯字母且保留空格 → 直接上频率攻击(Caesar/ROT/替换);
  • 解出一层后仍是乱码 → 大概率是多层编码(见第 5 节展开工作流)。

3. CyberChef 配方库:把 GUI 工作流变成可复用的 recipe

CyberChef(GCHQ 开源的"网络厨具")是解码解码的 GUI 主力,但其核心价值在于配方(recipe)可以导出为 JSON,并以编程方式链式执行。常用配方链:

# 常见链 "From Base64 / Magic / To Hex" "From Hex / XOR (Brute) / Magic" "AES Decrypt(KEY) / From Hex / Strings"

其中Magic操作是 CyberChef 的自动嗅探模块,等效于 Ciphey 的"识别并尝试";XOR (Brute)提供暴力密钥搜索;Strings用于在解密后的二进制里抽取可打印字符串。CLI 场景可使用社区移植的cyberchef-cli在终端直接执行 recipe JSON。

实战建议:把高频配方固化成 JSON 文件存进工作区,作为团队的可复用资产;对单条密文先用Magic自动尝试,失败再手写配方逐步展开。

4. 哈希破解快速参考:hashcat 模式速查表

这是全文档最常被回查的表格。hashcat 通过-m指定哈希类型,识别环节(hashid -m)的输出直接落到这里:

ModeHash type
0MD5
100SHA-1
1400SHA-256
1700SHA-512
1000NTLM
13100Kerberos TGS-REP (etype 23)
19700Kerberos TGS-REP (etype 18)
18200Kerberos AS-REP
16500JWT (HS256)
3200bcrypt
7400sha256crypt$5$
1800sha512crypt$6$
22000WPA-EAPOL+PMKID
7100macOS v10.8+ (PBKDF2-SHA512)
82001Password Cloud Keychain

配套执行命令(规则文件加速低强度口令命中):

hashcat -m <mode> hashes.txt rockyou.txt -r best64.rule john --format=<format> hashes.txt --wordlist=rockyou.txt

两点值得展开:

  • **模式 16500(JWT HS256)**与 Decepticon 的 web/jwt 技能 直接联动——弱 HMAC 密钥的 JWT 可以用hashcat -m 16500 jwt.txt rockyou.txt离线爆破,服务账号常见弱密钥为dev/secret/changeme/公司名等模式。
  • **Kerberos 三件套(13100/19700/18200)**对应 AD 域的 Kerberoasting / AS-REP Roasting / DCSync 产物,即 ad/dcsync 技能 中secretsdump.py导出的 NT hash 后续破解环节。跨技能引用关系见第 8 节。

5. Token / Blob 展开工作流:未知令牌的完整处置顺序

对 HTTP 流量中捕获的"神秘 token",不要上来就猜,按固定流水线执行:

1. ciphey/ares → 揭示最外层编码 2. 若结果是结构化数据(JSON / proto3 / msgpack)→ 解析 3. 若仍是编码 → 重复步骤 1(逐层展开) 4. 查找 HMAC / 签名后缀 → 识别对称密钥候选 5. 若疑似对称加密 → 用常见密钥尝试 AES-CBC/GCM (应用名、"secret"、其他渠道暴露的环境变量等)

三个工程要点:

  • 循环有界:步骤 3 必须设置最大展开层数(如 5 层),防止对"纯随机字节"无限套娃——因为 OTP/真随机数据没有任何统计信号,A* 搜索会在 BERT 检测器处自然停止;
  • 签名优先:步骤 4 的价值在于区分"编码"与"MAC/签名"。MD5(secret || message)这类弱 MAC 构造在 web/crypto 技能 中有 hash-length extension 的完整解法(hashpump工具);
  • 密钥来源枚举:步骤 5 的常见密钥候选来自工程上下文——应用名、secret、.env中暴露的变量,与 web/crypto 技能"Step 0 — Key Discovery"中grep -rn 'AES_KEY\|SECRET_KEY'的源码级密钥发现流程互为补充。

6. Decepticon 集成:封装为工具并沉淀进知识图谱

技能文档给出了将解码能力包装成 Decepticon 工具的骨架:

# decepticon/tools/crypto/decode.py — skeleton def crypto_decode(ciphertext: str, hint: str = None, timeout: int = 30) -> dict: """Try ares first (fast), fallback to ciphey, return best decode.""" import subprocess cmd = ["ares", "-t", ciphertext] if hint: cmd += ["--language", hint] r = subprocess.run(cmd, timeout=timeout, capture_output=True, text=True) return { "tool": "ares", "output": r.stdout, "confidence": _parse_ares_confidence(r.stdout), }

设计要点(源码佐证):

  • 先快后慢的降级策略:cmd = ["ares", "-t", ...]默认走 Rust 版 Ares(快),失败再回退 Ciphey(慢但解码器更全)——这与when_to_use中ciphey hashid的触发词保持一致;
  • hint参数:--language <hint>传入语言提示,帮助 A* 搜索与 BERT 明文检测器更快收敛;
  • timeout=30:subprocess 硬超时,避免解码器卡死在无信号输入上。

6.1 分类成功 → 提升到知识图谱

解码成功后,将结果作为artifact节点写入 engagement 知识图谱:

kg_add_node(kind="artifact", label=f"decoded:{hash}", props={"plaintext": result, "encoding_chain": chain})

kg_add_node是 Decepticon 内置的图工具,实现在 tools/research/tools.py:

  • kind受NodeKind枚举校验:artifact、host、vulnerability、credential、crown_jewel等均为合法 kind,传入未知 kind 会返回错误并附合法列表;
  • upsert 语义 + 确定性key:graph.upsert_node(Node.make(...))按 props 中的确定性key(如decoded:<sha256>)去重,同一密文重复解码不会产生重复节点;
  • 跨轮次持久化:图存储在 engagement 内持久化,本轮的decoded:...节点可被下一轮 fresh-context 的 Agent 通过kg_query/kg_neighbors直接查询,这是"解码成果资产化"的关键——因此技能文档特意要求把encoding_chain(编码链)写入 props,方便后续复用整条解码链路;
  • 配套kg_add_edge:可与vulnerability、credential、crown_jewel等节点连线(如extracts、compromises),把"解码出 API key"提升为"凭证获取"的图路径——这与 ad/dcsync 技能 中kg_add_node(kind="credential", ...)+kg_add_edge(..., kind="extracts")的提权模式完全一致。

6.2 技能如何被 Agent 加载

Decepticon 的 Agent 通过load_skill工具读取技能正文(见 tools/skills.py):技能目录在打包后经importlib.resources注册为虚拟/skills/路径树,skills_registry.py提供按完整路径、尾 slug(crypto→/skills/standard/exploit/crypto/SKILL.md)或模糊匹配三种解析方式,且对..穿越、反斜杠、非注册路径做硬性拒绝。也就是说,Agent 只需说"加载 crypto 技能"即可命中本 playbook,而无需触碰底层文件系统。

7. 严重性分级:解码之后怎么定性

解码本身不是漏洞,严重性取决于解码出的内容:

Decoded contentSeverity
Plaintext passwordCritical(取决于用户角色)
API key / private keyCritical
Internal hostname / IPMedium
Session tokenHigh-Critical
Encryption keyCritical

定性后应联动知识图谱写入:kg_add_node(kind="credential", ...)、kg_add_node(kind="vulnerability", ..., props={"severity": "critical"}),并生成证据链(原始 blob、解码链、明文样本、严重性结论),供报告环节引用。

8. 交叉引用:同一密码学战场上的三个技能

本技能(crypto-decode,subdomaincryptanalysis,MITRE T1140)专注未知密文的识别与解码,与仓库内另外两个密码学相关技能互补而非重复:

技能文件主题与本技能的分工
exploit/web/crypto/SKILL.mdWeb Crypto Exploitation:padding oracle(Vaudenay)、AES-CBC 位翻转/IV 操作、AES-ECB 模式攻击、HMAC bypass、hash-length extension、JWT alg confusion本技能负责"把 blob 解码出来";web/crypto 负责"攻击应用对密码学原语的使用错误",其 Step 0 的源码密钥发现与本技能第 5 步"常见密钥尝试"直接衔接
exploit/web/jwt/SKILL.mdJWT 攻击:alg confusion、kid 注入、JWKS spoofing、弱 HMAC 密钥破解、签名剥离不同层次:本技能只做 JWT 的 base64url 解码与格式识别(cut -d. -f1-2 \| tr '_-' '/+' \| base64 -d);JWT 的算法级攻击看 jwt 技能
ad/dcsync/SKILL.md 及 ad/SKILL.mdAD 哈希:Kerberoasting、AS-REP Roasting、DCSync本技能提供 hashcat 模式速查(13100/19700/18200/3200 等)与破解命令;AD 技能负责从域控提取哈希的流程,两边在"破解 NT hash / Kerberos 票据"处汇合

9. 已知典型场景(Known Exemplars)

技能文档沉淀了四类高频实战场景,均可用本 playbook 覆盖:

  • CTF flag:约 90% 的 flag 只是 base64、hex 或 rot-N 的单一/多层包装,ares -t秒解;
  • 移动端逆向:API key 常以 "base64 再 XOR" 的形式硬编码在二进制字符串中,先用本技能解开外层编码,再用 reversing/strings 工具 辅助定位;
  • IoT 固件:AES-CBC + 硬编码密钥常见,配合 ghidra 反编译找到密钥后,用本技能第 5 步的对称解密流程(或 web/crypto 技能的离线解密脚本)恢复明文;
  • 钓鱼邮件混淆:嵌套编码链(base64→quoted-printable→rot)是邮件混淆的常见套路,第 5 节的"逐层展开工作流"正是为此设计。

结语

Crypto / Decode Playbook 的价值在于把"识别 → 解码 → 破解 → 资产化"四个环节固化为可复用的方法论:识别层用特征签名速查表与hashid兜底,解码层用ares/ciphey与 CyberChef recipe 链,破解层用 hashcat 模式表,最终通过kg_add_node把每个decoded:<hash>节点写进 engagement 知识图谱,让解码成果跨轮次复用。实战中请始终遵守两条纪律:先识别再动手(避免盲爆破),有界循环(给所有自动化解码器与网络攻击脚本设置超时与请求预算,相关纪律可进一步参考 web/crypto 技能的 Anti-Patterns 章节)。

【免费下载链接】Decepticon

Autonomous Hacking Agent for Red Team

项目地址:https://gitcode.com/gh_mirrors/de/Decepticon
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询