Venu-exe/assetmap
GitHub: Venu-exe/assetmap
纯 C 编写的单一二进制侦察与指纹识别工具包,为漏洞赏金猎人整合了子域名枚举、证书分析、安全标头审计与 TLS 漏洞扫描等功能。
Stars: 0 | Forks: 0
ASSETMAP
一款专为漏洞赏金猎人打造的快速、零依赖侦察与指纹识别工具包 —— 纯 C 语言编写。
功能 •
安装 •
用法 •
命令 •
示例 •
工作流 •
许可证
```
___ ___ ___ ___ _____ __ __ _ ___
/ __/ __/ __| __|_ _| \/ | /_\ | _ \
| (_ \__ \__ \ _| | | | |\/| |/ _ \| _/
\___|___/___/___| |_| |_| |_/_/ \_\_|
favicon + cert fingerprint + vuln recon v2.0
```
## 为什么选择 Assetmap?
大多数侦察工具都是用 Python/Go 编写的,并且会引入大量依赖。**Assetmap** 是一个单一编译的 C 二进制文件 —— 启动快、占用小,除了 `libcurl` 和 `openssl`(每台渗透测试机器上都已经安装了)之外,没有任何运行时依赖。
它结合了 **6 种基本侦察技术**,可以全面映射出组织的攻击面:
- 🔍 **Favicon 指纹识别** —— 通过 Shodan 发现隐藏资产
- 📜 **证书透明度** —— 发现子域及关联域
- 🔐 **实时 TLS 证书分析** —— 对任意服务器的证书进行指纹识别
- 🛡️ **安全标头审计** —— 对目标的 HTTP 加固情况进行评级
- 🔬 **TLS/SSL 漏洞扫描** —— 弱密码套件、过期证书、缺少 HSTS 等
## 功能
| 功能 | 描述 |
|---------|-------------|
| **Favicon Hash** | 计算任意 favicon 的 Shodan 兼容 MurmurHash3 哈希值 —— 查找所有使用相同图标的服务器 |
| **crt.sh 域名查询** | 从证书透明度日志中提取 `*.domain.com` 的所有主机名 |
| **crt.sh 组织查询** | 通过证书颁发者组织查找域名 —— 挖掘收购公司与子公司 |
| **SSL 指纹** | 通过实时 TLS 握手获取 SHA-256 指纹、SAN、链深度、密钥信息及有效性 |
| **安全标头** | 审计 10 种安全标头(HSTS、CSP、X-Frame-Options 等),并进行 A+ 到 F 级评级 |
| **漏洞扫描器** | 测试 TLS 版本、弱密码套件、证书问题、HTTPS 重定向、HSTS、cookie 标志 |
## 安装
### 前置条件
```
# Debian/Ubuntu/Kali
sudo apt install build-essential libcurl4-openssl-dev libssl-dev
# Fedora/RHEL
sudo dnf install gcc make libcurl-devel openssl-devel
# Arch
sudo pacman -S curl openssl base-devel
```
### 构建
```
git clone https://github.com/Venu-exe/assetmap.git
cd assetmap
make
```
就这么简单。单一二进制文件 `./assetmap`,不需要 pip,不需要 npm,也不需要 cargo。
### 验证
```
./assetmap --version
# assetmap v2.0
```
## 用法
```
./assetmap
[options]
```
## 命令
### 🔍 `favicon` —— 用于 Shodan Dorking 的 Favicon 哈希
计算任意 favicon.ico 文件的 Shodan 兼容 mmh3 哈希。使用此功能可以查找 **所有运行相同软件的服务器** —— 即使它们位于不同的域名或 IP 上。
```
./assetmap favicon https://target.com/favicon.ico
```
```
[*] Favicon hash: 708578229
[*] Shodan dork: http.favicon.hash:708578229
```
**漏洞赏金用途:** 将该哈希值粘贴到 Shodan 中,以查找共享相同 favicon 的预发布服务器、被遗忘的开发实例以及内部工具。
### 📜 `crt` —— 证书透明度子域名枚举
查询 crt.sh 以获取涵盖 `*.domain.com` 的证书上出现的所有主机名。
```
./assetmap crt target.com
```
```
admin.target.com
api.target.com
dev.target.com
staging.target.com
[*] 47 unique hostnames found
```
**漏洞赏金用途:** 直接将其输入到你的子域名字典中。通过管道传递给 `httpx` 或 `dnsx` 进行实时过滤。
```
./assetmap crt target.com | httpx -silent -mc 200
```
### 🏢 `crt-org` —— 基于组织的域名发现
通过证书组织名称查找域名 —— 挖掘不共享基础域名的收购公司、子公司及品牌。
```
./assetmap crt-org "Target Corporation"
```
**漏洞赏金用途:** 将范围扩展到 `*.target.com` 之外。发现 `acquired-brand.io`、`target-internal.net` 等。
### 🔐 `ssl` —— 实时 TLS 证书指纹
连接到任意 host:port,执行 TLS 握手,并提取完整的证书详情。
```
./assetmap ssl target.com
./assetmap ssl target.com 8443 # custom port
```
```
[*] TLS Version: TLSv1.3
[*] Cipher: TLS_AES_256_GCM_SHA384
[*] Certificate Chain Depth: 3
[*] SHA-256 Fingerprint: EA:E2:2D:87:EC:9C:D6:...
[*] Serial: 02B0C199B5F2FF96095E3C861AF42BEE
[*] Subject CN: *.target.com
[*] Issuer Org: DigiCert Inc
[*] Subject Alternative Names (12):
DNS: *.target.com
DNS: target.com
DNS: *.api.target.com
...
[*] Not After: Sep 21 08:37:24 2026 GMT
[*] Certificate valid for 52 more day(s)
[*] Public Key: EC 256 bits
```
**漏洞赏金用途:** SAN 会暴露内部主机名、API endpoint 及相关域名。过期或自签名的证书是直接的发现成果。
### 🛡️ `headers` —— HTTP 安全标头审计
获取响应标头并对目标的安全状况进行评级。
```
./assetmap headers https://target.com
```
```
[*] Server: nginx/1.18.0
[!] Info Leak: X-Powered-By: Express
[+] Strict-Transport-Security: max-age=31536000; includeSubDomains ✓
[+] Content-Security-Policy: default-src 'self' ...
[+] X-Content-Type-Options: nosniff
[+] X-Frame-Options: deny
[-] Permissions-Policy: MISSING
[-] Cross-Origin-Opener-Policy: MISSING
[*] Security Headers Score: 6/10
[*] Grade: C
```
**检查的标头:**
| 标头 | 防范内容 |
|--------|-----------------|
| `Strict-Transport-Security` | SSL 剥离攻击 |
| `Content-Security-Policy` | XSS、数据注入 |
| `X-Content-Type-Options` | MIME 类型嗅探 |
| `X-Frame-Options` | 点击劫持 |
| `X-XSS-Protection` | 反射型 XSS(旧版) |
| `Referrer-Policy` | Referrer 信息泄露 |
| `Permissions-Policy` | 浏览器特性滥用 |
| `Cross-Origin-*-Policy` | 跨域攻击(Spectre 等) |
**漏洞赏金用途:** 缺失安全标头在大多数项目中都是有效的漏洞赏金发现。信息泄露标头(`X-Powered-By`、`Server` 版本)有助于识别技术栈指纹。
### 🔬 `scan` —— TLS 与证书漏洞扫描器
带有严重性评级的全面安全审计。
```
./assetmap scan target.com
./assetmap scan target.com 8443
```
```
═══════════════════════════════════════════════════════
Security Audit: target.com:443
═══════════════════════════════════════════════════════
───── TLS Version Support ─────
[HIGH] TLS 1.0 is supported (deprecated/insecure)
[INFO] TLS 1.2 is supported
[INFO] TLS 1.3 is supported
───── Weak Cipher Check ─────
[HIGH] RC4 ciphers accepted (cipher: RC4-SHA)
[+] No other weak ciphers accepted
───── Certificate Security ─────
[CRITICAL] Certificate is EXPIRED
[HIGH] Certificate uses weak signature algorithm: SHA-1
───── HTTP → HTTPS Redirect ─────
[MEDIUM] HTTP port 80 serves content without redirecting to HTTPS
───── HSTS & Cookie Security ─────
[MEDIUM] HSTS header is MISSING
[MEDIUM] Cookie 'session' missing Secure flag
[LOW] Cookie 'session' missing SameSite attribute
═══════════════════════════════════════════════════════
Scan Summary
═══════════════════════════════════════════════════════
[*] 7 total finding(s): 1 critical, 2 high, 3 medium, 1 low
[!] CRITICAL issues found — immediate remediation needed!
```
**检查内容:**
| 检查项 | 严重性 | 描述 |
|-------|----------|-------------|
| 支持 TLS 1.0/1.1 | HIGH | 易受 BEAST、POODLE 攻击的废弃协议 |
| NULL/EXPORT 密码套件 | CRITICAL | 无加密或极易破解 |
| RC4/DES 密码套件 | HIGH | 已知被破解的密码套件 |
| 3DES/MD5 密码套件 | MEDIUM | 较弱但无法立即利用 |
| 证书过期 | CRITICAL | 用户会看到浏览器警告 |
| 自签名证书 | HIGH | 没有信任链 |
| SHA-1 签名 | HIGH | 已被证明存在可行的碰撞攻击 |
| RSA 密钥 < 2048 位 | HIGH | 可使用现代硬件进行因式分解 |
| 主机名不匹配 | HIGH | 证书与域名不匹配 |
| 无 HTTPS 重定向 | MEDIUM | 用户在 HTTP 上可能遭受 MITM 攻击 |
| 缺少 HSTS | MEDIUM | 浏览器不会强制使用 HTTPS |
| Cookie 缺少 Secure | MEDIUM | Cookie 通过 HTTP 发送 |
| Cookie 缺少 HttpOnly | LOW | 可通过 JavaScript 访问(存在 XSS 风险) |
| Cookie 缺少 SameSite | LOW | 存在 CSRF 风险 |
## 真实场景示例
### 漏洞赏金侦察流水线
```
# 1. 通过 cert transparency 发现子域名
./assetmap crt target.com > subdomains.txt
# 2. 通过 org name 查找更多域名
./assetmap crt-org "Target Inc" >> subdomains.txt
# 3. 去重
sort -u subdomains.txt -o subdomains.txt
# 4. 查找 favicon hash 并在 Shodan 中搜索相关资产
./assetmap favicon https://target.com/favicon.ico
# 5. Fingerprint 所有子域名的 certs
while read host; do
echo "=== $host ==="
./assetmap ssl "$host" 2>/dev/null
done < subdomains.txt
# 6. 审计 live hosts 上的 headers
cat subdomains.txt | while read host; do
./assetmap headers "https://$host" 2>/dev/null
done
# 7. 完整的 vuln scan
while read host; do
./assetmap scan "$host" 2>/dev/null
done < subdomains.txt
```
### 快速单目标审计
```
# 针对单一目标的完整 recon
./assetmap ssl target.com
./assetmap headers https://target.com
./assetmap scan target.com
```
## 漏洞赏金工作流
```
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ crt / crt-org │────▶│ Subdomain │────▶│ ssl fingerprint │
│ (discovery) │ │ List │ │ (per host) │
└─────────────┘ └──────────────┘ └─────────────────┘
│
┌─────────────┐ ┌──────▼──────────┐
│ favicon │─── Shodan Dork ────▶ │ headers audit │
│ (hash) │ │ (per URL) │
└─────────────┘ └──────┬──────────┘
│
┌──────▼──────────┐
│ scan (vuln) │
│ TLS + certs │
└─────────────────┘
```
## 项目架构
```
assetmap/
├── Makefile # GNU Make build system
├── LICENSE # MIT License
├── README.md
├── .gitignore
├── include/
│ ├── b64.h # Base64 (Python-compatible line wrapping)
│ ├── crtsh.h # crt.sh CT log queries
│ ├── favicon.h # Favicon mmh3 hash computation
│ ├── headers.h # HTTP security header audit
│ ├── http.h # HTTP client (libcurl wrapper)
│ ├── mmh3.h # MurmurHash3 x86-32
│ ├── sslfp.h # SSL/TLS certificate fingerprinting
│ └── vulnscan.h # TLS/cert vulnerability scanner
└── src/
├── b64.c # Base64 encoder matching Python encodebytes()
├── crtsh.c # crt.sh JSON parsing & dedup
├── favicon.c # Fetch → base64 → mmh3 pipeline
├── headers.c # 10-header audit with grading
├── http.c # libcurl GET with redirect/timeout/UA
├── main.c # CLI dispatcher & banner
├── mmh3.c # MurmurHash3 (Austin Appleby's algorithm)
├── sslfp.c # OpenSSL direct TLS connect & cert parsing
└── vulnscan.c # 5-stage security audit engine
```
## 免责声明
## 许可证
[MIT 许可证](LICENSE) —— 随意使用、复刻、尽情折腾。
## 作者
**Venu** ([@Venu-exe](https://github.com/Venu-exe))
如果这个工具帮你找到了 bug,请考虑给它点个 ⭐
标签:C2日志可视化, GitHub, 安全测试工具, 实时处理, 客户端加密, 密码管理, 指纹识别, 资产测绘