One Compromised Executive, Two Companies at Risk
A ransomware leak-site listing led us to a CTO's LinkedIn profile - and from there, to a second company quietly carrying an active compromise nobody had connected to the first. Here's exactly how the correlation works, what evidence backs it, and what we do about it before and after.

A name shows up on a ransomware leak site. On its own, that's not rare - our feeds catch dozens of these every week. What made this one worth writing about is where it led once we stopped treating it as a single, isolated data point.
It starts as one line in a feed we never stop reading
Our Threat Intel KB ingests ransomware leak-site postings continuously - in this case from RansomLook, which mirrors what double-extortion groups publish on their own dark web sites. A group calling itself "play" had posted a company, four days before their own publication deadline, along with the extortion group's own screenshot of the listing: victim name, country, claimed data volume, and a countdown.
That screenshot matters more than it looks. Anyone can claim a company on a leak site is fake or outdated. A timestamped, source-captured image of the actual post is a different kind of evidence - it's not us saying "we think this happened," it's the group's own words, archived the moment we saw them.
From a name to a person - passively, without touching anything
A leak-site listing gives you a company name, not a domain, not infrastructure, not people. That's normally where the trail goes cold for a quick check. It's where we start.
We ran passive OSINT against just the name: no port scans, no active
probes, nothing that touches the target's infrastructure at all. Under the
hood this is a layered search pipeline - DuckDuckGo and Startpage as the
default path, Bing as a fallback, and Gemini's search grounding when we
need operators like site: or filetype: actually honored (most of the
free engines choke on those and throw CAPTCHAs instead). On top of plain
name searches we run a set of targeted dork templates - executive title
searches, filetype:pdf resume/CV searches, interview and podcast mentions,
and - the piece that mattered here - LinkedIn-specific patterns like
site:linkedin.com/in "name" and "name" linkedin experience, because
LinkedIn's own indexed snippet format ("Name - Title at Company -
Location | LinkedIn") is one of the richest, most structured pieces of text
you can get about a person without ever visiting their profile.
Within that first pass, our engine had already reconstructed a rough org chart: a handful of named executives, their likely titles, and - critically
- enough LinkedIn snippet text to identify one of them as the company's CTO.

Every one of these cards carries its own confidence score, not a flat "found it." Ours here landed at medium confidence - honest, because it's built from a handful of independent public snippets, not a verified document. We'd rather show you a calibrated number than pretend certainty we don't have.
The detail that turned one victim into two
Opening that CTO's individual profile is where it got interesting. Our people-level enrichment doesn't stop at name, title, and socials - when we run it in deep-profile mode, it also runs employment-history-specific search patterns against the same snippet pipeline, looking specifically for LinkedIn "Experience" language: "joined ... as," "previously at," "formerly of," current-position phrasing. Those patterns exist precisely because a job title alone tells you where someone works today, but says nothing about where else they've been - and a lot of real exposure hides in that second half.

The collected snippet for this CTO wasn't a clean structured field - it was raw indexed text, exactly as the search engine returned it, evidence and sources listed right next to it so you can verify it yourself rather than take our word for it. That's deliberate: we'd rather hand you the actual sentence a search engine returned and let you read it than run it through a model and hand you a confident-sounding paraphrase that might be wrong. A name that shows up twice, once as the current employer and once buried in older text as a prior one, is exactly the shape of signal that a company-by-company lookup never surfaces - it only appears when you're correlating people across every company you've ever profiled, not just the one you happened to type in.
We pulled the second company name out of that snippet and ran the same passive pass against it.
The second company was already compromised too
It had an active compromise indicator of its own - an entirely different class of evidence, discovered independently, weeks apart from the leak-site posting: employee credentials and session data for its domain, found in infostealer malware logs.

This comes from a different part of our monitoring entirely - we check company domains against Hudson Rock's infostealer-tracking data, which indexes credential and session logs harvested by infostealer malware (RedLine, Raccoon, Vidar, and similar families) and sold or leaked on criminal markets. It's a different attack pattern from a ransomware leak-site posting, sourced from a completely different feed, requiring an entirely separate confirmation - and it landed on a company that had never appeared next to the first one in any dashboard, report, or prior scan.
One executive. Two companies. Two unrelated compromise mechanisms, discovered independently, connected only by the fact that the same person sits on both org charts. That's not a pattern you find by looking up companies one at a time.
The analytics underneath: how we actually decide "this is a match"
None of this works if "correlation" just means two names looking similar. A few of the specific mechanics behind what you saw above:
- Exact-match first, fuzzy only when it earns its keep. For anything
we're going to act on - flag a company, mark it as covered, promote it
toward a scan - we prefer exact domain matches and exact
source_misp_uuidlookups over similarity scoring. Fuzzy name matching (the kind that compares "Corrigan Freight LLC" against "Corrigan Freight Inc.") is only used where a human is going to review the result before anything happens, because at scale it produces false positives fast if you trust it blindly. - Every match is evidence-grouped, not a single score. A person's security-context signals - a GitHub handle, a confirmed LinkedIn, a leak-site mention - are grouped by source and shown with their own per-signal confidence, so you can see which piece of evidence is doing the work, not just a blended number.
- Age-awareness on every threat-intel match. A ransomware listing or a breach headline from three years ago reads very differently than one from last week. Every match that's more than 30 days old gets an explicit "this is N days old - verify before treating as active" note, so a stale listing never gets mistaken for a live one - something we learned the hard way after a client's partner correctly pushed back on a listing that turned out to be from years earlier.
- Independent sources have to agree, not just resemble each other. Leak-site listings, breach-news mentions, and infostealer exposure all come from separate feeds with separate ingestion pipelines. A finding only reads as "confirmed" when a specific source made a specific claim - never a blend of unrelated signals dressed up as one strong one.
What we do with it after the fact - and it's more than a notification
Finding this is only useful if it turns into action, so the same record carries you straight into a response workflow:
- Notify the right people with evidence, not a guess. Once we have a verified LinkedIn profile and confirmed or high-confidence email for the executive - and for other staff at both companies we've profiled - a notification can go out built on that real contact data, not a scraped address that bounces.
- Recheck against the KB on demand. Feeds update; a listing that looked unconfirmed yesterday can be confirmed today. One click re-runs the correlation instead of waiting for the next scheduled pass.
- A technical report you can actually hand to the affected team. The same evidence trail - leak-site screenshot, infostealer record count, the OSINT path that connected the two companies - compiles into a report, not a raw list of alerts someone has to reconstruct into a narrative.
- Compliance evidence, where it matters. For companies under NIS2 or similar frameworks, an active compromise indicator maps into the relevant control catalogue automatically, so the finding isn't just a red banner - it's evidence you can point to.
What actually happens when you tell someone
Here's the part nobody puts in the pitch deck: sending the notification is not where the story ends, and the reaction on the other side is rarely gratitude.
In our experience, the first instinct when someone learns their credentials or their company showed up in a breach is not "let's fix this." It's fear, then denial, then damage control - in that order, fast. People delete conversations. They tell themselves it's probably nothing, probably old, probably not really them. Companies quietly hope the listing gets buried under newer news before a customer or a journalist notices. None of that is irrational - it's just the human response to bad news that also feels like personal or professional exposure. But "hope nobody noticed" is not a remediation plan, and the gap between the two is exactly where a second incident grows.
There's a second, more practical reason people don't take a cold notification seriously: they've been trained not to. Inboxes are full of unsolicited "your systems are vulnerable" messages from script kiddies running automated scanners, half of them flagging vulnerabilities that don't exist or were patched years ago. A message that says "you've been breached" with nothing behind it should look suspicious - the honest, professional version of that message and the spam version are indistinguishable from the subject line alone. Which is exactly why every notification we send carries the receipt with it: the leak site's own screenshot, the specific record count from a specific feed, a source link that resolves to something real - not "trust us," something the recipient can go verify themselves in two minutes. Evidence isn't just rigor for its own sake here; it's the only thing that gets a real notification read differently from the noise it's competing against.
And then there's the part that isn't optional, even if the instinct is to stay quiet. Depending on where a company operates and what it handles, "minimize and move on" isn't actually a choice available to them once an incident is confirmed:
- GDPR requires notifying the relevant supervisory authority within 72 hours of becoming aware of a personal-data breach, and notifying affected individuals directly when the breach is likely to result in high risk to their rights - "we decided not to mention it" is itself a reportable failure, independent of the original incident.
- NIS2 (now in force across the EU for essential and important entities) is stricter still: an early warning within 24 hours, a full incident notification within 72 hours, and a final report within one month - all to the national CSIRT or competent authority, and all on a clock that starts the moment someone becomes aware, not the moment they're ready to talk about it.
- US state breach-notification laws (all 50 states have one, with different thresholds and timelines) can require notifying affected residents directly, sometimes state attorneys general too, and the clock and the exact triggers vary enough by jurisdiction that "we'll get to it" is a genuine legal risk, not just a PR one.
- Public companies in the US face the SEC's cybersecurity disclosure rule: a material incident goes into an 8-K filing within four business days of the materiality determination - a decision an executive who's currently hoping the problem quietly disappears is not well positioned to make objectively.
- Beyond the regulators, there's the far more immediate obligation an executive who just learned their own credentials leaked has to their own board or leadership - and that conversation gets meaningfully harder the longer it's delayed, because "I found out in September and mentioned it in December" is its own separate problem.
None of this is a lecture - it's genuinely useful context for exactly the scenario this post is about. A notification landing on a CTO who's mentally already three steps into "let's just not talk about this" is a very different conversation when it also comes with a timer that's already running whether they engage with it or not. Evidence-first notification isn't only about being believed - it's about giving someone standing at that decision point something concrete enough to take to legal and compliance today, instead of something vague enough to file away and hope about.
What we do to help before it happens again
Post-factum is the floor, not the ceiling. The same platform that surfaced this also answers the harder question: given what we now know about this executive and these two companies, what else is exposed, and how bad could it get?
Vulnerability management and web pentest on both companies' external surface turns "we know they were compromised" into "here's specifically what's exploitable right now" - the CVEs, the misconfigurations, the exposed services, ranked by real severity, not just a headline.
Ransomware / Threat Attack Simulation takes that vulnerability data and answers the next question: if an attacker used this specific ransomware family's known techniques starting from this host, how far would it actually spread? Pick a scope, pick a variant - Conti, Cl0p, Qilin, LockBit, and dozens more, each mapped to its own known CVEs - and choose a patient zero:

No exploitation happens - nothing is attacked. It's a propagation model computed directly from CVEs our own scanning already found on that network, which is exactly why it stays honest: it can only show you a blast radius you were actually vulnerable to, host by host, with an estimated infection path and an impact summary - affected hosts, scope coverage, critical assets at risk - so "medium risk" or "high risk" means something concrete instead of a label.
Phishing simulation tests the human side of the same story directly. If a targeted executive is how the first compromise likely started, the honest next question is whether the same social-engineering path would work on your own people today - and a simulated campaign answers that without waiting for a real one to find out.
Continuous monitoring, not a one-time check. Every company we've profiled stays under the same standing watch - leak sites, breach outlets, infostealer feeds, botnet and C2 infrastructure, malicious certificates - refreshed on a schedule, so the next targeted executive doesn't get months of head start before anyone notices the second company on their org chart.
Why this actually matters to you
A single name on a leak site is rarely the whole story, and the real exposure often runs through a person, not just a domain. Finding that requires a platform that was already watching, already correlating people across every company it has ever profiled, and already had the evidence ready before you knew to ask the question - and then a way to act on it, both to notify the people affected right now and to find out, concretely, what else that exposure could reach before it does. That's what continuous OSINT, dark web monitoring, and attack simulation working together are built to give you.
https://pentesterra.com/blog/one-executive-many-companies-at-risk