root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat virustotal.md
// tools

VirusTotal

22 Jul 2026 · 4 min read

What it is — VirusTotal is a free service (owned by Google/Chronicle) that scans files, URLs, domains and IP addresses against 70+ antivirus engines plus dozens of static/dynamic analysis tools at once, and gives you an aggregated verdict. Instead of installing 70 antivirus products, you upload a file once and see what each one says.

TypeWeb service + API
CostFree (rate-limited public API)
URLvirustotal.com

How to use it

1. Scan a file

Drag the file onto the site, or via the API:

curl --request POST \
  --url https://www.virustotal.com/api/v3/files \
  --header 'x-apikey: <YOUR_API_KEY>' \
  --form file=@suspicious.exe

Careful: uploading a file to VirusTotal shares it with the community and with the antivirus engines themselves — never upload anything containing sensitive data, credentials, or material under an NDA. That's what hash lookup is for (next point), which doesn't expose the file's contents.

2. Look up a hash only (no upload)

If the file has already been analysed by someone before (quite likely with known malware or HTB machine binaries), you can query just its SHA256/SHA1/MD5 hash without uploading anything:

sha256sum suspicious.exe
curl --request GET \
  --url https://www.virustotal.com/api/v3/files/<SHA256> \
  --header 'x-apikey: <YOUR_API_KEY>'

If there's no match, VT tells you it doesn't know it — then you decide whether it's worth uploading.

3. Scan a URL or domain

Paste the URL on the site, or via the API:

curl --request POST \
  --url https://www.virustotal.com/api/v3/urls \
  --header 'x-apikey: <YOUR_API_KEY>' \
  --data 'url=http://suspicious-domain.com'

Returns whether any engine flags it as phishing, malware, or a known C2, plus its historical reputation (how long it's been registered, whether it recently changed IP, etc.).

What I use it for

  • Bug bounty / phishing triage: before touching a suspicious URL reported in a program, I run it through VT to see if others already flagged it as malicious — avoids opening something dangerous blind.
  • Binaries in CTF machines: when I find a weird binary during a CTF (a backup, a custom executable in C:\xampp, etc.), I check its hash first — if it matches known malware, I already know the family without reverse-engineering it from scratch.
  • Verifying downloaded tools: before running a binary from an obscure GitHub repo (PoC exploits, third-party releases), a quick VT check doesn't replace reading the code, but catches the obvious stuff.
  • Domain reputation: when fingerprinting infrastructure during an engagement, checking how long a domain has been alive and its history helps tell legitimate infrastructure apart from recently-spun-up campaign infrastructure.

VirusTotal is a quick starting point, not a final verdict: false positives and false negatives happen in both directions. Use it to prioritise where to look closer, not as a substitute for manual analysis.

Link

virustotal.com →