OSINT › Module 3 › Lesson 4
Lab — Self-Search Notebook
Merge YOUR queries, checkups, and CDX into one 600 file — viewer on
Visual · selfsearch_notebook_lab
Lab: notebook of YOUR hits only. Bind
Opening
If the notebook names anyone else, you failed the lab even if the formatting is pretty.
Create t12-m03-selfsearch.md (or.txt) with: queries you ran, GitHub/Reddit checkup results, one privacy fix, CDX skip or rows for YOUR site. Serve it on curl. chmod 600. No classmate names anywhere in the file. Original Cyberlium. GATE Next: Quiz — Social Self-OSINT.
1. Assemble the notebook from YOUR prior files
cat the Module 3 notes you already wrote. Add a header: owner = you. Grep the draft for other people’s names you might have pasted from SERPs and delete those lines.
first. This notebook is not a people-search CRM.
2. Grep the notebook for roster words; serve on loopback
Search your own file for classmate, teacher, roster. If those words appear as targets, edit them out. Then start a viewer.
Refuse 0.0.0.0. Classmates write their own notebooks.
Command guide
Grep the notebook for roster words; serve on loopback
═══ INSTALL ═══
Linux (Debian/Ubuntu):
Command — copy this
sudo apt install curl sudo apt install python3
macOS:
Command — copy this
brew install python3
Windows: Built-in (PowerShell: Invoke-WebRequest) Download https://python.org/downloads/
═══ COMMANDS ═══
Command — copy this
grep -niE "classmate|roster|teacher_target" "$HOME/cyberlium-lab/t12-m03-selfsearch.md" && echo "EDIT THEM OUT"
cat > "$HOME/cyberlium-lab/t12_m03_nb_view.py" << 'PY'
from http.server import BaseHTTPRequestHandler, HTTPServer
from pathlib import Path
HOST, PORT = "127.0.0.1", 8802
if HOST != "127.0.0.1":
raise SystemExit("refusing non-loopback bind")
NB = Path.home() / "cyberlium-lab" / "t12-m03-selfsearch.md"
class H(BaseHTTPRequestHandler):
def do_GET(self):
body = NB.read_bytes() if NB.exists() else b"missing notebook
"
self.send_response(200); self.send_header("Content-Type", "text/markdown; charset=utf-8")
self.send_header("Content-Length", str(len(body))); self.end_headers(); self.wfile.write(body)
def log_message(self, *a):
pass
HTTPServer((HOST, PORT), H).serve_forever()
PYCommand — copy this
grep -n "0.0.0.0" "$HOME/cyberlium-lab/t12_m03_nb_view.py" && echo "FIX"
3. curl SAFE, lock lab note, stop the pid
curl http:/// and save a body snippet. Stop Python. Write t12-m03-l04-selfsearch-lab.txt. Quiz next.
Never nmap. Never hydra. Never CDX other people as a “bonus page.”
4. What you ship: one self-only notebook, loopback curl, 600 mode
t12-m03-selfsearch.md names only you. Viewer DEMO GATE. No roster words. chmod 600.
5. What you record before the next lesson
Date. Notebook path. curl 8802. NEVER classmates. File t12-m03-l04-selfsearch-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
Paste a classmate SERP into the notebook. Bind 0.0.0.0. CDX their blog as an extra section.
Right
Merge YOUR notes. curl loopback. Next: Quiz — Social Self-OSINT.
Mission: one notebook, one human (you)
1) / STOP if router. 2) Merge Module 3 notes into t12-m03-selfsearch.md. 3) Grep out roster targets. 4) Serve on and curl. Never other names. Never 0.0.0.0.
Stuck? Ask Cyberlium AI Mentor
Ask Mentor how to merge the three note files — not how to add a “control classmate.”
Knowledge Check
APPLY: Notebook contains a classmate full name from a SERP. You:
Multiple choice
Knowledge Check
APPLY: True or False: Teaching bind for this lab is
True or False
Knowledge Check
APPLY: curl http://192.168.0.1/ is Router Admin during the notebook lab. You:
Multiple choice