Project 38: TLS Downgrade Defense

Module: Module 4: Vulnerability Scanning & Web Exploitation Defense  |  Level: Intermediate  | 
Primary tool: testssl.sh (free, open-source)  |  Estimated time: 75–120 minutes

Objective: Audit a server’s TLS configuration for weak protocol/cipher support.

Free lab environment

TryHackMe free rooms (Linux/Windows fundamentals) + VulnHub VMs — https://tryhackme.com/ and https://www.vulnhub.com/

VulnHub hosts hundreds of free, downloadable, intentionally vulnerable VMs built by the community for exactly this kind of practice; run them host-only inside VirtualBox/VMware. TryHackMe’s free-tier rooms provide disposable cloud targets when you’d rather not manage local VMs.

Lab workflow

  1. Set up your target (a site you own, or badssl.com’s deliberately-misconfigured test endpoints) inside an isolated VM/VLAN you fully control.
  2. Using testssl.sh (free, open-source), run your baseline check with the specific goal of learning to audit a server’s TLS configuration for weak protocol/cipher support.
  3. For every result, distinguish ‘expected/by design’ from ‘a real gap’ before acting on anything.
  4. Apply one concrete fix for the most significant gap you found.
  5. Re-run the same check after your fix and confirm, with evidence, that the specific gap is closed.
  6. Write a one-paragraph note on why this class of issue matters beyond this one lab machine.

Evidence & screenshot requirements

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

  • testssl.sh output for the target
  • your written list of any deprecated protocol (SSLv3/TLS1.0) or weak cipher it flagged, and the fix

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.