HoneyLabs

net.honeylabs由 honeylabs.net 發布官方發布者v1.2.0更新於 Oct 30, 2026

Honeypot probe data: IP reputation, scanners, CVE probing, TLS and SSH fingerprints.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取安全與監控

概覽

AI 產生的概覽

遠端 MCP 伺服器,提供 HoneyLabs 蜜罐威脅情報:IP 信譽、掃描器辨識、CVE 探測、指紋與攻擊時間軸。

可以做什麼
  • 查詢指標:對 IP、CIDR 網段或網域給出判定與理由,並附 CVE 探測細節
  • 檢索與排行事件:依來源、連接埠、協定或指紋篩選原始蜜罐事件,並產生攻擊來源、網路、國家、連接埠、User-Agent 或 CVE 排行榜
  • 時間與網路分析:以小時或日為單位的攻擊時間軸,以及 ASN 剖析(熱門連接埠、來源國家、User-Agent)
  • 指紋分析:依 JA4、JA3、Akin 或 HASSH 檢索,找出相近的請求形態,並評估某指紋涵蓋多少位址
  • 酬載與 UDP 檢索:對請求路徑、內文與標頭做字面子字串搜尋,並檢視 DNS、QUIC 等 UDP 探測
  • 互動式感測器資料:被嘗試的登入憑證、以 SHA-256 記錄的上傳檔案與 VirusTotal 判定、某位址的工作階段紀錄
適用情境
適合在調查可疑 IP、防火牆或 WAF 日誌、掃描活動時使用,取得第一手探測資料:某位址是否為已知掃描器、哪些 CVE 正被大規模掃描、某指紋屬於什麼、攻擊量如何變化。也適合為事件研判補充 ASN、國家與指紋背景。
執行需求
遠端 streamable HTTP 端點,無需本機安裝。必須驗證:在 Authorization 標頭提供 Bearer API 金鑰(從 HoneyLabs 儀表板取得),或對支援 OAuth 2.1 的用戶端使用含動態用戶端註冊的 OAuth 流程。免費金鑰每日 500 點,回應中每一列計為 1 點。
安裝前請注意
Authorization 中的 Bearer 金鑰屬於機密,應避免寫入共用設定或日誌。用量依回傳列數計點,範圍過大的查詢可能耗盡每日額度,更高額度需付費。查詢內容與所查指標會傳送給第三方。UDP 來源位址可被偽造,基於 UDP 的歸因並不可靠。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 HoneyLabs,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/net.honeylabs%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "honeylabs": {
      "type": "http",
      "url": "https://mcp.honeylabs.net/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

HoneyLabs

Honeypot threat intelligence as MCP tools. Query 90 days of probe data from our honeypot sensor network: IP reputation, scanner classification, CVE probing trends, TLS/HTTP/SSH fingerprints (JA4, JA3, Akin, HASSH), mTLS client certificates, Community ID flow hashes, and attack timelines. Use it straight from Claude, Cursor, Gemini, Cline, or any other Model Context Protocol client.


Install

Claude Code

bash
claude mcp add honeylabs \  --transport http \  https://mcp.honeylabs.net/mcp \  --header "Authorization: Bearer <your-key>"

Get a key at https://honeylabs.net/dashboard?src=github (magic-link sign-in, no password).

Claude Desktop / Cursor

Add to your MCP config:

json
{  "mcpServers": {    "honeylabs": {      "url": "https://mcp.honeylabs.net/mcp",      "headers": {        "Authorization": "Bearer <your-key>"      }    }  }}

Cline

Same JSON config as Claude Desktop / Cursor. Install via the MCP Marketplace listing or paste the config block above into your settings.

Gemini CLI

bash
gemini /mcp add honeylabs https://mcp.honeylabs.net/mcpgemini /mcp auth honeylabs    # OAuth flow, no static key

OAuth 2.1 with PKCE + DCR is supported at /oauth/authorize. Any MCP client that speaks standard OAuth (Gemini, MCP Inspector, Smithery, Cline's OAuth flow) works out of the box.


Tools

ToolWhat it answers
ioc_lookupIs this IP / domain known to be probing? Returns our verdict, whether it is a recognised benign scanner, the CVEs it probed, plus ports / paths / fingerprints.
top_attackersRanked leaderboard of source IPs, ASNs, countries, ports, user-agents, or CVEs (by='cve') over a time window.
search_eventsRaw honeypot events matching filters (IP, ASN, country, dest_port, protocol, http_method, ja4/ja3/akin, community_id, has_client_cert).
attack_timelineHourly / daily attack volume over a window, with protocol / country / port filters.
asn_enrichFull profile for an ASN: total events, unique IPs, top ports, source countries, user-agents, org name.
fingerprint_searchSearch by TLS JA4 / JA3, HTTP Akin or SSH HASSH fingerprint to find shared infrastructure.
fingerprint_similarRequest shapes within a few headers of an Akin HTTP fingerprint, what those clients ask for, and the family the token belongs to.
cve_lookupWho is probing a named CVE: severity, KEV status, top probing IPs with ASN and scanner tag, fingerprints, sample paths, daily timeline.
payload_searchSubstring search across request paths, bodies and headers. Never a CVE id.
fingerprint_populationHow many addresses and networks carry one fingerprint, and whether it looks like one operation.
udp_activityDNS questions, QUIC client fingerprints and other UDP probes. UDP sources can be forged.
interactive_credentialsLogins tried against the interactive sensors, per service.
interactive_filesFiles clients handed to the interactive sensors, by SHA-256, with the VirusTotal verdict.
interactive_sessionsSessions one address or range held with the interactive sensors.

Every tool is free to call. Plans differ by how much you can pull, not by which tools exist: each row in a response counts as one credit, and a free key gives 500 credits a day, with higher limits for heavier use. See https://honeylabs.net/docs#plans for the breakdown, or https://honeylabs.net/pricing.json for the same as JSON.

Tool names on the server carry a _tool suffix (ioc_lookup_tool). The server card is at https://mcp.honeylabs.net/mcp/server-card.


What the data is

HoneyLabs runs a fleet of honeypots that get probed by the public internet all day. Every probe, meaning every connection, TLS handshake, and HTTP request, is logged with the source IP, ASN, geo, TLS/HTTP/SSH fingerprints, and full URL path. We retain the last 90 days and expose it through this MCP server, a JSON API, a public lookup web UI at /lookup/<ip>, and CSV / STIX exports.

This is our own ground-truth record of what is actively scanning the internet right now, gathered first-hand rather than copied from a CVSS database or a third-party reputation feed.


Showcase prompts

Things to ask Claude / Cursor / Gemini once HoneyLabs is wired in:

  • "Is 80.82.77.202 a known scanner? When was it last seen and what does it probe?"
  • "Pull every IP that hit port 445 with a non-Windows User-Agent in the last 24 hours."
  • "Show CVE-2024-4577 probing volume per day for the last 7 days, broken down by ASN."
  • "Which CVEs are being mass-scanned this week, and who is behind the top one?"
  • "167.94.146.63 is hammering my firewall logs. Is that an attack or a research scanner?"
  • "For the top 10 attackers on port 6379 right now, what TLS JA4 fingerprints do they share?"

More worked examples at https://honeylabs.net/mcp.


Open source

The honeypot fleet itself (Spip-Go) and the enrichment pipeline (Loom) are public. This repo (the MCP / API surface) is closed.


Contact

來源:README.md,提交 837e3c2

工具

14

search_events_tool

Search raw events

Individual honeypot events with every field, newest first, filtered by source, network, port, protocol or fingerprint. Use when the user wants to see the records themselves: "show me the events from this IP", "what hit port 443 yesterday", "every request carrying this JA4", "all RDP traffic regardless of port". Do not use it to judge one address (use ioc_lookup_tool), to rank or count (use top_attackers_tool or attack_timeline_tool), to search request text (use payload_search_tool), or for a CVE (use cve_lookup_tool). Filters, all optional and combined with AND: source_ip, country (ISO 3166 two-letter code), asn ('AS12345'), dest_port, protocol ('tls', or '' for raw TCP), app_protocol (detected layer-7 protocol such as 'ssh', 'rdp', 'mssql-tds', 'rtsp', 'smbv1', 'bittorrent' or 'mining', whatever the port), http_method, request_header (substring of the masked request headers), source_domain (reverse DNS substring), ja4 or ja3 (exact TLS client fingerprint), akin (exact HTTP request fingerprint such as b11cun030_00040014_54d07b6d), has_client_cert (true for clients that presented an mTLS certificate), ip_version (4 or 6). limit is 1 to 500, default 100. since and until are ISO-8601 UTC timestamps; the span between them may not exceed the query window of the caller's plan (https://honeylabs.net/pricing.json). Each record carries source_ip, country, asn, dest_port, user_agent, url_path, http_request_headers, tls_client_ja4, tls_client_ja3, tls_client_hello_hex (the raw ClientHello), ssh_client_hassh, tls_client_cert_subject and issuer, event_sequence, event_duration, byte counts, network_protocol, application_protocol and timestamp. TCP events from first-contact sensors only.

輸入參數asnja3ja4akinlimitsince必填until必填countryprotocoldest_portsource_ipip_version另有 5 個

top_attackers_tool

Rank sources, ports or CVEs

Ranked leaderboard over a time window: the top source addresses, networks, countries, destination ports, user agents, JA4 fingerprints, URL paths, reverse DNS domains or CVEs by event count. Use for "who is attacking the most", "top countries hitting port 22", "most targeted ports this week", "top networks by volume", and with by='cve' for "which CVEs are being scanned for right now". Do not use it for one known address (use ioc_lookup_tool), one known network (use asn_enrich_tool), one known CVE (use cve_lookup_tool), or a trend over time (use attack_timeline_tool). by: ip, asn, country, port, user_agent, ja4, url_path, domain or cve (default ip). limit is 1 to 100, default 20. Optional filters country (ISO code), dest_port and asn ('AS12345'); add one when the window is long, because an unfiltered ranking over many days can hit the query memory limit. by='cve' takes no filters and returns value (the CVE id), title, severity, actively_exploited (on the CISA KEV catalogue), kev_date_added and counts. since and until are ISO-8601 UTC, within the plan's query window.

輸入參數byasnlimitsince必填until必填countrydest_port

ioc_lookup_tool

Look up an address, range or domain

Everything the sensors hold on one IP address, a CIDR range, several ranges at once, or a domain, with our verdict and the reasons for it. Start here for any question about a specific indicator. Use for "is this IP malicious", "is this a known scanner", "have you seen this address", "when was it last seen", "have any of this vendor's ranges touched you". Do not use it to rank many sources (use top_attackers_tool), to profile a whole ASN (use asn_enrich_tool), or to list raw events (use search_events_tool). For what an address did inside sessions with the interactive sensors, follow up with interactive_sessions_tool. Returns total_events (0 means never observed in the window), first_seen, last_seen, country, ASN, the 50 most-hit ports with ports_targeted_count, top user agents and URL paths, TLS/HTTP/SSH fingerprints, cve_probes (the CVE signatures it was seen probing), verdict (a sentence), verdict_key (a stable value to alert on: scanner, tor, malicious, scanning, probing or none), verdict_why (the signals behind it) and scanner (the identity of a recognised research scanner, else null). Report the verdict with its reasons. A high count from a recognised scanner is research traffic, not an attack. A single address may also carry udp_unverified: UDP traffic that claimed it as source, which can be forged and never counts against it. days limits the lookback. Leave it unset for a single address to read every retained event. A CIDR or domain defaults to 90 days because neither can use an index; pass days to change that. The response names the window it used in `window`; quote it with any count. Pass ranges as one string separated by commas, spaces or newlines ('103.66.28.0/22, 8.34.210.32/27'). Never expand a range into addresses and loop: one call answers it, and looping burns the daily credits. A range answer has query_type 'cidr' or 'cidr_set', per_range counts and top_source_ips.

輸入參數ioc必填days

cve_lookup_tool

Who is probing a CVE

Who is probing one named CVE, and how: counts, top probing addresses, networks, countries, fingerprints, sample request paths and a daily timeline. Use whenever the user names a CVE: "is CVE-2024-4577 being exploited in the wild", "who scans for CVE-2023-1389", "has anyone probed this before it was published". Do not pass a CVE id to payload_search_tool: the id is our label for a detection pattern and never appears in request text. For the list of CVEs being probed right now, use top_attackers_tool with by='cve'. Returns title, severity, actively_exploited and kev (the CISA KEV entry with date_added, or null), event and unique-address counts across both sensor types (first_contact_events and interactive_requests split them; an address both saw counts once), up to `limit` top probing addresses (1 to 25, default 25) with country, ASN and scanner (name and kind of a recognised research or vendor scanner, else null), top networks and countries, exploiter fingerprints, sample paths, a daily timeline and `interactive` (what the interactive sensors recorded of the probes). window: 24h, 7d (default), 30d or 90d, and on plans with the full history also 180d, 365d or all. observed: false with a note means we hold no detection pattern for that CVE, which is not evidence that nobody is scanning for it.

輸入參數limitcve_id必填window

payload_search_tool

Search request text

Literal substring search, ignoring case, over captured request text: URL path, request body, request headers and event summary. Use for "find requests to /wp-admin", "which requests carried this user agent string", "who sent '../../etc/passwd' last week". It matches text that appeared in the request and nothing else, so these return nothing: - a CVE id ('CVE-2024-4577'). Use cve_lookup_tool; this tool rejects CVE ids. - a product or vendor name ('Cisco FMC'). Search the path the product exposes instead, such as '/ccmadmin'. - a description of behaviour ('SQL injection'). Search a marker that occurs in the traffic, such as 'UNION SELECT'. For a fingerprint use fingerprint_search_tool; for events from one source use search_events_tool. An empty list is a real answer: no captured request in the window contained the string. Widen since and until before concluding the activity does not exist. since and until are ISO-8601 UTC within the plan's query window. limit is 1 to 100, default 50.

輸入參數limitquery必填since必填until必填

attack_timeline_tool

Event volume over time

Event counts over time, in hourly or daily buckets, optionally filtered by protocol, country or destination port. Use for "show the trend this week", "was there a spike on port 22", "how has SSH scanning changed over 30 days". Do not use it to find who caused a spike (follow up with top_attackers_tool on the same window and filter) or to see the events themselves (use search_events_tool). bucket: 'hour' or 'day' (default). filter_protocol: 'tls', or '' for raw TCP. filter_country: ISO two-letter code. filter_dest_port: a port number. since and until are ISO-8601 UTC within the plan's query window. Counts are raw totals from the first-contact sensors.

輸入參數since必填until必填bucketfilter_countryfilter_protocolfilter_dest_port

asn_enrich_tool

Profile a network (ASN)

Profile of one autonomous system (a hosting provider, ISP or company network) over a time window: total events, unique addresses, top targeted ports, source countries, top user agents and the organisation name. Use for "tell me about AS202425", "what is this hosting provider doing", "is this network a source of scanning". To attribute one address to its network, ioc_lookup_tool already returns the ASN; call this one afterwards for the network's wider behaviour. To rank networks against each other, use top_attackers_tool with by='asn'. asn: 'AS12345' or '12345'. since and until are ISO-8601 UTC within the plan's query window.

輸入參數asn必填since必填until必填

fingerprint_search_tool

Find activity by fingerprint

Events and sources that carried one client fingerprint in a time window. Use for "have you seen this JA4", "which IPs share this TLS fingerprint", "find every scanner with this SSH client fingerprint". For how widespread a fingerprint is and whether it is one operation or a common client, use fingerprint_population_tool. For HTTP request shapes a few headers away from an Akin fingerprint, use fingerprint_similar_tool. A JA4 that starts with q comes from QUIC over UDP and is answered by udp_activity_tool. fp_type: 'ja4' (TLS client), 'ja3' (legacy TLS client hash, still keyed by many feeds), 'akin' (HTTP request shape, such as b11cun030_00040014_54d07b6d) or 'hassh' (SSH client). since and until are ISO-8601 UTC within the plan's query window. limit is 1 to 200, default 50.

輸入參數limitsince必填until必填fp_type必填fingerprint必填

fingerprint_similar_tool

Similar HTTP request shapes

HTTP request shapes within a few headers of one Akin fingerprint, with what those clients request and call themselves, and the family the fingerprint belongs to. Use when an unfamiliar request shape turns up in your own web server, WAF or proxy logs and you want to know whether it is a known tool or a variant of one: "what is close to this fingerprint", "is this the same scanner with one header added". Only Akin fingerprints work here, because a hashed fingerprint such as JA4 changes completely when one header is added. For the sources that carried the exact fingerprint, use fingerprint_search_tool. fingerprint: an Akin token such as b11cun030_00040014_54d07b6d. max_distance: 1 to 4 headers, default 2. limit: 1 to 25 neighbours, default 8.

輸入參數limitfingerprint必填max_distance

fingerprint_population_tool

Who carries a fingerprint

The population behind one client fingerprint over the full retained window: how many source addresses carry it, across how many networks and countries, the ports they hit, the top networks, a sample of addresses, and a read on its shape. Use for "is this JA4 one botnet or a common tool", "how many networks use this HASSH", "how concentrated is this fingerprint". The concentration field says concentrated (many addresses on few networks), dispersed (many networks in one short burst on one or two ports, a coordinated operation spread thinly on purpose), spread (a common client) or mixed; concentrated and dispersed both point to one operator. For the individual events, use fingerprint_search_tool with a time window. fp_type: 'ja4' (TLS; a QUIC JA4 starting with q is answered from UDP traffic, whose sources can be forged), 'akin' (HTTP request shape) or 'hassh' (SSH). No date range: it reads everything retained.

輸入參數fp_type必填fingerprint必填

udp_activity_tool

UDP probes: DNS, QUIC and more

UDP datagrams sent to the sensors: DNS questions, QUIC client fingerprints and other UDP probes, with the ports, networks and countries involved. Use for "who is sending DNS ANY queries", "is anyone querying version.bind", "have you seen this QUIC JA4", "which UDP ports are probed", "what hits 5060/udp". Every other tool reads TCP only, so UDP questions belong here. A UDP source address can be forged: treat each address as claimed, never as evidence against it, and do not feed it to ioc_lookup_tool as proof. query uses the /udp search grammar: 'qtype:ANY', 'qname:version.bind', 'proto:quic', 'port:5060 country:CN', 'ja4:q13d0310h3_55b375c5d22e_cd85d2d88918' or 'quic:3f1a9c2b7d40'; leave it empty for the overview. window: 24h, 7d (default) or 30d, shortened to the plan's query window when that is shorter (window_notice then says so). samples: 0 to 25 example datagrams, default 10.

輸入參數querywindowsamples

interactive_credentials_tool

Logins tried on interactive sensors

Plaintext logins captured by the interactive sensors (sensors that answer as a real service and hold the session): username, password, the service they were tried on, the outcome and the source address, newest first, plus the pairs tried most and a per-service breakdown. Use for "what passwords are attackers trying on SSH", "which credentials did this IP try", "what logins hit MySQL this week". For whether an address is hostile overall, use ioc_lookup_tool; for the rest of what it did in its sessions, use interactive_sessions_tool. service: a service name such as ssh-password, telnet-login, mysql-login, rdp-credssp or smb-ntlmssp, or empty for all. source: an address or CIDR, or empty for all. window: 24h, 7d (default) or 30d, capped at the plan's query window. limit: 1 to 200, default 50. These records feed no verdict, and ioc_lookup_tool does not include them.

輸入參數limitsourcewindowservice

interactive_files_tool

Files handed to interactive sensors

Files clients handed to the interactive sensors: uploads, mail attachments, published messages and other artifacts, by SHA-256, with name, size, MIME type, the sessions that carried them and the VirusTotal verdict when one is known. Use for "have you seen this hash", "what files did this IP upload", "which malware samples reached the honeypots this month". For files referenced by URL in exploit payloads rather than delivered in a session, use payload_search_tool with the URL or path. sha256: one hash, or empty for every file in the window. source: an address or CIDR, or empty. window: 24h, 7d or 30d (default), capped at the plan's query window. limit: 1 to 200, default 50.

輸入參數limitsha256sourcewindow

interactive_sessions_tool

Sessions held by one source

Sessions one address or range held with the interactive sensors: when, which port and protocol, the service the sensor answered as, the session verdict (scan, credential or exploit), labels, turns, bytes, duration, CVE ids proven by the payload, path-only CVE candidates and the download URLs the client named, newest first, with verdict, service and port breakdowns. Use after ioc_lookup_tool when the question is what an address did inside a session: "what did this IP do on the honeypots", "did this range get past a login", "which exploits did it try". For the logins alone, use interactive_credentials_tool; for files it delivered, interactive_files_tool. source is required: an address or CIDR. window: 24h, 7d (default) or 30d, capped at the plan's query window. limit: 1 to 200, default 50.

輸入參數limitsource必填window

版本歷史

2
  1. v1.2.0最新Oct 30, 2026
  2. v1.1.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分