Cyberlium

OSINT › Module 1 › Lesson 4

BeginnerModule 1Lesson 4/5

Lab — Write YOUR Self-OSINT Scope File

scope.yaml + HANDLE= from YOU only — then serve the file on never 0.0.0.0.

25 min+40 XP3 quiz
Module progress4 of 5

Visual · osint_scope_lab

Lab: write YOUR handles/emails/domains. Bind

Opening

If the identifier is not in the file, the tool does not get it. That is the whole lab.

Lessons 1–3 defined OSINT, wrote RoE, and bookmarked maps. This lab is the artifact later modules will read: scope.yaml listing YOUR handles, YOUR emails, YOUR domains, and sites YOU own. A sibling scope.env holds HANDLE=, EMAIL=, DOMAIN= so Sherlock and holehe cannot be fed a Discord dare. You will also start a loopback viewer on that shows the file to you — never 0.0.0.0. Original Cyberlium.

1. Lab contract: identify DEMO, then write only YOUR identifiers

GATE first. curl http://192.168.0.1/ — Router Admin means STOP. The rest of the lab is files under $HOME/cyberlium-lab and HTTP on

scope.yaml is not a target pack. If you have no domain, write none: and skip domain tools later. If you have no public site, skip Wayback CDX later. Empty is honest. A classmate handle is a fail.

Command guide

Lab contract: identify DEMO, then write only YOUR identifiers

═══ INSTALL ═══

Linux (Debian/Ubuntu):

Command — copy this

pipx install sherlock-project
pipx install theHarvester
pipx install holehe
sudo apt install nmap

macOS:

Command — copy this

pipx install sherlock-project
pipx install theHarvester
pipx install holehe
brew install nmap

Windows:

Command — copy this

pip install sherlock-project
pip install theHarvester
pip install holehe
choco install nmap  # or download https://nmap.org/download.html

═══ COMMANDS ═══

Command — copy this

cat > "$HOME/cyberlium-lab/scope.yaml" << 'YAML'
owner: REPLACE_WITH_YOUR_NOTE_NAME
handles:
- REPLACE_YOUR_HANDLE
emails:
- [email protected]
domains:
- none
sites:
- none
never:
- classmates
- strangers
- nmap 192.168.0.0/24
- hydra
- breach dumps
YAML

2. scope.env for tools, then a loopback viewer YOU own

Tools in later modules should read HANDLE= from a file you wrote, not from a chat paste. Create scope.env with HANDLE, EMAIL, DOMAIN. If you have no domain, DOMAIN=none.

The HTTP toy must hardcode HOST="127.0.0.1" and PORT=8800. If a snippet says 0.0.0.0, refuse it. Classmates run their own lab.

Command guide

scope.env for tools, then a loopback viewer YOU own

═══ INSTALL ═══

Linux (Debian/Ubuntu):

Command — copy this

pipx install sherlock-project
pipx install maigret
pipx install holehe
sudo apt install curl
sudo apt install python3

macOS:

Command — copy this

pipx install sherlock-project
pipx install maigret
pipx install holehe
brew install python3

Windows:

Command — copy this

pip install sherlock-project
pip install maigret
pip install holehe

Built-in (PowerShell: Invoke-WebRequest) Download https://python.org/downloads/

═══ COMMANDS ═══

Command — copy this

printf '%s
' 'HANDLE=REPLACE_YOUR_HANDLE' '[email protected]' 'DOMAIN=none' 'SITE=none' > "$HOME/cyberlium-lab/scope.env"
cat > "$HOME/cyberlium-lab/t12_m01_scope_view.py" << 'PY'
from http.server import BaseHTTPRequestHandler, HTTPServer
from pathlib import Path
HOST, PORT = "127.0.0.1", 8800
if HOST != "127.0.0.1":
  raise SystemExit("refusing non-loopback bind")
SCOPE = Path.home() / "cyberlium-lab" / "scope.yaml"
class H(BaseHTTPRequestHandler):
  def log_message(self, fmt, *args):
      print("[t12-scope]", fmt % args)
  def do_GET(self):
      body = SCOPE.read_bytes() if SCOPE.exists() else b"missing scope.yaml
"
      self.send_response(200)
      self.send_header("Content-Type", "text/plain; charset=utf-8")
      self.send_header("X-Cyberlium-Lab", "t12-m01-scope")
      self.send_header("Content-Length", str(len(body)))
      self.end_headers()
      self.wfile.write(body)
print("bind", HOST, PORT)
HTTPServer((HOST, PORT), H).serve_forever()
PY

Command — copy this

grep -n "127.0.0.1" "$HOME/cyberlium-lab/t12_m01_scope_view.py"
grep -n "0.0.0.0" "$HOME/cyberlium-lab/t12_m01_scope_view.py" && echo "FIX bind"

3. curl SAFE, edit REPLACE_, lock the proof

Start the viewer. curl -sS http:/// should print your YAML. Then edit REPLACE_ lines to YOUR real handle/email (and domain if you own one). Re-curl. Stop the Python process when done.

Write t12-m01-l04-scope-lab.txt with date, DEMO GATE, and “no classmates in file.” chmod 600 everything. Quiz is next.

Command guide

curl SAFE, edit REPLACE_, lock the proof

═══ COMMANDS ═══

Command — copy this

grep -n "REPLACE_" "$HOME/cyberlium-lab/scope.yaml" "$HOME/cyberlium-lab/scope.env"

4. What you ship: scope.yaml, scope.env, loopback viewer, no strangers in the file

Placeholders replaced with YOUR identifiers or honest none. Viewer was DEMO identified or STOPPED. chmod 600. No classmate handles. No 0.0.0.0.

5. What you record before the next lesson

Date. scope.yaml handles/emails/domains. HANDLE= in scope.env. curl SAFE. NEVER third-party names, NEVER nmap/hydra. File t12-m01-l04-scope-lab.txt chmod 600.

6. Wrong vs right: strangers vs identifiers YOU own

Worked failure — same OSINT word, opposite target. Right never needs a classmate or a dump site.

  • Wrong

    Add three classmates “as control group.” python bind 0.0.0.0 so a phone can see your email. nmap /24 to find extra domains.

  • Right

    Write YOUR YAML. curl chmod 600. Next: Quiz — OSINT Mindset.

Mission: freeze YOUR identifiers in a 600 file

1) / STOP if router. 2) Edit scope.yaml and scope.env to YOUR handles/emails/domains (or none). 3) Start t12_m01_scope_view.py on and curl it. 4) Stop the process. chmod 600. Never list classmates. Never bind 0.0.0.0.

Stuck? Ask Cyberlium AI Mentor

If Python is missing, ask Mentor for a PATH hint — not for emailing your YAML to a friend to “review OSINT.”

Knowledge Check

1

APPLY: The lab helper says HTTPServer(("0.0.0.0", 8800)). What do you do?

Multiple choice

Knowledge Check

2

APPLY: True or False: You should add a classmate handle to scope.yaml as a control.

True or False

Knowledge Check

3

APPLY: curl http://192.168.0.1/ is Huawei Router Admin during the scope lab. Next?

Multiple choice

← Previous

Answer all 3 knowledge checks to continue. (0/3 answered)