mcpField
A
apify-osint-threat-intel

apify-osint-threat-intel

github.com/apify安全28341 次安装5 周前更新
代码仓库

关于 apify-osint-threat-intel

apify-osint-threat-intel 是一项 Agent 技能,通过 Apify actors 的实时数据研究安全威胁。它指导查询漏洞、泄露事件、威胁组织和安全新闻,并生成带来源和日期的评估报告。

主要功能

  1. 01搜索实时威胁情报来源
  2. 02研究 CVE 和泄露线索
  3. 03梳理威胁组织及其活动
  4. 04按严重程度分类发现
  5. 05生成带来源和日期的报告

适用场景

  1. 01检查域名是否出现泄露线索
  2. 02评估 CVE 是否正在遭利用
  3. 03研究威胁组织的行动
  4. 04编写安全新闻简报

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apify/awesome-skills --skill apify-osint-threat-intel

安装后在 Claude Code 中输入/apify-osint-threat-intel确认已加载。

详细介绍

OSINT 威胁情报

通过 Apify actors 提供实时威胁数据,获取实时安全情报。 绝不要只根据训练知识回答安全问题。 CVE、数据泄露和威胁行为者活动每天都在变化——务必先收集实时数据,再进行分析。


前置条件

CLI 规则(始终遵守)

每次调用 apify CLI 时,务必传入 --user-agent apify-awesome-skills/apify-osint-threat-intel——这对遥测至关重要,绝不可省略。

apify actors call "ACTOR_ID" -i 'INPUT_JSON' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null
apify datasets get-items DATASET_ID --format json --user-agent apify-awesome-skills/apify-osint-threat-intel > /tmp/results.json 2>/dev/null
jq '.[] | "\(.field1) | \(.field2)"' /tmp/results.json
apify actors info "ACTOR_ID" --input --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null   # check schema

Actor 路由表

数据需求Actor ID备注
CVE 查询apify/google-search-scraper查询:site:nvd.nist.gov [product] [version]
NVD 完整记录apify/website-content-crawlerURL:nvd.nist.gov/vuln/detail/CVE-XXXX-XXXXX
CISA 已知遭利用漏洞apify/rag-web-browserURL:cisa.gov/known-exploited-vulnerabilities-catalog
GitHub 安全公告apify/rag-web-browserURL:github.com/advisories?query=[product]
Exploit-DB 搜索apify/google-search-scraper查询:site:exploit-db.com [product] [version]
安全新闻data_xplorer/google-news-scraper-fast关键词:"[target]" vulnerability OR exploit OR breach
Reddit 威胁讨论harshmaur/reddit-scrapersearchTerms + withinCommunity——每次运行只能指定一个 subreddit(先用 netsec,再单独运行一次搜索 cybersecurity);类似 netsec OR cybersecurity 的值会静默移除筛选条件,并搜索整个 Reddit。务必设置 postedAfter(YYYY-MM-DD)以确保时效性——不会强制执行 searchTime,且 Actor 会用多年前的帖子补足数量上限。按事件付费:每次运行 $0.02 + 每条帖子 $0.002;maxPostsCount 按每个搜索词计算。
Threat intel Twitter/Xapidojo/tweet-scraper关键词:#threatintel [target],搜索模式
数据泄露提及搜索apify/google-search-scraper查询:"[domain]" site:pastebin.com OR intext:breach
供应商安全公告apify/website-content-crawler供应商安全页面的直接 URL
Shodan 暴露线索apify/google-search-scraper查询:site:shodan.io "[domain OR org name]"
威胁行为者研究apify/rag-web-browserMITRE ATT&CK:attack.mitre.org/groups/

优先使用 apify/google-search-scraper 和 apify/rag-web-browser,速度比 website-content-crawler 快。
仅在需要完整页面正文时使用 website-content-crawler(例如 NVD 详情、供应商公告)。
不要在以下网站使用 website-content-crawler:reddit.com、twitter.com、pastebin.com、linkedin.com。


核心工作流

步骤 0 — 运行任何操作前先明确范围

询问用户:

  • 目标类型:域名、IP、软件/版本、CVE ID、威胁行为者名称或关键词?
  • 目标:一次性查询,还是持续监控简报?
  • 自主程度:全自动运行,还是每次调用 actor 前先确认?
步骤 1 — 确定模块
用户说模块步骤
"查找 [product] 的 CVE"CVE 情报2a
"[domain] 是否遭到泄露/暴露"域名威胁画像2b
"研究 [threat actor / malware]"威胁行为者画像2c
"关于 [topic] 的安全新闻"安全新闻简报2d
"[company] 的攻击面"攻击面发现2b + 2d
"关于 [target] 的完整威胁报告"多模块2a + 2b + 2c + 2d
步骤 2a — CVE 情报

收集产品或版本的实时 CVE 数据:

# 1. Search NVD via Google
apify actors call "apify/google-search-scraper" -i '{
  "queries": "site:nvd.nist.gov CVE [PRODUCT] [VERSION]",
  "maxPagesPerQuery": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 2. Pull full NVD record for each CVE ID found
apify actors call "apify/website-content-crawler" -i '{
  "startUrls": [{"url": "https://nvd.nist.gov/vuln/detail/CVE-XXXX-XXXXX"}],
  "proxyConfiguration": {"useApifyProxy": true},
  "maxCrawlPages": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 3. Check if CVE is in CISA's Known Exploited Vulnerabilities list
apify actors call "apify/rag-web-browser" -i '{
  "query": "[CVE-ID] site:cisa.gov/known-exploited-vulnerabilities-catalog",
  "maxResults": 3
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 4. Check Exploit-DB for public PoC
apify actors call "apify/google-search-scraper" -i '{
  "queries": "site:exploit-db.com [PRODUCT] [VERSION]",
  "maxPagesPerQuery": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

综合评估:严重程度(CVSS)、可利用性(CISA KEV = 正在遭到利用)、是否存在公开 PoC(是/否)、是否有可用补丁(是/否)。

步骤 2b — 域名威胁画像
# 1. Search for breach mentions
apify actors call "apify/google-search-scraper" -i '{
  "queries": "\"[DOMAIN]\" breach OR leak OR hacked OR \"data exposed\"",
  "maxPagesPerQuery": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 2. Check paste sites for credential leaks
apify actors call "apify/google-search-scraper" -i '{
  "queries": "\"[DOMAIN]\" site:pastebin.com OR site:ghostbin.com OR site:rentry.co",
  "maxPagesPerQuery": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 3. Check Shodan exposure hints via Google
apify actors call "apify/google-search-scraper" -i '{
  "queries": "site:shodan.io \"[DOMAIN OR ORG]\"",
  "maxPagesPerQuery": 1
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 4. Scan r/netsec for mentions — one subreddit per run; repeat with "withinCommunity": "cybersecurity"
#    postedAfter = today minus 365 days (YYYY-MM-DD). 3 terms × 5 posts = 15 posts ≈ $0.05.
#    Use `postUrl` as the Source and `createdAt` for the date stamp.
apify actors call "harshmaur/reddit-scraper" -i '{
  "searchTerms": ["[DOMAIN] breach", "[DOMAIN] hack", "[DOMAIN] vulnerability"],
  "withinCommunity": "netsec",
  "postedAfter": "[YYYY-MM-DD]",
  "maxPostsCount": 5,
  "crawlCommentsPerPost": false
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null
步骤 2c — 威胁行为者画像
# 1. MITRE ATT&CK lookup
apify actors call "apify/rag-web-browser" -i '{
  "query": "[THREAT ACTOR NAME] site:attack.mitre.org",
  "maxResults": 3
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 2. Recent activity via news
apify actors call "data_xplorer/google-news-scraper-fast" -i '{
  "keywords": ["[THREAT ACTOR NAME] attack OR campaign OR malware"],
  "timeframe": "30d",
  "maxArticles": 15
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 3. Community threat intel on Twitter/X
apify actors call "apidojo/tweet-scraper" -i '{
  "searchTerms": ["#threatintel [THREAT ACTOR]", "[THREAT ACTOR] TTPs"],
  "maxItems": 20,
  "sort": "Latest"
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 4. Reddit discussion — postedAfter = today minus 365 days; `createdAt` of the newest post = "Last seen"
apify actors call "harshmaur/reddit-scraper" -i '{
  "searchTerms": ["[THREAT ACTOR NAME]"],
  "withinCommunity": "netsec",
  "postedAfter": "[YYYY-MM-DD]",
  "maxPostsCount": 10,
  "crawlCommentsPerPost": false
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null
步骤 2d — 安全新闻简报
# 1. Google News for topic
apify actors call "data_xplorer/google-news-scraper-fast" -i '{
  "keywords": ["[TOPIC] vulnerability OR CVE OR breach OR exploit"],
  "timeframe": "7d",
  "maxArticles": 20
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null

# 2. Reddit r/netsec latest — sort goes into the URL (/new/); `searchSort` does not apply to startUrls
apify actors call "harshmaur/reddit-scraper" -i '{
  "startUrls": [{"url": "https://www.reddit.com/r/netsec/new/"}],
  "maxPostsCount": 15,
  "crawlCommentsPerPost": false
}' --user-agent apify-awesome-skills/apify-osint-threat-intel --json 2>/dev/null
第 3 步 — 分类和评估

对每项发现,应用以下分类:

严重程度标准
严重CVSS ≥ 9.0,或列入 CISA KEV 清单,或存在公开 PoC 且尚未修补
高CVSS 7.0–8.9,或新闻报道了正在发生的攻击
中CVSS 4.0–6.9,或提及数据泄露但没有正在发生的攻击
低CVSS < 4.0,或属历史问题、已修补且没有正在发生的攻击
信息性有暴露迹象,但未确认存在漏洞
第 4 步 — 提交结构化报告

输出格式:

## Threat Intelligence Report — [TARGET]
Date: [today]

### Executive Summary
[2–3 sentence risk verdict]

### Critical Findings
- [CVE/Finding] — Severity: [X] — Status: [Patched/Unpatched/Active exploit]
  Source: [URL]

### Breach/Exposure Indicators
- [Finding] — Source: [URL]

### Threat Actor Activity (if applicable)
- [Actor] — TTPs: [list] — Last seen: [date]

### Recommended Actions
1. [Immediate action]
2. [Short-term action]
3. [Monitoring recommendation]

### Data Sources
[Bullet list of all URLs cited]

数据质量规则

  • 每项结论都需要来源 URL — 不得作出没有依据的断言
  • 空结果也是情报 — 明确报告空结果(“未找到粘贴内容提及”)
  • 为所有发现标注日期 — CVE 严重程度、修补状态和数据泄露报告都具有时效性
  • 置信度等级:
    • [Confirmed] — 一手来源(NVD、CISA、供应商公告)
    • [Reported] — 新闻报道及社区佐证
    • [Unverified] — 单一二手来源,需明确标注
  • 并行执行彼此独立的 Actor 调用(CVE 搜索、新闻和 Reddit 可以同时运行;两次 Reddit 搜索——netsec、cybersecurity——也可以同时运行)
  • 预算:若需要超过 10 次 Actor 调用,请提醒用户;继续前需取得批准

故障排除

问题解决方法
google-search-scraper 返回 0 条结果简化查询,移除 site: 筛选条件,或尝试更宽泛的关键词
website-content-crawler 在 NVD 上超时使用 rag-web-browser 作为备用方案,并提供直接的 CVE URL
harshmaur/reddit-scraper 返回 0 条内容,或返回来自无关 subreddit 的帖子在运行的键值存储中读取 RUN-SUMMARY 记录:inputWarnings 会说明何时丢弃了 withinCommunity(名称超过一个)或日期无法解析;emptyReason 会解释为何返回 0 条内容。缩短关键词(Reddit 搜索会按字面匹配)。备用方案:使用 fatihtahta/reddit-scraper-search-fast,参数为 {"subredditName": "netsec", "subredditKeywords": ["[TERM]"], "subredditTimeframe": "month", "maxPosts": 10}(每条帖子 $0.00149,无启动费;字段包括 title、url、subreddit、created_utc、score、num_comments)
tweet-scraper 返回的结果很少扩大搜索范围,使用 #cybersecurity [term],或移除必须包含主题标签的要求
CISA KEV 页面过大,无法抓取使用 rag-web-browser,并以具体 CVE ID 作为查询

示例提示词

  • “检查 example.com 是否存在任何已知漏洞,或是否出现在近期数据泄露信息中。”
  • “关于 CVE-2026-1234 的最新威胁情报是什么?它是否正遭到利用?”
  • “分析 APT28 组织——近期行动、TTP 和基础设施。”

**范围界定:**此技能用于研究组织、基础设施和已命名的威胁组织。它不会创建针对私人个体的跨平台档案。

评论

支持 Markdown