MalwareBazaar
liveSecurityabuse.ch malware sample metadata — search by hash, tag, family, or signature.
Tools
get_sample_inforequired: hashMetadata for a malware sample by hash (md5/sha1/sha256). Returns file type, signature, file_name, first/last seen, tags, family, intel sources.
hashreqstringmd5/sha1/sha256Try it
search_tagrequired: tagLook up malware samples in MalwareBazaar (the abuse.ch sample corpus) carrying a given tag, such as "emotet", "macro", "exe", or "ransomware". Returns the matching samples with sha256/md5 hashes, file
tagreqstringTaglimitoptnumberMax resultsTry it
search_familyrequired: familyLook up malware samples in MalwareBazaar (the abuse.ch sample corpus) attributed to one malware family or signature name, for example "Cobalt Strike" or "AgentTesla". Returns the matching samples with
familyreqstringFamily namelimitoptnumberMax resultsTry it
search_signaturerequired: signatureFind samples matching a YARA / threat-intel signature.
signaturereqstringSignature namelimitoptnumberMax resultsTry it
recent_samplesMost recent samples in MalwareBazaar. Use the selector to pick a chunk size.
selectoroptstringtime | 100Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/malwarebazaar/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/malwarebazaar/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_sample_info","arguments":{"hash": "example"}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("get_sample_info", {"hash":"example"});// Or ask in plain English:
const answer = await px.ask("abuse");