1. Home
  2. Developer tools
  3. IOC Extractor

IOC Extractor

Paste an incident report, log or threat feed and get a de-duplicated list of the indicators in it, ready for a blocklist or a ticket.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use IOC Extractor

  1. Paste your text.
  2. Choose whether to keep private addresses and whether to defang.
  3. Copy a list or download everything as CSV.

Features

  • IPv4, IPv6, domains, URLs and e-mails
  • MD5, SHA-1, SHA-256 and SHA-512 hashes by exact length
  • CVE identifiers and ATT&CK technique IDs
  • Reads defanged input like hxxps and [.]
  • De-duplicated, with counts
  • CSV export and optional defanged output

Supported formats

Input

  • Logs, reports and threat feeds as text
  • Defanged indicators

You get

  • De-duplicated indicator lists
  • CSV

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the IOC Extractor is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Matching is pattern based: a few false positives and misses are normal, so review the list.
  • Obfuscated or encoded indicators must be decoded first, and nothing is looked up or checked against threat feeds.

Guide

Extracting indicators of compromise from reports and logs

Incident reports, phishing e-mails and malware write-ups bury their most useful facts in paragraphs: the address a sample called home to, the hash of the dropper, the CVE it exploited. Copying them out by hand is slow and error-prone. This extractor reads any block of text and lists the indicators of compromise it contains, grouped by type and de-duplicated, ready for a blocklist, a search in your logging system or a ticket.

What it looks for

IPv4 addresses must have four parts from 0 to 255. IPv6 addresses are matched in full and compressed forms. Domains must end in a real top-level domain, so update-check.example.net counts while setup.exe and notes.md do not. URLs are recognised by their scheme, e-mail addresses by their shape. File hashes are told apart by length: 32 hexadecimal digits for MD5, 40 for SHA-1, 64 for SHA-256 and 128 for SHA-512. CVE identifiers follow the CVE-year-number pattern, and ATT&CK techniques look like T1059 or T1566.001.

A worked example

The sample is a short incident note. The page counts 15 indicators across 9 kinds: three IPv4 addresses (198.51.100.23, 203.0.113.50 and the private 10.20.30.40), one IPv6 address (2001:db8:85a3::8a2e:370:7334), two domains, two URLs, one e-mail address ([email protected]), the MD5 d41d8cd98f00b204e9800998ecf8427e, a SHA-256 beginning e3b0c442, two CVEs (CVE-2021-44228 and CVE-2023-4863) and two ATT&CK techniques (T1566.001 and T1059). Each group has its own Copy button and a count, and “Copy all as CSV” or “Download CSV” gives every row with its type.

Options

“Include private and loopback IPv4 addresses” is on by default, which is why the 10.x address appears; switch it off to leave out RFC 1918 ranges and 127.0.0.1, which are almost never useful in a blocklist. “Defang the output” rewrites the result as hxxp and [.], so you can paste it into a chat or a report without creating live links.

Edge cases

Pattern matching is fast but literal. A software version like 10.2.3.4 will pass as an address, and any 32-digit hexadecimal string, such as an identifier in a log, will pass as an MD5 hash. Text that has been split across lines by a mail client can hide an indicator. Treat the output as a first pass and read it before acting.

Limits

The page does not look anything up: it does not know whether an address belongs to a cloud provider, a CDN or an attacker. It will not find indicators that are Base64-encoded, reversed or split with extra characters. Everything is processed locally in the browser.

Working with the output

A good routine is to extract first, then sort the list into three piles: indicators that belong to the attacker, indicators that belong to you or to harmless services, and indicators you cannot yet place. Only the first pile goes into a blocklist. Save the CSV with the incident record so that later analysts can see what was found when, and re-run the extractor on new reports to compare them. Hashes are the most reliable indicators because they identify a file exactly, while addresses and domains change quickly and may be shared by innocent sites.

Checked against the current version of the IOC Extractor on .

Troubleshooting

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

Why did a version number show up as an IP address?

A string such as 10.2.3.4 is a valid IPv4 address and also a plausible version number, and a text pattern cannot tell which was meant. Review the list, and tick the private-address option off to hide internal ranges.

Can I feed the output straight into a firewall blocklist?

Treat it as a first draft. Remove your own infrastructure, shared services such as large CDNs and anything you cannot tie to the incident, because blocking a shared address can break legitimate traffic.

Why are some file names missing from the domain list?

A name is treated as a domain only if it ends in a real top-level domain. That keeps names such as setup.exe or report.pdf out of the list.

Will it find indicators that are obfuscated?

It restores the common defanging styles before matching. Heavier obfuscation, such as Base64 or split strings, needs decoding first.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.