VirusTotal
π§ Tool Note β Category: Threat Intelligence / IoC Reputation | Freemium (web + API)
π Quick Overview
What is it? A free online service that analyses files, URLs, IPs, domains, and hashes against 70+ antivirus engines and sandboxes at once, then aggregates the verdicts. Itβs the fastest way for an analyst to check whether an Indicator of Compromise (IoC) is known-bad.
Official Website: https://www.virustotal.com/ License: Free (public); paid VT Enterprise for private/bulk/retro hunting. Owned by Google (Chronicle). Used in: CSF & NS (Practical 6 β reputation lookup during triage) Related concept: SOC Operations & Incident Lifecycle (IoCs, threat feeds)
π― What Problem Does It Solve?
- One-stop verdict: βis this file/IP/domain malicious?β without installing 70 AV products
- Contextualise a SOC alert β turn a raw hash or IP into a reputation + threat name
- Pivot: from one IoC to related files, domains, and infrastructure (the Relations graph)
- Access community + sandbox behaviour without running the malware yourself
βοΈ How It Works
You submit β hash | file | URL | IP | domain
β
ββββββββββββ΄ββββββββββββ
HASH known? new FILE
look up cached detonated + scanned by
report (instant) 70+ engines & sandboxes
β β
ββββββββΊ aggregated report ββββββββ
detection ratio + behaviour + relations + community
- Hash lookup (no upload): every file has a unique fingerprint (hash β MD5/SHA-256). If anyone ever submitted that file, VT already has a report. You can paste just the hash and get the verdict without uploading the file β critical when the file is sensitive/confidential.
- File/URL submission: if unknown, VT runs it through all engines and sandbox detonation (executes it in an isolated VM to record behaviour β files created, connections made, registry changes).
- Aggregation: results become a detection ratio (e.g.
48 / 72engines flag it), plus engine-specific malware names, sandbox behaviour, and Relations (contacted IPs/domains, dropped files) you can pivot through.
Why detections vary: each engine uses different signatures/heuristics, so ratios differ and a low ratio β safe (could be brand-new malware) while a couple of hits might be false positives. Read the names and behaviour, donβt just count.
π¬ Typical Workflow (Practical 6 triage)
- From netstat & ss you found the host beaconing to
203.0.113.10. - Search that IP in VirusTotal β check the detection ratio + which vendors flag it + what domains resolve to it.
- Grab the hash of the suspicious process/file β look it up β get the malware family name.
- Record the verdict in your incident note as supporting evidence; feed the confirmed IoCs to your SOC blocklist.
π₯οΈ API (automation)
# Look up a file hash (public API)
curl -s --request GET \
--url https://www.virustotal.com/api/v3/files/<SHA256> \
--header "x-apikey: <API_KEY>"
# Also: /ip_addresses/<ip>, /domains/<domain>, /urls/<id>β οΈ Gotchas / Limitations β read this
- Privacy: public uploads are shared. Anyone with VT access (incl. adversaries and other researchers) can download files you upload. Never upload confidential/internal documents β look up the hash instead. Attackers also watch VT to see if their malware was caught.
- Detection ratio is a signal, not a verdict β 0/72 can still be a fresh 0-day; 2/72 can be a false positive. Interpret, donβt count.
- Public API is rate-limited (4 requests/min, 500/day) β fine for manual triage, not bulk.
- A malicious verdict on an IP/domain may be stale or shared-hosting collateral β corroborate.
π Related Notes
- SOC Operations & Incident Lifecycle β IoCs, threat feeds, alert triage
- Hash & Encryption Reference β how file hashes work (the lookup key) β‘
- netstat & ss β source of IPs/processes to look up
- Shodan β complementary OSINT/reputation source