Lesson 3.2
Pivoting & Link Analysis
Learning Objectives
- Define a selector and list the common selector types used in OSINT
- Explain what each selector type can typically pivot to
- Build and document a pivot chain, including confidence at each step
- Use link analysis (graphs) to spot relationships that lists hide
- Decide when to stop pivoting, for scope, ethical, and practical reasons
What Pivoting Is
Pivoting means using one piece of information to discover the next. You start with something you know (a company domain, a username, a photo) and ask: what else is connected to this? Each answer gives you a new starting point.
The thing you search on is called a selector: a piece of data that identifies or links to a person, organization, account, or piece of infrastructure. Investigations are really chains of selectors.
companyx.com ──► contact page ──► jane.doe@companyx.com ──► "janedoe_it" (username)
│
▼
conference talk slides ──► internal tool names
Pivoting is why OSINT is so powerful: small, harmless-looking details combine into a detailed picture. It’s also why OSINT can become harmful (the mosaic effect from Module 2). Every pivot should pass a scope check.
Common Selectors and Where They Lead
The table below is a map of what each selector can typically connect to. How to perform each lookup is covered in Module 4 Collection Techniques, and the specific sources are in Module 5 OSINT Sources.
| Selector | Common pivots | Notes |
|---|---|---|
| Organization name | Domains, employees, business filings, job postings, press coverage, subsidiaries | Watch for similar names: confirm you have the right entity |
| Domain | Subdomains, IP addresses, email format, registrar and dates, name servers, technologies used, related domains, archived pages | Related domains can be found through shared registrant info (when not redacted), shared name servers, or shared tracking/analytics IDs |
| IP address | Hosting provider, network owner (ASN), other domains on the same IP, open services seen by scan search engines, historical DNS | Shared hosting means many unrelated sites can sit on one IP, so be careful with conclusions |
| Email address | Username (the part before @), breach exposure, accounts registered with it, profile pictures (e.g., Gravatar), commit history, email format for the whole org |
Personal vs. work email matters for scope |
| Username / handle | Same handle on other platforms, old posts, profile photos, linked websites, writing style | Many people share common handles, so a match isn’t proof |
| Real name | Professional profiles, publications, public records, news, conference talks | The weakest selector alone: names are not unique |
| Phone number | Carrier/line type, owner name in some directories, messaging app profiles, business listings | Heavily privacy-sensitive; usually out of scope for org recon |
| Image / photo | Other places it’s posted (reverse image search), EXIF metadata, location clues, people and objects in frame | Most social platforms strip metadata on upload |
| Document | Author names, internal usernames, software versions, file paths, printer names | Metadata can reveal the internal username format |
| Crypto wallet address | Transaction history on public blockchain explorers, other addresses it interacts with, exchanges it touches | The blockchain is public, but tying a wallet to a person is hard and error-prone |
| TLS certificate / fingerprint | Other hosts using the same certificate, subdomains in Certificate Transparency logs | Useful for finding infrastructure that shares a cert |
| Favicon, page title, or HTML snippet | Other servers running the same app or kit (via scan search engines) | Common for tracking phishing kits and exposed admin panels |
| PGP key / contact ID | Other forums or sites using the same key or ID | Reused IDs are a strong link between personas (see Module 6) |
| Physical address | Other businesses at that address, property records, imagery | Home addresses are sensitive and usually out of scope |
Strong vs. weak selectors
Some selectors are unique (an email address, a PGP key fingerprint, a crypto wallet). Others are shared (a common name, a popular username, a shared-hosting IP). A pivot through a weak selector needs extra corroboration before you trust it.
A useful rule of thumb: one strong link, or several independent weak links, before you connect two things. “Same username” alone is weak. “Same username, same profile photo, same city, and both link to the same personal website” is strong.
Pivot Chains in Practice
Example 1: Organization recon (fictional)
[Company X]
│ business filing / website
▼
[companyx.com] ──────────────► [MX record] ──► cloud email provider (R3 answered)
│ └────► [CT logs] ──► vpn.companyx.com, sso.companyx.com
│ contact page
▼
[press@companyx.com] ──► format guess: first.last@
│ PDF metadata (Author: "Jane Doe", user: "jdoe")
▼
[Jane Doe, IT Manager] ──► professional profile ──► skills list: firewall vendor, SIEM product
│
▼
job posting confirms same firewall vendor
Notice how one path answered two requirements (email format and technology stack), and each claim is confirmed by more than one source.
Example 2: Branching and dead ends
Real pivot chains branch, and most branches die. That’s normal.
[username: "cx_admin"]
├── Platform A: account exists, created last year, links to companyx.com ✔ (keep)
├── Platform B: account exists, posts about gardening in another country ✘ (different person, drop)
└── Platform C: no account — (record "not found")
Record the dead ends too. A note that says “Platform B is a different person, because of X and Y” saves a teammate from making the wrong connection later.
Tracking Your Pivots
If you don’t track pivots, you can’t explain how you reached a conclusion, and you can’t tell where a mistake crept in. Use a pivot log: a simple table, filled in as you go.
| # | From (selector) | Method / source | To (new selector) | Confidence | In scope? | Time (UTC) | Evidence |
|---|---|---|---|---|---|---|---|
| 1 | companyx.com | Contact page | press@companyx.com | Confirmed | Yes | 14:02 | shot-001.png |
| 2 | companyx.com | PDF metadata | Author “Jane Doe” / user “jdoe” | Confirmed | Yes | 14:15 | meta-001.txt |
| 3 | Jane Doe | Professional profile | Role: IT Manager | Likely (name + employer + photo) | Yes | 14:22 | shot-002.png |
| 4 | Jane Doe | Photo sharing site | Personal account | Possible | No — personal, parked | 14:30 | — |
A few habits make the log more useful:
- Number every pivot so reports can reference them (“see pivot 7”).
- Record the method, not just the source (the exact search query, the tool and version).
- Carry confidence forward. A conclusion can’t be more certain than the weakest link in its chain.
- Log the scope decision for anything borderline.
A blank template is in 3.4-planning-an-investigation.md.
Link Analysis
Once you have more than a dozen selectors, lists stop working. Link analysis represents your findings as a graph:
- Nodes (entities): people, organizations, domains, IPs, emails, accounts, documents
- Edges (links): relationships such as “registered”, “resolves to”, “works at”, “posted”, “same photo as”
Graphs reveal things lists hide:
- Hubs: one entity connected to many others (e.g., one IP hosting many suspicious domains)
- Clusters: groups that connect to each other more than to anything else
- Bridges: a single link that connects two otherwise separate clusters, often the most interesting finding
- Gaps: entities you expected to be connected that aren’t
Labeling edges
Put the evidence and confidence on the edge, not just the line. “Jane Doe —works at→ Company X (confirmed, pivot 3)” is far more useful than an unlabeled line. Graphs make weak connections look as solid as strong ones, which is a common way analysts fool themselves.
Link analysis tools
| Tool | Cost | What it’s good for |
|---|---|---|
| Maltego Graph Community Edition | Free with a Maltego ID | The best-known OSINT link analysis tool. “Transforms” automatically pivot from one entity to related entities. CE limits: up to 10,000 entities per graph, 24 results per transform, and a small monthly data credit allowance. Registration isn’t available in some countries due to export rules. |
| Maltego paid plans | Paid | Higher limits and more built-in data sources |
| SpiderFoot (open source) | Free (MIT license) | Automates collection across many sources and shows relationships. The founder’s company was acquired by Intel 471 in 2022; the open-source version remains on GitHub, and a commercial version (SpiderFoot HX) is part of Intel 471’s offering. |
| Gephi | Free, open source | Visualizing and analyzing large graphs (e.g., social networks) imported from CSV. Better for analysis than for collection. |
| Diagramming tools (e.g., diagrams.net / draw.io) | Free | Hand-built link charts for small investigations and reports |
| Note-taking tools with graph or canvas views (e.g., Obsidian) | Free to download (check current license terms) (verify before class) | Linking notes about entities; good for students |
| i2 Analyst’s Notebook | Commercial | Widely used in law enforcement for link charts and timelines |
| Spreadsheets | Free | A two-column “from / to” sheet is a graph; many tools import it |
Tool details and hands-on setup belong to Module 4 Collection Techniques. For this module, the important point is the method: every node and edge should trace back to your pivot log.
Automated pivoting: a warning
Automated tools can pivot hundreds of times in seconds. That’s useful, but:
- They don’t understand scope. They will happily pivot into personal accounts and unrelated organizations.
- They pivot through weak selectors (shared IPs, common names) and present the results as if they were solid.
- Their data sources can be outdated.
Treat automated results as leads to verify, not findings.
Knowing When to Stop
Stopping is a skill. Stop pivoting when any of these are true:
- The requirement is answered to the confidence level you need.
- The time box is used up. Reassess before spending more.
- You’ve left scope. Common signs: you’re looking at family members, home addresses, personal accounts unrelated to the organization, or a different organization entirely.
- The chain is too weak. Three “possible” links in a row don’t add up to a “likely.”
- Diminishing returns. The last several pivots produced nothing new.
- Ethical or legal lines. The next step would require logging in, using leaked data, contacting someone, or anything not authorized (see Module 2).
- OPSEC risk. The next step would expose you to the target (see Module 8).
A simple habit: before each pivot, say out loud (or write) “This pivot helps answer requirement R_ because ___.” If you can’t finish the sentence, stop or park it.
Key Terms
- Selector: a piece of identifying data (email, username, domain, IP, etc.) used as a search starting point
- Pivot: using one selector to discover another related one
- Pivot chain: a sequence of pivots from a starting point to a finding
- Pivot log: a record of each pivot, its method, confidence, and scope decision
- Strong / weak selector: unique identifiers vs. identifiers that many people or systems share
- Link analysis: representing entities and their relationships as a graph to find patterns
- Node / edge: an entity in a graph / a relationship between two entities
- Transform: in Maltego, an automated lookup that turns one entity into related entities
- Mosaic effect: harmless details that become sensitive when combined
Key Takeaways
- Pivoting = using what you know to find what’s connected
- Selectors vary in strength: emails and keys are strong, names and shared IPs are weak
- Require one strong link, or several independent weak links, before connecting two things
- A conclusion is only as confident as the weakest link in its chain
- Keep a pivot log: numbered, with method, confidence, scope decision, and evidence
- Link analysis graphs reveal hubs, clusters, and bridges that lists hide
- Automated tools pivot fast but ignore scope; treat their output as leads
- Know when to stop: answered, out of time, out of scope, or too weak
References
- What is Maltego Graph Community Edition (CE)? — Maltego Docs
- Maltego FAQ
- Use Maltego for free with Maltego ID
- Intel 471 Acquires SpiderFoot — Intel 471
- SpiderFoot open-source repository — GitHub
- Gephi — The Open Graph Viz Platform
- Gephi — Bellingcat’s Online Investigation Toolkit
- How to Use Maltego and Gephi for Investigative Journalism — EBU Spotlight
Free to use, copy, change and teach. Security For the Folks dedicates this course to the public domain under CC0 1.0 Universal: no permission or credit needed. Quoted material and the sources it links to belong to their own authors.