This lab is fully self-hosted. On a dedicated Ubuntu, Debian or Fedora desktop, the setup script installs Tor, Nginx and the training material in a few minutes and generates a unique Onion address each time. It auto-detects apt or dnf. All data is synthetic.
curl -O https://www.synapse-consulting.eu/assets/labs/setup-synapse-osint-lab.sh # preview without changing anything sudo bash setup-synapse-osint-lab.sh --help # install (~3-5 min depending on the connection) sudo bash setup-synapse-osint-lab.sh
🔀 Port 8080 is invisible to the student. Tor receives connections on standard port 80 (hence no port number in the .onion URL) and forwards them internally to Nginx on 127.0.0.1:8080. Only port 8081 needs to be shared with students, and only for the clearnet site.
root / sudo accessexiftool, gpg, sha256sum, wget/etc/hosts entry provided by the trainer============================================================ SYNAPSE OSINT LAB IS READY ============================================================ Onion URL: http://<56-chars>.onion/ <- share with students Clearnet URL: http://lab-clearnet.local:8081/ Student hosts: 192.168.x.x lab-clearnet.local <- /etc/hosts line PGP fingerprint: XXXX XXXX XXXX XXXX XXXX ... Trainer files: /opt/synapse-osint-lab/
⚠️ The .onion address is reachable by anyone who knows it. Share it only through an internal session channel, never in course material or a public channel.
Three steps only. No special network configuration is required.
/etc/hosts)The clearnet site uses the name lab-clearnet.local, which does not exist in public DNS. The trainer shares the server IP at the end of setup. Without this step, the browser cannot find the clearnet site.
# replace 192.168.x.x with the IP given by the trainer echo "192.168.x.x lab-clearnet.local" | sudo tee -a /etc/hosts # check that resolution works ping -c1 lab-clearnet.local
Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" `
-Value "192.168.x.x lab-clearnet.local"
ping lab-clearnet.local⚠️ Windows: Notepad or PowerShell must be run as Administrator, otherwise the hosts change is silently ignored. Always verify with ping lab-clearnet.local.
Tor Browser is the only lab-specific prerequisite. It handles the Tor network automatically. Download it from torproject.org/download (Linux, Windows, macOS).
sudo apt-get install -y torsocks # Onion connectivity test (address given by the trainer) torsocks curl -sI http://<address>.onion/ # HTTP/1.1 200 OK means the lab is reachable
gpg and sha256sum ship by default on most Linux distributions. Usually only exiftool needs installing.
sudo apt-get install -y exiftool gnupg curl wget exiftool -ver # 12.x gpg --version # 2.x sha256sum --version
# clearnet site curl -sI http://lab-clearnet.local:8081/ # HTTP/1.1 200 OK # Onion site (Tor Browser, or torsocks in CLI) torsocks curl -sI http://<address>.onion/ # HTTP/1.1 200 OK
After each session, remove the whole environment to invalidate the Onion address. Reusing the same address across sessions creates continuity between participants and breaks the realism of the exercise.
# reinstall with a fresh Onion identity for the next session sudo bash setup-synapse-osint-lab.sh
✅ Environment ready. Give students the .onion address and the /etc/hosts line, then send them to the Scenario below to start the investigation.
An Onion site called Black Harbor publishes documents tied to Project ORION, a confidential file your organisation knows. At the same time, a clearnet forum hosts the profile of one AlexM, openly interested in privacy and archives.
The two presences look independent. Your job is to decide, with a rated level of confidence, whether they are the same individual or a coincidence. You only have the artefacts publicly available on both sites.
🛡️ Controlled environment. This lab is entirely synthetic. No real individual, organisation or data is involved. Never use these techniques on real targets without explicit authorisation. Keep all Tor traffic on the lab's isolated network.
mkdir -p ~/osint-lab03/{onion,clearnet,analysis}
cd ~/osint-lab03
# download every Onion artefact
torsocks curl -sO http://<address>.onion/downloads/orion_sample.pdf
torsocks curl -sO http://<address>.onion/downloads/black-harbor-public-key.asc
torsocks curl -sO http://<address>.onion/downloads/banner.svg
torsocks curl -sO http://<address>.onion/downloads/posts.csv
# clearnet assets
wget -P clearnet/ http://lab-clearnet.local:8081/assets/profile-background.svg
# compute and save every hash NOW, before any analysis
sha256sum onion/* clearnet/* > analysis/hashes.txt
💡 OSINT golden rule: compute and record the SHA-256 before any change or analysis. That establishes the chain of custody and proves you did not alter the artefacts.
The PDF is often the artefact richest in unintended metadata. Tools like LibreOffice or Word automatically embed the system username, the application name and sometimes the file path.
exiftool onion/orion_sample.pdf pdfinfo onion/orion_sample.pdf
Title : Project ORION - Sample Author : alex.m Subject : North Sea Digital / Internal research Creator : LibreOffice 24.2 -- AlexM workstation Producer : ReportLab PDF Library - www.reportlab.com
💡 alex.m in Author plus AlexM workstation in Creator: two independent references to the same identifier in a single file. Log them separately, both rated medium (metadata is editable, but consistent).
A public PGP key is available on the Onion site. The fingerprint is a 40-hex-character cryptographic identifier. If it reappears elsewhere, it proves both parties control the same private key.
gpg --no-default-keyring --keyring /tmp/lab-keyring.gpg \
--import onion/black-harbor-public-key.asc
gpg --no-default-keyring --keyring /tmp/lab-keyring.gpg \
--fingerprint northsea@example.invalidpub ed25519 2026-... [S] [expires: 2027-...]
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
uid North Sea Lab (Synthetic OSINT training identity)Now read the fingerprint shown on the clearnet site and compare:
curl -s http://lab-clearnet.local:8081/ | grep -o '[A-F0-9 ]\{45,\}'🔑 If both fingerprints match, that is the strongest possible correlator: the same private key generated both. Two different people cannot share a PGP fingerprint without explicit collaboration.
Both sites host an SVG graphic. Named differently (banner.svg and profile-background.svg), they look like two distinct resources. Are they really different?
sha256sum onion/banner.svg clearnet/profile-background.svg # identical hashes -> same file, same author
💡 Different file names do not imply different content. The SHA-256 hash depends only on the bytes, not the name. An identical hash means the two files are exact copies of one original, distributed on both sites unchanged.
Several identifier variants are present. Map them all before concluding on their link.
⚠️ N0rthSee is not N0rthSea. The difference is intentional. The clearnet page states it is an unrelated account. Document it as noted and discarded. Including a false lead in your findings would weaken the case.
N0rthSea -> 0 to o -> "NorthSea" (classic leet substitution) northsea-dev -> same root "northsea" + "-dev" suffix (technical alias) AlexM -> "Alex" + initial "M" (first name + surname) alex.m -> same pattern with "." separator (email / Unix format)
The posts.csv file holds the Onion persona's activity timestamps. The clearnet profile states a timezone. Check whether the activity patterns are compatible.
cat onion/posts.csv
timestamp_utc,source,username,event 2026-06-14T06:42:00Z,onion,N0rthSea,Published announcement 2026-06-14T11:18:00Z,forum,N0rthSea,Posted technical comment 2026-06-15T19:36:00Z,onion,N0rthSea,Uploaded ORION sample 2026-06-16T07:10:00Z,blog,AlexM,Updated profile
💡 Timezone alone is a weak indicator (hundreds of millions live in UTC+2). Coupled with the others, it corroborates the profile without creating it. Note the distinction in your report: corroboration is not proof.
Humans have stable language tics: a recurring phrase, a characteristic grammatical error, a vocabulary choice. Check whether an identical phrase appears on both sites.
grep -r "evidence" onion/ clearnet/ strings onion/orion_sample.pdf | grep -i "evidence" grep -i "evidence" onion/banner.svg
🔍 The phrase "Every evidence tells a story, if you listening carefully." appears on the Onion site, in the SVG, in the PDF and in a clearnet post. Note the grammatical error, "if you listening" instead of "if you're listening". This stable mistake is an idiolect marker, a medium indicator that grows stronger through repetition and cross-medium consistency.
Before concluding, classify each indicator. A serious OSINT report separates what is cryptographically proven, what is corroborated by several sources, what is suggestive, and what is invalidated.
| Indicator | Source | Confidence | Rationale |
|---|---|---|---|
| Identical PGP fingerprint on both sites | gpg --fingerprint | Strong | Control of the same private key, not forgeable without compromise |
| Identical SHA-256, banner.svg / profile-background.svg | sha256sum | Strong | Exact copy of the same file on both sites |
| PDF Author: "alex.m" | exiftool | Medium | Consistent with AlexM, but PDF metadata is editable |
| PDF Creator: "AlexM workstation" | exiftool | Medium | Second independent reference in the same file |
| Recurring phrase with a stable grammatical error | grep / analysis | Medium | Four identical occurrences, idiolect marker, but imitable |
| N0rthSea / northsea-dev / AlexM / alex.m, same root | lexical analysis | Weak | Consistent but no cryptographic proof, possible coincidence |
| Timezone UTC+2, morning activity pattern | posts.csv | Weak | Corroborating only, hundreds of millions in UTC+2 |
| N0rthSee (clearnet), similar account | clearnet HTML | False lead | Explicitly stated as unrelated, discard from the case |
📝 Conclusion template: "Based on [N indicators], including [X strong] of a cryptographic nature, we attribute with a [MODERATE / HIGH] level of confidence the personas N0rthSea (Onion) and AlexM (clearnet) to the same individual. This is not judicial proof and cannot identify a real individual from this data alone."
✅ Expected conclusion: MODERATE TO HIGH confidence that N0rthSea and AlexM are the same individual, based on two cryptographically strong indicators (identical PGP fingerprint + identical SVG hash), corroborated by medium indicators (PDF metadata, idiolect) and weak ones (timezone, pseudonyms). One indicator was discarded (N0rthSee).
exiftool -Author="other" file.pdf. They corroborate, they do not prove.exiftool -all= file.pdfCatalogue of OSINT tools and sources by target type.
Metadata extraction and editing for 150+ file formats.
Reference on PGP keys, fingerprints and signature verification.
Official guide for reaching Onion services via Tor Browser.
Techniques T1589, T1592, T1598, information gathering on targets.
OSINT investigation methodologies used by investigative journalists.
Entirely fictional environment, for educational use only. Confine all Tor traffic to the lab network.
A Belgium-based provider of cybersecurity solutions, and the team behind SynapseRM / TPRM.