Files
OSINT-Framework/merge_enrichments.py
T
s0lrayandPaperclip 0905218daa Enrich Domain Name tools batch 4 (25 tools) with OSINT metadata
Add comprehensive enrichment fields for the following 25 Domain Name tools:
- Threatexpert.com Malicious URLs
- Zeus C2 Tracker
- Malware Domains Blacklist
- Blackweb
- Critical Stack Intel (R)
- DNS Sinkhole
- DNS-BH Malware Domain Blocklist
- Malware Domain List
- MalwareURL (R)
- scumware.org
- ZeuS Tracker
- Shadowserver Foundation
- Email Domain Validation
- vURL Online
- AlienVault Open Threat Exchange
- Web Inspector Online Scan
- Google Safe Browsing API
- Cisco Talos
- DNS Twist (T)
- URLCrazy (T)
- dnstwister
- Catphish (T)
- BuiltWith
- SiteSleuth

Populated fields for each tool:
- description: 1-2 sentence summary
- status: live/down/degraded
- pricing: free/freemium/paid
- bestFor: primary use-case
- input/output: data format
- opsec: passive/active/Unknown
- opsecNote: OPSEC implications
- Badges: localInstall, googleDork, registration, editUrl, api, invitationOnly, deprecated

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-27 01:49:55 -04:00

42 lines
1.3 KiB
Python

#!/usr/bin/env python3
import json
import sys
def merge_enrichment_into_node(node, enrichments):
"""Recursively search and merge enrichment data into matching nodes."""
if isinstance(node, dict):
if "name" in node and node["name"] in enrichments:
# Found a matching tool, merge enrichment data
enrichment = enrichments[node["name"]]
for key, value in enrichment.items():
node[key] = value
# Recursively process children
if "children" in node and isinstance(node["children"], list):
for child in node["children"]:
merge_enrichment_into_node(child, enrichments)
def main():
# Load enrichment data
with open("enrichment-batch4-domains.json", "r") as f:
enrichment_data = json.load(f)
enrichments = enrichment_data["enrichments"]
# Load arf.json
with open("public/arf.json", "r") as f:
arf_data = json.load(f)
# Merge enrichment data into arf.json
merge_enrichment_into_node(arf_data, enrichments)
# Write the updated arf.json
with open("public/arf.json", "w") as f:
json.dump(arf_data, f, indent=2)
print(f"Successfully merged enrichment data for {len(enrichments)} tools")
print("Updated public/arf.json")
if __name__ == "__main__":
main()