Project 5: Password Security Lab

Module: Module 1: Reconnaissance, Networking & First Vulnerabilities  |  Level: Beginner  | 
Primary tool: Hashcat + a password-strength library  |  Estimated time: 45–75 minutes

Objective: Quantify why common passwords are weak and measure real cracking time estimates.

Free lab environment

OverTheWire: Bandit (free wargame) — https://overthewire.org/wargames/bandit/

OverTheWire’s Bandit wargame is a free, legal, SSH-accessible series of levels built specifically for practicing authentication and credential-handling techniques safely. Sign in with the level credentials provided on the site; no account or payment required.

Lab workflow

  1. Set up Hashcat + a password-strength library and confirm it is installed correctly with a harmless test run.
  2. Generate or obtain your test material against the rockyou.txt wordlist against hashes you generate yourself — never point a credential-attack tool at a system you don’t have explicit authorization to test.
  3. Run your attack/measurement to quantify why common passwords are weak and measure real cracking time estimates, using conservative rate limits so you understand what a real, cautious attacker (or a defensive test) actually looks like in logs.
  4. Record the exact timing and success/failure counts — these numbers are what a detection rule would actually be built on.
  5. From the defensive side, identify the specific log field or alert that would have caught this activity, and write the detection logic in plain English.
  6. Summarize what a stronger control (rate limiting, longer minimum length, MFA) would have changed in your results.

Evidence & screenshot requirements

Submit the following with your report (see this module’s practical assignment for exact upload details):

  • a hashcat benchmark or crack-time output for a hash you created from a deliberately weak password
  • the same measurement for a hash created from a 16+ character passphrase, for comparison

Expected deliverable

A concise lab-report entry containing: scope/target, exact commands or payloads used, your key
observation, the required screenshots above, and — where applicable — the specific remediation for what
you found. Vague answers (“sanitize input”, “use a firewall”) without naming the exact mechanism will not
receive full credit.

Safety & authorization

Only test the specific free lab target named above, or infrastructure you personally own. Do not target
third-party systems, real user accounts, or production services without explicit written authorization.
Never deploy anything from this project outside an isolated lab environment.