#!/usr/bin/env bash
set -Eeuo pipefail

# ============================================================
#  SYNAPSE LABS  |  EDUCATIONAL MATERIAL
#  Synthetic training environment. For education purposes only.
#  Every identity, site and file produced here is fictional.
#  Confine all Tor traffic to the isolated lab network.
#  Synapse Consulting - https://www.synapse-consulting.eu/labs
# ============================================================

# Synapse OSINT Lab - controlled Tor Onion Service training environment.
# Target: a DESKTOP install of Ubuntu, Debian or Fedora (GNOME/KDE/XFCE/...).
# This lab contains synthetic data only. Do not add real personal/client data.

ONION_WEB_PORT="8080"
CLEARNET_PORT="8081"
CLEARNET_NAME="lab-clearnet.local"
LAB_ROOT="/opt/synapse-osint-lab"
ONION_WEB_ROOT="/var/www/black-harbor"
CLEARNET_WEB_ROOT="/var/www/osint-clearnet"
ONION_DIR="/var/lib/tor/synapse_osint_lab"
TORRC="/etc/tor/torrc"
NGINX_SITE="/etc/nginx/sites-available/synapse-osint-lab"
BACKUP_DIR="${LAB_ROOT}/backups"

usage() {
  cat <<'USAGE'
Usage: sudo bash setup-synapse-osint-lab.sh [options]

Options:
  --clearnet-port PORT   Clearnet training site port (default: 8081)
  --onion-web-port PORT  Local Nginx port behind Tor (default: 8080)
  --clearnet-name NAME   Training hostname (default: lab-clearnet.local)
  -h, --help             Show this help

The script installs Tor, Nginx and training dependencies, then creates:
  - a synthetic Black Harbor Onion Service;
  - a synthetic clearnet profile site;
  - a PDF with deliberate metadata;
  - a reusable PGP public key, SVG banner and timeline CSV;
  - a trainer answer key and student mission sheet.
USAGE
}

while [[ $# -gt 0 ]]; do
  case "$1" in
    --clearnet-port) CLEARNET_PORT="${2:?Missing port}"; shift 2 ;;
    --onion-web-port) ONION_WEB_PORT="${2:?Missing port}"; shift 2 ;;
    --clearnet-name) CLEARNET_NAME="${2:?Missing hostname}"; shift 2 ;;
    -h|--help) usage; exit 0 ;;
    *) printf 'Unknown option: %s\n' "$1" >&2; usage; exit 2 ;;
  esac
done

if [[ ${EUID} -ne 0 ]]; then
  printf 'Run this script as root: sudo bash %s\n' "$0" >&2
  exit 1
fi

for port in "$ONION_WEB_PORT" "$CLEARNET_PORT"; do
  if ! [[ "$port" =~ ^[0-9]+$ ]] || (( port < 1024 || port > 65535 )); then
    printf 'Invalid unprivileged TCP port: %s\n' "$port" >&2
    exit 2
  fi
done

if [[ "$ONION_WEB_PORT" == "$CLEARNET_PORT" ]]; then
  printf 'The Onion backend and clearnet ports must be different.\n' >&2
  exit 2
fi

export DEBIAN_FRONTEND=noninteractive
printf '\n[1/8] Installing required packages...\n'
if command -v apt-get >/dev/null 2>&1; then
  apt-get update
  apt-get install -y tor nginx python3 python3-reportlab gnupg curl torsocks \
    libimage-exiftool-perl poppler-utils ca-certificates
elif command -v dnf >/dev/null 2>&1; then
  dnf install -y tor nginx python3 python3-reportlab gnupg2 curl torsocks \
    perl-Image-ExifTool poppler-utils ca-certificates policycoreutils-python-utils
else
  printf 'No supported package manager found (need apt-get or dnf).\n' >&2
  exit 1
fi

# Cross-distro: web-server group and nginx site location (Debian vs Fedora)
if getent group www-data >/dev/null 2>&1; then WEB_GROUP=www-data; else WEB_GROUP=nginx; fi
if [ -d /etc/nginx/sites-enabled ]; then
  NGINX_SITE=/etc/nginx/sites-available/synapse-osint-lab; NGINX_SYMLINK=1
else
  NGINX_SITE=/etc/nginx/conf.d/synapse-osint-lab.conf; NGINX_SYMLINK=0
fi

install -d -m 0750 "$LAB_ROOT" "$BACKUP_DIR"
install -d -m 0755 "$ONION_WEB_ROOT/downloads" "$CLEARNET_WEB_ROOT/assets"
install -d -m 0700 "$LAB_ROOT/gnupg"

STAMP="$(date -u +%Y%m%dT%H%M%SZ)"
[[ -f "$TORRC" ]] && cp -a "$TORRC" "$BACKUP_DIR/torrc.${STAMP}.bak"
[[ -f "$NGINX_SITE" ]] && cp -a "$NGINX_SITE" "$BACKUP_DIR/nginx-site.${STAMP}.bak"

printf '[2/8] Creating synthetic evidence...\n'

cat > "$ONION_WEB_ROOT/downloads/banner.svg" <<'SVG'
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="420" viewBox="0 0 1200 420">
  <rect width="1200" height="420" fill="#071924"/>
  <circle cx="1030" cy="80" r="240" fill="none" stroke="#31c7d6" stroke-width="3" opacity=".4"/>
  <text x="75" y="175" font-family="monospace" font-size="30" fill="#31c7d6">BLACK HARBOR</text>
  <text x="75" y="250" font-family="sans-serif" font-size="60" font-weight="700" fill="#ffffff">PROJECT ORION</text>
  <text x="78" y="310" font-family="monospace" font-size="18" fill="#9ab8c2">Every evidence tells a story, if you listening carefully.</text>
</svg>
SVG

cp "$ONION_WEB_ROOT/downloads/banner.svg" "$CLEARNET_WEB_ROOT/assets/profile-background.svg"

cat > "$LAB_ROOT/create_pdf.py" <<'PY'
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor

path = "/var/www/black-harbor/downloads/orion_sample.pdf"
c = canvas.Canvas(path, pagesize=A4)
c.setTitle("Project ORION — Sample")
c.setAuthor("alex.m")
c.setSubject("North Sea Digital / Internal research")
c.setCreator("LibreOffice 24.2 — AlexM workstation")
c.setFillColor(HexColor("#0b2233"))
c.rect(0, 735, 595, 107, fill=1, stroke=0)
c.setFillColor(HexColor("#31c7d6"))
c.setFont("Helvetica-Bold", 22)
c.drawString(50, 785, "PROJECT ORION")
c.setFillColor(HexColor("#ffffff"))
c.setFont("Helvetica", 11)
c.drawString(50, 758, "SYNTHETIC OSINT TRAINING SAMPLE — NOT REAL DATA")
c.setFillColor(HexColor("#091b28"))
c.setFont("Helvetica-Bold", 14)
c.drawString(50, 690, "Extract from an internal assessment")
c.setFont("Helvetica", 11)
lines = [
    "Reference: ORION-NSD-260616", "Prepared by: A.M.",
    "Workstation alias: NORTHSEA-DEV", "Classification: Training / Fictional",
    "Every evidence tells a story, if you listening carefully."
]
y = 650
for line in lines:
    c.drawString(60, y, line)
    y -= 28
c.setFillColor(HexColor("#fff4cc"))
c.rect(50, 430, 495, 70, fill=1, stroke=0)
c.setFillColor(HexColor("#4d3c00"))
c.drawString(65, 468, "Instructor note: deliberate metadata is embedded in this PDF.")
c.drawString(65, 446, "All names, organizations and events in this file are fictional.")
c.save()
PY
python3 "$LAB_ROOT/create_pdf.py"

cat > "$ONION_WEB_ROOT/downloads/posts.csv" <<'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
CSV

printf '[3/8] Generating the fictional PGP identity...\n'
export GNUPGHOME="$LAB_ROOT/gnupg"
chmod 0700 "$GNUPGHOME"
if ! gpg --batch --list-keys 'northsea@example.invalid' >/dev/null 2>&1; then
  cat > "$LAB_ROOT/pgp-batch.conf" <<'GPG'
%no-protection
Key-Type: eddsa
Key-Curve: Ed25519
Key-Usage: sign
Name-Real: North Sea Lab
Name-Comment: Synthetic OSINT training identity
Name-Email: northsea@example.invalid
Expire-Date: 1y
%commit
GPG
  gpg --batch --generate-key "$LAB_ROOT/pgp-batch.conf"
fi
gpg --batch --armor --export 'northsea@example.invalid' \
  > "$ONION_WEB_ROOT/downloads/black-harbor-public-key.asc"
FINGERPRINT="$(gpg --batch --with-colons --fingerprint 'northsea@example.invalid' | awk -F: '$1=="fpr" {print $10; exit}')"

printf '[4/8] Creating the Onion and clearnet websites...\n'
cat > "$ONION_WEB_ROOT/index.html" <<EOF
<!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Black Harbor — Project ORION</title>
<style>body{margin:0;background:#071924;color:#d7e6eb;font:16px/1.65 Arial,sans-serif}.wrap{max-width:920px;margin:auto;padding:50px 24px}img{max-width:100%;border:1px solid #234756}h1{font-size:54px;color:#31c7d6;margin-bottom:5px}.tag{color:#c9f26b;font-family:monospace}article{background:#0b2233;padding:25px;margin:25px 0;border-left:3px solid #31c7d6}a{color:#c9f26b}code{overflow-wrap:anywhere}.foot{color:#7896a1;font-size:12px;margin-top:50px}</style></head>
<body><main class="wrap"><div class="tag">BLACK HARBOR // ARCHIVE 06-2026</div><h1>Project ORION</h1>
<img src="/downloads/banner.svg" alt="Black Harbor Project ORION banner">
<article><p>We obtained internal documents related to Project ORION. A sample will be published Friday at 21:00 UTC.</p><p>Every evidence tells a story, if you listening carefully.</p><p>Posted by: <b>N0rthSea</b></p></article>
<h2>Released material</h2><ul>
<li><a href="/downloads/orion_sample.pdf">ORION sample PDF</a></li>
<li><a href="/downloads/black-harbor-public-key.asc">PGP public key</a></li>
<li><a href="/downloads/banner.svg">Original banner</a></li>
<li><a href="/downloads/posts.csv">Publication log</a></li></ul>
<p>PGP fingerprint: <code>${FINGERPRINT}</code></p>
<p class="foot">Synthetic training environment. No real or unlawfully obtained data is hosted here.</p></main></body></html>
EOF

cat > "$CLEARNET_WEB_ROOT/index.html" <<EOF
<!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>AlexM — North Sea Technical Forum</title>
<style>body{margin:0;background:#eef3f4;color:#102431;font:16px/1.6 Arial,sans-serif}.wrap{max-width:920px;margin:auto;padding:45px 24px}.profile{background:white;padding:28px;border-top:5px solid #087ea4}img{max-width:100%}.meta{color:#637780}.post{background:white;padding:22px;margin-top:18px;border-left:3px solid #31c7d6}code{overflow-wrap:anywhere}</style></head>
<body><main class="wrap"><div class="profile"><img src="/assets/profile-background.svg" alt="Profile background"><h1>AlexM</h1><p class="meta">Member since 2024 · North Sea Digital · UTC+2</p><p>Security researcher, privacy enthusiast and archive maintainer.</p><p>PGP fingerprint: <code>${FINGERPRINT}</code></p></div>
<div class="post"><b>AlexM · 14 June 2026, 13:18 CEST</b><p>I always verify hashes before publishing. Every evidence tells a story, if you listening carefully.</p><p>Repository alias: <code>northsea-dev</code></p></div>
<div class="post"><b>N0rthSee · unrelated account</b><p>This deliberately similar username is a false lead for the exercise.</p></div>
<p class="meta">Synthetic training environment — all identities and organizations are fictional.</p></main></body></html>
EOF

cat > "$LAB_ROOT/student-mission.txt" <<EOF
SYNAPSE OSINT LAB 02 — STUDENT MISSION

Onion address: generated during installation; ask the instructor.
Clearnet URL: http://${CLEARNET_NAME}:${CLEARNET_PORT}/

Objectives:
1. Preserve every collected page and calculate SHA-256 hashes.
2. Identify the PDF metadata and the PGP fingerprint.
3. Compare the Onion and clearnet visual assets.
4. Correlate usernames, language, timestamps and cryptographic identifiers.
5. Separate facts, weak indicators, corroboration and hypotheses.
6. Produce a confidence-rated attribution conclusion.

No real target may be investigated during this exercise.
EOF

cat > "$LAB_ROOT/trainer-answer-key.txt" <<EOF
SYNAPSE OSINT LAB 02 — TRAINER ANSWER KEY

Strong correlation:
- Exact PGP fingerprint reused: ${FINGERPRINT}
- banner.svg and profile-background.svg have identical SHA-256 hashes.

Medium correlation:
- PDF Author metadata: alex.m
- Creator metadata refers to the AlexM workstation.
- Same distinctive sentence appears on both sites.

Weak indicators:
- N0rthSea / northsea-dev username similarity.
- UTC+2 profile and posting-hour pattern.

False lead:
- N0rthSee is intentionally similar but unrelated.

Expected conclusion:
Evidence supports a moderate-to-high-confidence link between N0rthSea and the
fictional AlexM profile. It does not prove a real-world identity or exfiltration.
EOF

chown -R root:"$WEB_GROUP" "$ONION_WEB_ROOT" "$CLEARNET_WEB_ROOT"
find "$ONION_WEB_ROOT" "$CLEARNET_WEB_ROOT" -type d -exec chmod 0755 {} +
find "$ONION_WEB_ROOT" "$CLEARNET_WEB_ROOT" -type f -exec chmod 0644 {} +
chmod -R go-rwx "$GNUPGHOME"

printf '[5/8] Configuring Nginx...\n'
cat > "$NGINX_SITE" <<EOF
server {
    listen 127.0.0.1:${ONION_WEB_PORT};
    server_name localhost;
    root ${ONION_WEB_ROOT};
    index index.html;
    location / { try_files \$uri \$uri/ =404; }
    access_log /var/log/nginx/black-harbor-access.log;
    error_log /var/log/nginx/black-harbor-error.log;
    add_header X-Robots-Tag "noindex, nofollow, noarchive" always;
}

server {
    listen 0.0.0.0:${CLEARNET_PORT};
    server_name ${CLEARNET_NAME} _;
    root ${CLEARNET_WEB_ROOT};
    index index.html;
    location / { try_files \$uri \$uri/ =404; }
    access_log /var/log/nginx/osint-clearnet-access.log;
    error_log /var/log/nginx/osint-clearnet-error.log;
    add_header X-Robots-Tag "noindex, nofollow, noarchive" always;
}
EOF
[ "$NGINX_SYMLINK" = 1 ] && ln -sfn "$NGINX_SITE" /etc/nginx/sites-enabled/synapse-osint-lab || true

# SELinux (Fedora/RHEL enforcing): best-effort so nginx can bind the custom
# ports and read the web roots. If the Onion service still fails, inspect
# 'ausearch -m avc -ts recent' or temporarily run 'setenforce 0'.
if command -v getenforce >/dev/null 2>&1 && [ "$(getenforce 2>/dev/null)" = "Enforcing" ]; then
  printf '  SELinux enforcing: applying lab contexts (best-effort)...\n'
  if command -v semanage >/dev/null 2>&1; then
    for p in "$ONION_WEB_PORT" "$CLEARNET_PORT"; do
      semanage port -a -t http_port_t -p tcp "$p" 2>/dev/null \
        || semanage port -m -t http_port_t -p tcp "$p" 2>/dev/null || true
    done
  fi
  command -v restorecon >/dev/null 2>&1 && restorecon -R "$ONION_WEB_ROOT" "$CLEARNET_WEB_ROOT" 2>/dev/null || true
fi

nginx -t
systemctl enable --now nginx
systemctl reload nginx

printf '[6/8] Configuring the Tor Onion Service...\n'
sed -i '/^# BEGIN SYNAPSE OSINT LAB$/,/^# END SYNAPSE OSINT LAB$/d' "$TORRC"
cat >> "$TORRC" <<EOF

# BEGIN SYNAPSE OSINT LAB
HiddenServiceDir ${ONION_DIR}/
HiddenServicePort 80 127.0.0.1:${ONION_WEB_PORT}
# END SYNAPSE OSINT LAB
EOF
systemctl enable --now tor
systemctl restart tor

printf '[7/8] Waiting for the Onion address...\n'
HOSTNAME_FILE="$ONION_DIR/hostname"
for _ in $(seq 1 30); do
  [[ -s "$HOSTNAME_FILE" ]] && break
  sleep 1
done
if [[ ! -s "$HOSTNAME_FILE" ]]; then
  printf 'Tor did not create the Onion hostname. Inspect: journalctl -u tor --no-pager\n' >&2
  exit 1
fi
ONION_ADDRESS="$(tr -d '[:space:]' < "$HOSTNAME_FILE")"

printf '[8/8] Running local checks...\n'
curl --fail --silent --show-error "http://127.0.0.1:${ONION_WEB_PORT}/" >/dev/null
curl --fail --silent --show-error "http://127.0.0.1:${CLEARNET_PORT}/" >/dev/null
sha256sum "$ONION_WEB_ROOT/downloads/banner.svg" \
  "$CLEARNET_WEB_ROOT/assets/profile-background.svg" \
  > "$LAB_ROOT/banner-hashes.txt"
exiftool "$ONION_WEB_ROOT/downloads/orion_sample.pdf" \
  > "$LAB_ROOT/pdf-metadata.txt"

LAN_IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
cat > "$LAB_ROOT/lab-access.txt" <<EOF
Onion URL: http://${ONION_ADDRESS}/
Clearnet URL from the server: http://127.0.0.1:${CLEARNET_PORT}/
Clearnet URL from the student VM: http://${CLEARNET_NAME}:${CLEARNET_PORT}/
Suggested /etc/hosts entry on the student VM:
${LAN_IP:-SERVER_LAB_IP} ${CLEARNET_NAME}
PGP fingerprint: ${FINGERPRINT}
EOF

# ---- Synapse lab desktop background (best-effort branding) ----
set_lab_wallpaper() {
  command -v gsettings >/dev/null 2>&1 || { printf '  gsettings not found; wallpaper skipped.\n'; return 0; }
  local WALL="${LAB_ROOT}/synapse-wallpaper.png"
  base64 -d > "$WALL" <<'SYNAPSE_WALLPAPER_B64'
iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAMAAADfDTFxAAABgFBMVEXo7vjk6/XZ4OrCydQ1tvUw
w/8wwP8vvv8vvP8uuv8uuP8utv8ttv8ttv2nrruSmaY0s/J4gZAzruoyquUwo90undUttf0ttP0s
tPwss/wrsvorrvUsmdEqjsIooeMlj8sZgP0lhLkZfvoYffgdfdoZfPYYfPYYfPUYe/QYe/MYevId
etExdqEZeOcXeO4Xd+wXdusXduoXdugXdeoXdegXdecXdOkXdOgXdOcXdeYXdOYXdOUXc+YWdOZc
ZnVJVGgkb5gfZ5IcaJobXYcZVXwWcN4VadIVZsoUYL4TWrITU6M4S14XS3EuPlIWQ2IUQ2cUOlkR
TJcQRYgQPnoPOG8SNlEkMEIRMk0PLlMOL1oNKlEYJjoOJkQNJEMLI0ESHzQNHzoNHjoNHjgMID4M
HjkMHjgMHjIKHzYPHTQMHTkMHTgMHTcMHTYLHS4WHCcMHDgMHDcMHDYKHDAMGCgKFCIIEBwIDxsH
DxsHDxoIDhoHDhsHDhoIDhkHDhkHDRkHDRjKryNCAABqOklEQVR42u3di1sS+6L4/1UmIMcsu4ii
Yciz1Xj6QhIER61UvGd5zzD0MS+tJ/i1DrMSbcfG+dd/MzADMzADA95a2/frPGevlcAw4Io3n7l8
5g8RwMURAMCaP/jEBAgwAAIMEGAABBgA/QVAgAECDIAAAyDAAAgwQH8BEGCAAAMAAQYIMAACDBBg
ACDAAP0FQIABAgyAAAMgwAAIMEB/ARBgAAQYAAEGCDAAAgwQYAAgwAD9BUCAAQIMAAQYIMAACDBA
gAEQYAD0FwABBggwAAIMgAADIMAA/QVAgAECDAAEGCDAAAgwQIABgAAD9BcAAQYIMAACDIAAAyDA
AAEGQIAB0F8ABBggwAAIMECAAYAAAwQYAAEG6C8AEGCAAAMgwAABBkCAARBgAAQYIMAACDAA+guA
AAMEGAABBggwABBggAADIMAA/QUAAgwQYAAEGCDAAAgwAAIMgAAD9BcAAQZAgAEQYIAAAyDAAAEG
AAIMEGAABBigvwBAgAECDIAAAwQYAAEGQIABEGCAAAMgwADoLwACDBBgAAQYIMAAQIABAgyAAAME
GAAIMEB/ARBggAADIMAACDAAAgwQYAAEGAABBkCAAfoLgAADBBgACDBAgAEQYIAAAwABBggwAAIM
0F8ABBgAAQZAgAECDIAAAyDAAAgwQIABEGCAAAMAAQboLwACDBBgACDAAAEGQIABAgyAAAMgwAAI
MECAARBgAPQXAAEGCDAAAgwQYAAgwAABBkCAAQIMAAQYIMAACDBAfwGAAAMEGAABBggwAAIMgAAD
IMAAAQZAgAHw8QGAAAP0FwABBggwABBggAADIMAAAQYAAgwQYAAEGCDAAAgwAAIMgAAD9BcAAQZA
gAEQYIAAAyDAAAEGAAIMEGAABBggwABAgAECDIAAAwQYAAEGQH8BEGCAAAMgwAAIMAACDBBgAAQY
IMAAQIABAgyAAAMEGAAIMECAARBggP4CIMAACDAAAgwQYAAEGAABBkCAAQIMgAADBBgACDBAgAEQ
YIAAAwABBggwAAIMEGAABBgA/QVAgAECDIAAAyDAAAgwQIABEGCAAAMAAQYIMAACDBBgACDAAAEG
QIABAgyAAAMgwAAIMEB/ARBgAAQYAAEGCDAAAgwQYAAgwAABBkCAAQIMAAQYIMAACDBAgAEQYAAE
GAABBggwAAIMgAADIMAAAQZAgAECDAAEGCDAAAgwQH8BgAADBBgAAQYIMAACDIAAAyDAAAEGQIAB
EGAABBggwAAIMECAAYAAAwQYAAEGCDAAEGCAAAMgwAABBkCAARBgAAQYIMAACDAAAgyAAAMEGAAB
BggwABBggAADIMAAAQYAAgzQXwAEGCDAAECAAQIMgAADBBgAAQZAgAEQYIAAAyDAAAEGAAIMEGAA
BBggwABAgAECDIAAAwQYAAgwQIABEGCAAAMgwAAIMAACDBBgAAQYIMAAQIABAgyAAAMEGAAIMECA
ARBggAADAAEGCDAAAgwQYAAEGAABBkCAAQIMgAADBBgACDBAgAEQYIAAAwABBggwAAIMEGAAIMAA
AQZAgAECDIAAAyDAAAgwQIABEGAAfGwAIMAAAQZAgAECDAAEGCDAAAgwQIABgAADBBgAAQYIMAAC
DIAAAyDAAAEGQIABEGAABBggwAAIMECAAYAAAwQYAAEGCDAAEGCAAAMgwAABBkCAARBgAAQYIMAA
CDAAAgyAAAMEGAABBigwABBggAADIMAAAQYAAgwQYAAEGCDAAAgwAAIMgAADBBgAAQZAgAEQYIAA
AyDAAAEGAAIMEGAABBggwABAgAECDIAAAwQYAAEGQIABEGCAAAMgwAAIMAACDBBgAAQYIMAAQIAB
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
Av3fHGCRAJ9nAMwhWCDAwEUEuLSjeyL7Tw3w/YYDLBLgcwyAOQQLBBi4AF+nn8uH8/RNbN2s102A
myMfic4hWCDAAP7LEgwQYAAUGAABBkCBAQIMgAIDIMAAKDBAgAFQYAAEGAAFBggwAAoMEGAAoMAA
AQZAgQECDIACAyDAAEgwQIABUGAABBgABQYIMAAKDIAAA6DAAAEGQIEBAgwAFBggwAAoMECAAZBg
AAQYAAUGCDAACgyAAAOgwAABBkCBARBgABQYIMAASDBAgAGAAgMEGAAFBggwAFBggAADoMAAAQZA
ggEQYAAUGCDAACgwAAIMgAIDBBgACQYIMABQYIAAA6DAAAEGAAoMEGAAJBggwAAoMAACDIACAwQY
AAUGQIABkGCAAAOgwAAB5uMDAAUGCDAAEgwQYACgwAABBkCBAQIMACQYIMAAKDBAgAFQYAAEGAAJ
BggwAAoMgAADoMAAAQZAggECDAAUGCDAACgwQIABgAQDBBgABQYIMADw2QoQYAAkGCDAACgwAAIM
gAQDBBgABQYIMACQYIAAA6DAwH8XkQADoMDA1feXAAMgwcDV55cAA6DAwHX0lwADIMHA1eeXAAOg
wMB19JcAAyDBwNXnlwADoMDAdfSXAAMgwcDV55cAA6DAwHX0lwADIMHA1eeXAAOgwMB19JcAAyDB
wNXnlwADoMDAdfSXAAMgwcDV55cAAyDBwDXklwADoMDAdfSXAAMgwcDV55cAA6DAwHX0lwADIMHA
1eeXAAMgwcA15JcAA6DAwHX0lwADIMHA1eeXAAOgwMB19JcAAyDBwNXnlwADIMHANeSXAAOgwMB1
9JcAAyDBwNXnlwADIMHANeSXAAMgwcA15JcAA6DAwHX0lwADIMHA1eeXAAMgwcA15JcAA6DAwHX0
lwADIMHA1eeXAAMgwcA15JcAAyDBwDXklwADIMHANeSXAAOgwMB19JcAAyDBwNXnlwADIMHANeSX
AAMgwcA15JcAAyDBwDXklwADIMHANeSXAAMgwcA15JcAA6DAwHX0lwADIMHA1eeXAAMgwcA15JcA
AyDBwDXklwADIMHANeSXAAMgwcA15JcAAyDBwDXklwADIMHANeSXAAMgwcA15JcAAyDBwDXklwAD
IMHANeSXAAMgwcA15JcAA6DBwNXXlwADIMHAdeSXAAMgwcA15JcAAyDBwDXklwADIMHANeSXAAMg
wcA15JcAA6DBwNXXlwADIMHAdeSXAAMgwcC1/JdKgAGQYJBfAgwANBg3oL4EGAAJBvklwABAgnFD
8kuAAdBgUF8CDAAkGDcjvwQYAA0G9SXAAECCcTPyS4ABkGCQXwIMADQYN6K+BBgACQb5JcAAQINx
M+pLgAHQYFBfAgwAJBg3JL8EGAANBvUlwABAg3Ej6kuAAZBgkF8CDAA0GDejvgQYAEgV9SXAAECD
cTPqS4ABgAZTXwIMACQYNyS/BBgAaDD1JcAAQINxI+pLgAGABlNfAgwARBg3Ir4EGABoMPUlwABA
g3FD6kuAAYAGU18CDAA0GDejvgQYAIgw8SXAAECDcTPqS4ABgAgTXwIMADQYN6O+BBgAiDDxJcAA
QIRxI+JLgAGABlNfAgwARBg3I74EGACIMPElwABAhInvzUGAAYAK014CDABEmPgSYAAAESa+BBgA
qDDtJcAAACpMewkwAFBh2kuAAQBUmPYSYACgwrSXAAMAGSa9IMAAQIZJLwEGADJMegkwAIAMk14C
DAB0mPISYAAAISa8BBgACDHhJcAAgP/mFPPLIMAAQIrJLgEGAPx35Zg3lwADAC67ybxtBBgAAAIM
AAAIMAAABBgAABBgAAAIMAAAIMAAABBgAABAgAEAIMAAABBgAABAgAEAIMAAAIAAAwBAgAEAAAEG
AIAAAwAAAgwAAAEGAIAAAwAAAgwAAAEGAAAEGAAAAgwAAAgwAAAEGAAAEGAAAAgwAAAEGAAAEGAA
AAgwAAAgwAAAEGAAAECAAQAgwAAAgAADAECAAQAgwAAAgAADAECAAQAAAQYAgAADAAACDAAAAQYA
AAQYAAACDAAAAQYAAAQYAAACDAAACDAAAAQYAAAQYAAACDAAACDAAAAQYAAACDAAACDAAAAQYAAA
QIABACDAAACAAAMAQIABAAABBgCAAAMAQIABAAABBgCAAAMAAAIMAAABBgAABBgAAAIMAAAIMAAA
BBgAAAIMAAAIMAAABBgAABBgAAAIMAAAIMAAABBgAABAgAEAIMAAABBg3gIAAAgwAAAEGAAAEGAA
AAgwAAAgwAAAEGAAAECAAQAgwAAAgAADAECAAQAgwAAAgAADAECAAQAAAQYAgAADAAACDAAAAQYA
AAQYAAACDAAAAQYAAAQYAAACDAAACDAAAAQYAAAQYAAACDAAACDAAAAQYAAACDAAACDAAAAQYAAA
QIABACDAAACAAAMAQIABAAABBgCAAAMAQIABAAABBgCAAAMAAAIMAAABBgAABBgAAAIMAAAIMAAA
BBgAAAIMAAAIMAAABBgAABBgAAAIMAAAIMAAABBgAABAgAEAIMAAABBgAABAgAEAIMAAAIAAAwBA
gAEAAAEGAIAAAwAAAgwAAAEGAIAAAwAAAgwAAAEGAAAEGAAAAgwAAAgwAAAEGAAAEGAAAAgwAAAE
GAAAEGAAAAgwAAAgwAAAEGAAAECAAQAgwAAAgAADAECAAQAgwAAAgAADAECAAQAAAQYAgAADAAAC
DAAAAQYAAAQYAAACDAAACDAAAAQYAAACDAAACDAAAAQYAACcx/8PwDGyBEz86ucAAAAASUVORK5C
YII=
SYNAPSE_WALLPAPER_B64
  chmod 0644 "$WALL"
  local applied=0 uid_dir uid u E
  for uid_dir in /run/user/*; do
    [ -S "$uid_dir/bus" ] || continue
    uid="${uid_dir#/run/user/}"
    u="$(id -nu "$uid" 2>/dev/null)" || continue
    E="DBUS_SESSION_BUS_ADDRESS=unix:path=$uid_dir/bus XDG_RUNTIME_DIR=$uid_dir"
    # GNOME / Ubuntu / Budgie (default on Ubuntu, Fedora Workstation, Debian)
    if sudo -u "$u" env $E gsettings set org.gnome.desktop.background picture-uri "file://$WALL" 2>/dev/null; then
      sudo -u "$u" env $E gsettings set org.gnome.desktop.background picture-uri-dark "file://$WALL" 2>/dev/null || true
      sudo -u "$u" env $E gsettings set org.gnome.desktop.background picture-options 'zoom' 2>/dev/null || true
      applied=1
    fi
    # Cinnamon
    sudo -u "$u" env $E gsettings set org.cinnamon.desktop.background picture-uri "file://$WALL" 2>/dev/null && applied=1 || true
    # MATE
    sudo -u "$u" env $E gsettings set org.mate.background picture-filename "$WALL" 2>/dev/null && applied=1 || true
    # KDE Plasma 5/6
    sudo -u "$u" env $E plasma-apply-wallpaperimage "$WALL" 2>/dev/null && applied=1 || true
    # XFCE (toutes les proprietes backdrop last-image)
    sudo -u "$u" env $E WALL="$WALL" sh -c '
      command -v xfconf-query >/dev/null 2>&1 || exit 0
      for p in $(xfconf-query -c xfce4-desktop -l 2>/dev/null | grep "/last-image$"); do
        xfconf-query -c xfce4-desktop -p "$p" -s "$WALL" 2>/dev/null || true
      done' 2>/dev/null && applied=1 || true
  done
  if [ "$applied" = 1 ]; then
    printf '  Desktop wallpaper applied (Synapse lab background).\n'
  else
    printf '  Saved wallpaper to %s (no active graphical session found).\n' "$WALL"
  fi
}
printf '[+] Applying the Synapse lab desktop background (best-effort)...\n'
set_lab_wallpaper || true

printf '\n============================================================\n'
printf ' SYNAPSE OSINT LAB 02 IS READY\n'
printf '============================================================\n'
printf 'Onion URL:     http://%s/\n' "$ONION_ADDRESS"
printf 'Clearnet URL:  http://%s:%s/\n' "$CLEARNET_NAME" "$CLEARNET_PORT"
printf 'Student hosts: %s %s\n' "${LAN_IP:-SERVER_LAB_IP}" "$CLEARNET_NAME"
printf 'PGP fingerprint: %s\n' "$FINGERPRINT"
printf 'Trainer files: %s\n' "$LAB_ROOT"
printf '\nImportant:\n'
printf '  - The Onion Service is reachable by anyone who knows its address.\n'
printf '  - It contains synthetic data only; do not add real information.\n'
printf '  - Restrict TCP/%s to the student network with your firewall.\n' "$CLEARNET_PORT"
printf '  - Keep %s private; it contains the Onion identity keys.\n' "$ONION_DIR"
printf '============================================================\n'
