Module 01 · Foundation
Mindset, Law & Ethics
Before any tool, master the rules of engagement, legal boundaries, professional ethics, and how to build a safe home lab. Experts start here every career — and revisit often.
Authorized testing only. Practice on systems you own, isolated labs, or targets with written permission. Unauthorized access is illegal.
Outcomes
- Explain legal authorization requirements in plain language
- Draft a simple scope and rules of engagement
- Build an isolated lab that never touches production networks
- Adopt an evidence-first, report-ready operator mindset
- Separate personal practice from professional client work cleanly
Lessons
Why ethics is a technical skill
Security work without ethics is just criminal capability. Learn the professional frame that keeps you employable and out of court.
Learning objectives
- Distinguish authorized testing from unauthorized access in plain language
- List the minimum fields every Rules of Engagement document needs
- Recognize gray areas: bug bounties, third-party SaaS, open ports, shared hosting
- Apply responsible disclosure norms when you find something unexpected
- Judge whether a technique is proportional to the engagement objective
Deep teach-through
Dual-use skills and the authorization control
Almost every technique you will learn — scanning, exploitation, password attacks, social engineering lab tools — is dual-use. The same packet that proves a firewall gap can also commit a crime. What separates a professional operator from a criminal is not the tool binary; it is authorization, scope discipline, and intent backed by evidence of permission.
Think of authorization as a security control on you. Contracts, statements of work, bug bounty policies, and written emails from system owners are the allow rules. If you cannot point to a written allow rule for the asset and technique you are about to use, you stop.
Verbal “sure, go ahead” is not a professional standard. People misremember. Employees leave. Scope expands accidentally. Written permission protects the client and you. Courts and HR processes care about documentation more than your recollection of a hallway conversation.
What written permission must define
A usable Rules of Engagement (RoE) should answer: What systems, IPs, domains, and apps are in scope? What is explicitly out of scope? When may testing occur? Which techniques are allowed or forbidden (phishing, DoS, physical access, social engineering, full exploitation vs read-only)? Who is the emergency contact if something breaks? How must evidence and data (including PII) be stored and destroyed? What is the definition of done?
Also clarify credential handling, whether production data may be accessed, maximum aggressiveness on availability-sensitive systems, and how critical findings are escalated mid-test. If the client says “test everything,” help them list assets. Infinite scope is how accidental out-of-scope scanning happens.
Professional operators treat the RoE as a living checklist at the top of every note file. When a new subdomain or IP appears mid-engagement, they do not assume it is fair game — they check or get written expansion before touching it.
Gray zones operators actually hit
Bug bounties authorize only what the published policy allows. Out-of-scope assets, rate-limit abuse, DoS, and social engineering are often forbidden even when technically interesting. Re-read the policy every program; policies change and differ wildly between vendors.
Third-party SaaS and cloud: a client may authorize their tenant, not other customers on shared infrastructure. Stay inside their boundary. Open ports on the internet are not an invitation. Discoverability is not consent. Shodan results are not permission.
Home and lab: devices you own and networks you administer are ideal practice grounds. A neighbor’s AP, café clients, or random internet hosts are not. Employment does not automatically authorize offensive testing of employer systems. Get written approval from the right owner, not just a curious teammate.
Proportionality and professional judgment
Experts choose the least destructive technique that still proves risk. Prefer a proof-of-concept read of a non-sensitive file over bulk data exfiltration. Prefer a screenshot of admin access over installing persistence “for fun.” Your report should demonstrate impact, not maximize damage.
If a technique can take down production (stress tests, mass sprays, fragile IoT), it needs explicit RoE language and often a maintenance window. When you find something catastrophic mid-test, stop thrashing and escalate through the agreed channel immediately.
Proportionality also applies to privacy. Dumping full customer tables when a single row proves the flaw is poor judgment even if “technically in scope.” Clients remember how you behaved under temptation.
Responsible disclosure mindset
If you stumble into a vulnerability outside a formal engagement, do not “helpfully exploit further.” Document carefully, minimize access, and disclose through a proper channel (security@, bounty platform, vendor portal).
Give owners reasonable time before public disclosure in coordinated scenarios. Public shaming is not professionalism. Never sell or trade unfixed vulnerabilities on gray markets. That path ends careers and can end in criminal liability.
Inside engagements, unexpected critical findings still follow process: contain your access, capture evidence, notify the contact, and wait for instruction before continuing aggressive testing on that path.
Key concepts
- Authorization
- Documented permission from a party with rights over the target to perform specified testing.
- Scope
- Exact assets, windows, and techniques allowed — everything else is off-limits by default.
- Rules of Engagement
- Operational agreement covering contacts, constraints, data handling, and escalation.
- Proportionality
- Least harmful method that still demonstrates real risk for the report.
- Responsible disclosure
- Privately informing owners and allowing remediation before broad publicity.
Common mistakes
- Assuming any port scan is always legal without authorization
- Testing a “related” subdomain without confirming scope
- Running DoS-prone tools because a CTF blog used them in a lab
- Storing client loot in personal cloud notes or chat apps
- Continuing to dig after proving critical impact instead of escalating
- Treating bug bounty policy as optional when a finding is “interesting”
Defender view
- Clear RoE lets blue teams correlate friendly testing with alerts.
- Testers who escalate critical risk early earn long-term trust.
- Scope violations destroy the business relationship even if “nothing broke.”
Operator checklist
- I can name the document or policy that authorizes today’s targets
- I can list at least three out-of-scope examples for this engagement
- I know who to call if a system becomes unavailable
- I know where evidence will be stored and who can access it
- I have a stop condition for destructive or high-noise techniques
Example commands & patterns
# Discipline before packets:
# 1) Write scope-YYYYMMDD.txt with only allowed IPs/domains
# 2) Write oos.txt with known out-of-scope items
# 3) Only then run tools with -iL scope-YYYYMMDD.txt
Practice drills
- Draft a one-page RoE for Metasploitable in a host-only lab
- List five systems you may test this month and five you may not
- Read one public bug bounty policy; highlight every out-of-scope bullet
- Rewrite a reckless objective into a proportional professional objective
- Write the short escalation message you would send for an unexpected critical issue
Tools for this lesson
Next: Build Lab Zero isolation before noisy tools leave your notes app.
Home lab isolation done right
How to practice real attacks without becoming a hazard to your home LAN, roommates, or the public internet.
Learning objectives
- Design a minimum safe lab topology (attacker + target + isolation)
- Explain host-only vs NAT vs bridged networking and when each is wrong
- Use snapshots and disposable targets as a recovery strategy
- Bind Docker lab ports safely and tear down services after practice
- Document a lab network diagram you can reuse for every new target
Deep teach-through
The minimum viable safe lab
At minimum: a hypervisor, an attacker VM (Kali/Parrot), one intentionally vulnerable target, and a network path between them that does not place weak targets on your family Wi-Fi as first-class LAN citizens.
Recommended beginner layout: attacker with NIC1 NAT (updates) and NIC2 host-only/internal; targets only on host-only/internal. No router port-forwards into vulnerable VMs.
Docker labs published to 127.0.0.1 on the attacker VM are excellent for web practice. Still treat the attacker environment as hostile software territory — keep personal accounts and banking out of the attacker browser profile.
Why bridged vulnerable VMs are a trap
Bridged mode puts a VM on your LAN like another physical PC. Intentionally weak boxes can be found by anything else on the Wi-Fi and train bad scope habits when phones and TVs appear in scans.
Host-only/internal networks keep blast radius inside the hypervisor. That is the professional habit even when you are “just playing.” Convenience is the enemy of containment.
If you later need internet-facing practice (reverse shells, cloud labs), design that path deliberately with firewall rules and short-lived instances — never by casually bridging Metasploitable to the living-room network.
Snapshots, golden images, and hygiene
Snapshot attacker and target after first configuration, before exploitation. Name with purpose and date so you can restore without guessing which snapshot is clean.
After messy privilege escalation or malware-like payloads, restore rather than “cleaning by hand.” Hand-cleaning trains false confidence that residual implants are gone.
Use a separate browser profile or VM for personal accounts. Do not bank from the attacker VM. Do not reuse personal passwords inside lab targets — those credentials will end up in wordlists and writeups.
Docker and cloud footnotes
Prefer localhost binds: -p 127.0.0.1:3000:3000. Tear containers down when finished. Orphaned containers on 0.0.0.0 become free CTFs for anyone on the LAN.
Cloud lab VMs need security groups locked to your IP and short lifetimes. Public Metasploitable is found by scanners within minutes of being exposed.
When using shared online platforms (HTB, TryHackMe), respect their terms and never pivot from their VPN into unrelated infrastructure you do not own.
Lab documentation is part of safety
Draw topology: VMs, networks, IPs, published ports. Update when you add AD ranges later. A diagram catches mistakes that memory will not.
Keep a break-glass note: restore snapshots, disable a bad bridge, cut NAT if something unexpected phones home.
If others share your network, use a dedicated lab AP for wireless experiments — not the household SSID. Explain the rules to housemates so nobody “helps” by bridging a target.
Key concepts
- Host-only / internal network
- VM interconnect without routing to the physical LAN/WAN.
- NAT adapter
- Outbound access for updates; not a substitute for target isolation design.
- Snapshot
- Restore point used as clean rollback after experiments.
- Blast radius
- How far a mistake or weak service can reach if containment fails.
- Golden image
- Known-good baseline VM you clone instead of rebuilding from ISO.
Common mistakes
- Bridging Metasploitable to home Wi-Fi for convenience
- Port-forwarding lab services on a consumer router
- No snapshots before untrusted exploit code
- Docker vulnerable apps on 0.0.0.0 on a travel laptop
- Personal passwords inside intentionally weak targets
- Leaving cloud lab instances running indefinitely with open security groups
Defender view
- Leaking labs look like real attack infrastructure to ISPs and researchers.
- Containment habits map to safe malware analysis and production caution later.
- Documented topology makes accidental bridging obvious.
Operator checklist
- Targets cannot reach the public internet unless designed as a safe exception
- I have a clean snapshot ready before the next experiment
- Published ports are localhost-bound or on an isolated segment
- I can restore the lab quickly without reinstalling the OS
- A simple network diagram exists with the lab notes
Example commands & patterns
docker run --rm -p 127.0.0.1:3000:3000 bkimminich/juice-shop
ip -br a
# On isolated target segments, outbound ping to the internet should fail
Practice drills
- Build host-only Kali + Juice Shop or DVWA
- Snapshot, break something, restore cleanly
- Draw the lab diagram with interfaces and subnets
- Verify a lab service is not reachable from a phone on Wi-Fi
- Write a five-bullet lab safety SOP for the next 90 days
Tools for this lesson
Next: Adopt a note-taking template before your first scored room.
Note-taking like a professional
If it is not written down with evidence, it did not happen. Build a note system that survives fatigue and becomes a report.
Learning objectives
- Structure engagement notes from recon through remediation
- Capture commands, timestamps, outputs, and screenshots reproducibly
- Separate raw operator notes from client-facing language
- Organize files so another tester could continue your work
- Build a personal template and reuse it for ten practice boxes
Deep teach-through
Why notes are an operator skill
Long engagements destroy working memory. Exact syntax, odd headers, and which host had the interesting share will vanish without a system.
Clients pay for a narrative with evidence. Notes are the raw material of findings and also show you stayed in scope if questions arise later.
In team engagements, notes are how work hands off without redoing recon. An expert’s folder should let a peer continue mid-stream.
Folder and template system
Per engagement or box: dated folder with notes/, scans/, screenshots/, loot/, report/. Consistency beats clever structure that only you understand.
Core sections: Scope pointer, Inventory, Timeline, Recon, Enumeration, Exploit attempts (success and failure), Post-ex, Findings drafts, Blockers.
Save tool outputs to files (nmap -oA, proxy exports). When something works, immediately seed Impact and Remediation idea lines so the report is not rebuilt from memory at the end.
Evidence standards
A finding needs enough detail that a third party understands risk without you on a call: requests/responses, screenshots, versions, timestamps.
Redact secrets in client-facing docs; keep raw loot in controlled storage only. CTF writeups train the same muscle — finish them even if private.
Prefer primary artifacts (pcap, HTTP history, shell output) over paraphrased claims. “I got root” without evidence is not a finding.
Raw notes vs report language
Raw: “sqli on /item?id= with ' or 1=1-- ; dumped users; crack later.” Client: “SQL injection in the item parameter allows unauthenticated database reads including password hashes. Recommend parameterized queries and least-privilege DB roles.”
Never paste insulting raw notes into a customer portal. Tone is part of professionalism; findings should help the client fix risk, not humiliate teams.
Build a personal glossary of remediation seeds for common classes (default creds, missing MFA, open shares) so you are not inventing advice under deadline pressure.
Operational discipline under fatigue
End every session with a five-minute capture review: what worked, what failed, next three actions, open questions. Tomorrow-you is a different person with less context.
Tag hosts with confidence levels (confirmed live, guessed, out of scope). Ambiguous inventory causes out-of-scope mistakes under time pressure.
When pivoting or chaining findings, draw a short attack-path sketch in notes. Reports later need the story of how access was gained, not only the final shell.
Key concepts
- Reproducibility
- Another skilled person could repeat critical steps from the notes alone.
- Evidence
- Artifacts that support a claim of risk.
- Finding draft
- Early structured note destined to become a report item.
- Loot hygiene
- Controlled handling of credentials and sensitive discoveries.
- Timeline
- Chronology for methodology review and alert correlation.
Common mistakes
- Only screenshots, no command lines
- Titles like “Nmap found ports” with no risk story
- Losing track of which host a shell was on after pivoting
- Reverting a VM before exporting scanner output
- Mixing personal CTF notes with client engagement data in one cloud vault
- Writing the report from memory days after the test
Defender view
- Timestamps that line up with alerts make purple exercises useful.
- Clear remediation seeds increase real risk reduction.
- Organized evidence shortens retest cycles.
Operator checklist
- Major commands are in notes or saved output files
- Screenshots are named and referenced
- Each draft finding has impact, repro, and fix seed text
- Scope sits at the top of the note file
- A teammate could continue from this folder tomorrow
Example commands & patterns
mkdir -p ~/engagements/2026-08-10_lab/{notes,scans,screenshots,loot,report}nmap -sV -sC -oA scans/initial 192.168.56.10
Practice drills
- Create your personal engagement markdown template
- Complete one practice room using only that template
- Export Nmap -oA and reference all three outputs from notes
- Translate one raw exploit note into client-style finding text
- Do a ten-minute end-of-session capture review
Tools for this lesson
Next: Begin Module 2 and log every networking experiment in the template.