← 返回
未分类 Key 中文

OSINT Daily Brief

Generate a daily OSINT intelligence brief on any target — domain, company, IP, person, or keyword — using Tavily web search, WHOIS, DNS recon, and Shodan. De...
每日生成针对任意目标(域名、公司、IP、个人或关键词)的开源情报简报,整合 Tavily 网页搜索、WHOIS、DNS 侦察和 Shodan。
infectit007
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 399
下载
💾 0
安装
1
版本
#latest

概述

OSINT Daily Brief

Automated open-source intelligence report for any target.

Pulls from Tavily AI search, DNS records, WHOIS, and optionally Shodan.

Structures findings into a daily brief you can read in under 2 minutes.

Use for: competitive intel, brand monitoring, pre-engagement recon, daily threat feeds.


Prerequisites

# Required
TAVILY_API_KEY=your_key_here        # tavily.com → free: 1,000 searches/month

# Optional — for richer results
SHODAN_API_KEY=your_key_here        # shodan.io → free tier available

Workflow

1. Web intelligence (Tavily)

import os, requests

def tavily_search(query: str, max_results: int = 5) -> list[dict]:
    """AI-optimized web search — returns full page content, not just snippets."""
    r = requests.post(
        "https://api.tavily.com/search",
        json={
            "api_key":     os.environ["TAVILY_API_KEY"],
            "query":       query,
            "max_results": max_results,
            "search_depth": "advanced",
        },
        timeout=15,
    )
    return r.json().get("results", [])

# Example: monitor a target
target = "example.com"
news   = tavily_search(f"{target} security breach data leak 2026")
tech   = tavily_search(f"{target} technology stack infrastructure")

2. DNS recon

import subprocess

def dns_recon(domain: str) -> dict:
    results = {}
    for record_type in ["A", "MX", "NS", "TXT"]:
        try:
            r = subprocess.run(
                ["dig", "+short", record_type, domain],
                capture_output=True, text=True, timeout=5
            )
            results[record_type] = r.stdout.strip().split("\n")
        except Exception:
            results[record_type] = []
    return results

3. WHOIS

def whois_lookup(domain: str) -> str:
    try:
        r = subprocess.run(
            ["whois", domain],
            capture_output=True, text=True, timeout=10
        )
        # Extract key fields only
        lines = r.stdout.split("\n")
        relevant = [l for l in lines if any(k in l.lower() for k in
            ["registrar", "created", "expires", "registrant", "name server"])]
        return "\n".join(relevant[:15])
    except Exception as e:
        return f"WHOIS error: {e}"

4. Shodan (optional)

def shodan_lookup(ip_or_domain: str) -> dict:
    key = os.environ.get("SHODAN_API_KEY")
    if not key:
        return {"error": "SHODAN_API_KEY not set"}
    try:
        r = requests.get(
            f"https://api.shodan.io/shodan/host/{ip_or_domain}",
            params={"key": key},
            timeout=10
        )
        data = r.json()
        return {
            "ports":   data.get("ports", []),
            "org":     data.get("org", ""),
            "country": data.get("country_name", ""),
            "vulns":   list(data.get("vulns", {}).keys())[:5],
        }
    except Exception as e:
        return {"error": str(e)}

5. Format the brief

OSINT DAILY BRIEF — [target] — YYYY-MM-DD
─────────────────────────────────────────
THREAT INDICATORS
  ⚠️  [finding] — [source]
  ✅  No breach mentions in last 30 days

DNS PROFILE
  A:   [IPs]
  MX:  [mail servers]
  NS:  [nameservers]
  TXT: [SPF/DKIM/verification records]

WHOIS
  Registrar: [name]
  Created:   [date]
  Expires:   [date]
  Name Servers: [list]

EXPOSED ASSETS (Shodan)
  Open ports: [list]
  Org:        [org name]
  CVEs:       [list or "none detected"]

NEWS & WEB MENTIONS (last 30 days)
  1. [title] — [source] — [url]
  2. ...

SUMMARY
  Risk level: [LOW/MEDIUM/HIGH]
  Key concern: [one sentence]
  Recommended: [1–2 actions]
─────────────────────────────────────────
Sources: Tavily, WHOIS, DNS, Shodan

Scheduling — daily brand/target monitoring

# Monitor your own domain daily
openclaw cron add \
  --name "osint-brief:daily-self" \
  --cron "0 6 * * *" \
  --prompt "Run osint-daily-brief skill on target: yourdomain.com. Send report to Telegram."

# Monitor a competitor
openclaw cron add \
  --name "osint-brief:daily-competitor" \
  --cron "0 6 * * *" \
  --prompt "Run osint-daily-brief skill on target: competitor.com. Flag any new exposed ports, CVEs, or breach mentions."

Use cases

Use caseTargetFrequency
-----------------------------
Brand monitoringyour domaindaily
Competitive intelcompetitor domainsweekly
Pre-engagement reconclient domainone-time
Threat actor trackingIP rangesdaily
Dark web mentionsbrand keywordsweekly

Privacy & ethics

  • Only investigate targets you own or have explicit authorization to research
  • All data comes from public sources (Tavily, DNS, WHOIS, Shodan)
  • No social engineering, credential testing, or active probing
  • WHOIS and Shodan data is public by design — this skill reads it, does not generate it
  • Comply with applicable laws in your jurisdiction

Notes

  • Tavily free tier: 1,000 searches/month. Each run uses ~3–5 searches.
  • Shodan free tier: limited to 1 result per query on some endpoints
  • DNS recon requires dig installed: sudo apt install dnsutils
  • WHOIS requires whois installed: sudo apt install whois
  • For dark web mentions, pair with Tor proxy (Ahmia search via SOCKS5)

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 13:11 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Skill Safety Scanner

infectit007
扫描已安装的 ClawHub 技能,查找危险代码模式——凭据收割、shell 注入、未授权网络请求以及已知恶意签名
★ 0 📥 364

Agent Cashflow

infectit007
Track real revenue for ClawHub skill publishers — installs, downloads, stars, and ETH wallet balance pulled from live AP
★ 0 📥 323

Suricata IDS Monitor

infectit007
Read and triage Suricata IDS/IPS alerts from eve.json into a structured threat report — severity-ranked findings, attack
★ 0 📥 370