Vulnhub is a host for vulnerable virtual machines.  You can download these VMs freely and configure them to run on your computer.  You’re goal then is to hack the VM and gain root access, find a flag or other goal as set out in the Vulnhub page description.  Below are a few of my writeups.