N1ght-b1rd/Blackfeather

GitHub: N1ght-b1rd/Blackfeather

一款 CLI 反序列化检测与解码工具,能自动递归剥离多层编码并识别底层序列化格式,推荐对应的利用 gadget chain。

Stars: 0 | Forks: 0

# Blackfeather **编码 pipeline 逆向工具 + 反序列化 payload 工厂。** 接收一个 blob,自动剥离所有编码层,识别底层格式,并为匹配的 stack 推荐漏洞利用 payload。 ## 它的功能 ``` INPUT (file or string) ↓ [1] Peel encoding layers (recursive: base64, hex, gzip, URL, HTML, unicode, hash detection) ↓ [2] Identify format (Java serial, PHP serial, Python pickle, Ruby marshal, .NET, file types) ↓ [3] Extract class names (for Java) and detect libraries (Apache Commons, Spring, etc) ↓ [4] Compute confidence score ↓ [5] Suggest a `generate` command with the right gadget chain ``` ## 为什么与众不同 大多数反序列化工具都需要你事先了解格式。Blackfeather 接收一个 **raw blob** 并分析出以下内容: - 完整的编码 pipeline(例如,`base64(gzip(serialized))`) - 内部的原始格式 - classpath 上可能存在的库 - 应该优先尝试的 gadget chain ## 安装 ``` git clone https://github.com/N1ght-b1rd/Blackfeather.git cd ~/Blackfeather pip install -e . ``` ## 使用方法 ``` # 从字符串检测 blackfeather detect -d "rO0ABXNyABNqYXZhLnV0aWwuQXJyYXlMaXN0eIHSHZnHYZ0DAAFJAARzaXpleHAAAAAAdwQAAAAAeA==" # 从文件检测 blackfeather detect -f blob.bin # 从 stdin 管道传输 cat payload.txt | blackfeather detect # 跳过 encoding peel blackfeather detect -d "aced0005..." --no-peel # 用于管道传输的 JSON 输出 blackfeather detect -d "rO0AB..." --json ``` ## 示例输出 ``` /'^`. .----------------- / \ __ / ---------- / / \( )/ ------- ////// ` \/ ` ----- //// / // : : ---- // / / / /` `-- // //`||`\\ // VV'\||/'VV / '//||\\` `'`''`'` ~ BLACKFEATHER Deserializer: v0.1.0 ~ -by N1ghtb1rd ......................................................................................................... [+] Input: 80 bytes -> "rO0ABXNyABNqYXZhLnV0aWwuQXJyYXlMaXN0eIHSHZnHYZ0DAAFJAARzaXpleHAAAAAAdwQAAAAAeA==" [+] Encoding pipeline (outer -> inner): 1. Base64 80 -> 58 bytes [+] Peeled string: "\xac\xed\x00\x05sr\x00\x13java.util.ArrayListx\x81\xd2\x1d\x99\xc7a\x9d\x03\x00\x01I\x00\x04sizexp\x00\x 00\x00\x00w\x04\x00\x00\x00\x00x" ......................................................................................................... ╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Format Identified. │ │ Java Serialization │ │ │ │ Confidence: 99% │ │ Magic: 0xaced0005 │ │ Classes: java.util.ArrayList │ │ Libraries: JDK (java.util.*) │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ Generate Suggestion -- preview, not implemented yet: ?? blackfeather generate java:URLDNS --cmd "id" Test if deserialization fires (DNS only, no RCE) ``` ## 支持的编码 (peel) | 编码器 | 检测方式 |---|--- | Hash (停止循环) | MD5, SHA-1, SHA-256, SHA-512 | Gzip | magic 0x1F8B | Hex | 偶数长度的 hex 字符串 | Base64 | standard + URL-safe | URL | %XX 序列 | Unicode escape | `\uXXXX` | HTML entities | `&ent;` / `&#NN;` ## 支持的格式 (identify) | 格式 | Magic | |---|---| | Java Serialization | `0xACED0005` | Python Pickle | `0x80 0x02-0x05` | Ruby Marshal | `0x0408` | .NET BinaryFormatter | `0x00 0x01 0x00 ...` | PHP Serialization | regex `O:N:"..."` | PNG, JPEG, GIF, PDF, ZIP, ELF, BMP, XML, HTML | 各种 ## 路线图 - [x] **阶段 1**:核心检测引擎 (peel + identify) - [ ] **阶段 2**:Payload 生成 (ysoserial wrapper, native pickle) - [ ] **阶段 3**:???
标签:DNS 反向解析, Go语言工具, Python, 反序列化, 文档结构分析, 无后门, 漏洞利用辅助, 解码器, 逆向工具