SamuraiWTF hands a security class a virtual machine full of deliberately broken targets
The main SamuraiWTF collaborative distro repo.
At a glance
- What is it?
- SamuraiWTF is the OWASP project that builds training virtual machines for security courses, with a Katana package manager that installs tools and intentionally vulnerable applications such as OWASP Juice Shop, and a local root certificate authority so the labs look like the real thing. It suits an instructor who needs a lab per student, and it is a lab environment that runs as root inside a virtual machine, not a tool to point at someone else's network.
- Who is it for?
- SamuraiWTF fits a security instructor who needs every student to have the same set of tools and deliberately vulnerable targets, because the virtual machine image and the Katana installer make that a single provisioning step rather than a documented setup each student performs. It does not fit a penetration test engagement, since the whole point is that the targets inside it are meant to be broken and the environment runs with root privileges.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 88 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A lab, not an attack tool, and the README says so first
The most important sentence in the project documentation is the one that opens the body of the README: this project is not a vulnerable application. It is a framework designed for quickly configuring training virtual machines with tools and vulnerable application targets.
The example given is the use case. An instructor could use SamuraiWTF to easily set up a virtual machine image containing ZAP and OWASP Juice Shop, and then distribute it to each student as a training lab environment.
That framing decides how to read the rest. The repository's own topics list burpsuite, pentest-tool, samurai and vagrant, and the home page is the OWASP project page, so the vulnerability lives inside the lab as a teaching artefact rather than as a weapon aimed outward. A student is meant to break the Juice Shop running on their own virtual machine, and the artefacts outside it are the tools they are learning to use.
It is also worth being plain about the deployment. The environment carries a default user and password, and the documentation states that Katana runs with root privileges and is not intended to be run in a secure or production environment. A lab that is deliberately full of broken software and runs as root is only acceptable inside an isolated virtual machine, and the safeguards described later in the README are what keep that isolation meaningful.
Katana is the package manager that does the installing
The project includes and uses the Samurai Katana project to manage installation and running of tools and targets in the virtual environment. That division of labour is the architecture: SamuraiWTF builds the machine, Katana fills it.
Once you are logged in, you install tools and targets using katana either from the command line or from a browser. The command line route is a list and an install.
```shell script katana install zap katana install juice-shop katana start juice-shop
The pattern is a package name rather than a long shell recipe, which is what makes the environment reproducible for a class of twenty students. The `katana list` command shows which packages are available.
The web UI covers the same ground in a browser at `https://katana.test`, and if it is not running you may first need to use the command line to install and start katana.
shell script katana install katana katana start katana ```
More detailed instructions on using Katana are in the readme of the Samurai Katana project, which is the reference for the packages themselves.
So the tools and the targets are interchangeable and installable at any point in the life of the machine. A student who finishes the Juice Shop exercises can install the next target without rebuilding the virtual machine, which is what makes the image reusable across a whole course rather than a single session.
Three ways to get a machine, and one that is on its way out
There are several options available, and the documentation is candid that one of them is finished.
Option 1 is a pre-built OVA for Oracle VirtualBox, which the documentation says works best if you are not using Windows, or if you are using Windows without Hyper-V running. The download is published from an S3 bucket, and the README publishes the checksums so you can verify what you downloaded.
* MD5: `1da174a13218ad60080d4666f305124d` * SHA256: `92490a0f16584644ad681d94a3b144778fcb837a845a4f5f63d252e71d98ed4d`
Option 2 is a pre-built VHDX for Hyper-V, which works best on Windows 10 or higher with Hyper-V installed, and the note says that if you use the Windows Linux Subsystem then you have Hyper-V installed. After unzipping, you create a new VM in Hyper-V, attach the .hvdx drive and set the RAM to at least 4096.
* MD5: `B7B406D70956574CE29A83344CD59E97` * SHA256: `9FD30B272A20CD3CA1003BAC0CEB180D18202F0A448FCFDEB0EDE52CA65DDA74`
Option 3, building an Amazon Workspace, is marked deprecated due to ongoing issues with AWS Workspaces provisioning, and the historical documentation is kept in the amazon-linux directory.
The fourth route is to build from scratch with Vagrant on Hyper-V or VirtualBox, and the documentation says the most stable Vagrant build is the one for Ubuntu 22.04, with details in the ubuntu-22 directory. The reference implementation is built on Ubuntu 22.04, and the tree also holds an ubuntu-20 directory, so both an older and a current base are present in the repository.
The root certificate authority is the part to read twice
SamuraiWTF generates a local root certificate authority during the build, used to secure internal training targets, and to properly simulate real-world pentesting scenarios you will need to import this CA into your browser.
The certificate lives at `/opt/samurai/SamuraiWTF_Root_CA.crt`, and the README gives the Firefox import steps: go to Settings or Preferences, search for certificates, click View Certificates, go to the Authorities tab, click Import and select the Root CA file, then check Trust this CA to identify websites.
The security warning that follows is not boilerplate. This Root CA should ONLY be trusted in browsers used for training within the SamuraiWTF VM. Never import this certificate on browsers used outside the VM or for regular web browsing, as it could compromise your browser security.
The reason is not hard to see. A root certificate authority that can sign any hostname means every site in that browser looks trustworthy to it, so a certificate authority trusted outside the lab would defeat the warnings your browser shows for genuinely untrusted sites.
The same applies to the ports and domains the lab uses. All targets installed with Katana will be configured in the `.test` primary domain, and all targets will use port 8443 for HTTPS connections. The `.test` domain is reserved for testing, so the lab's names never collide with real hostnames, and every lab service sits on one port.
Two network settings deserve mention as well. The default user and password for the environment are `samurai` and `samurai`, and the documentation notes this is the same for every build except the AWS Workspace, where you use your workspace credentials instead.
Building the image yourself with Vagrant and Packer
For an instructor who wants to change what is in the image, the repository has the pieces to build it.
The top level holds a Vagrantfile, a provision.sh script, a packer/ directory for building the base box, common/ for shared provisioning, docs/, experimental/ for things not yet settled, and the per-platform directories amazon-linux/, ubuntu-20/ and ubuntu-22/. There is a RELNOTES.md alongside the README, and a .gitmodules, so at least one component is a submodule.
The development notes describe the branch model. The integration branch is the one called `next`, which is where all new features and bug fixes go for testing before a planned release, and the `main` branch should be kept stable at all times. Larger changes should be done in separate feature branches, merging `next` into the feature branch and then raising a pull request to merge the feature branch into `next`.
The recovery instruction is the practical one: if you break `next` or `main`, fix it, and it is best to run a full test build, meaning `vagrant destroy` followed by `vagrant up`, and make sure tools and targets are working before pushing changes.
A destroy and up cycle is expensive, which tells you something about the cost of changing the base image. Most day to day work is done with Katana inside an already running machine, and the base box build is the slow path you take when the class structure changes.
Where this is the wrong tool
The limits here are sharp and worth stating plainly, because the project is easy to misread as a portable attack platform.
The first is that it is a training environment, not an engagement platform. The targets inside are intentionally vulnerable applications shipped on purpose. There is no assessment workflow, no scoping, no reporting, and the environment is built for one person per virtual machine on a course. Pointing it at a network you are not authorised to test is not a supported use, and the local root CA plus the default credentials make that misuse actively dangerous to the machine you run it on.
The second is the footprint. A student needs a machine capable of running a full security lab with a web scanner and several target applications, and the Hyper-V instructions ask for at least 4096 MB of RAM for the virtual machine alone. On a laptop, an instructor running two of these at once is already at the edge.
The third is the divergence between the image and the repository. The pre-built downloads are published to a bucket with published checksums, and the versions listed in the project metadata stop at v5.3 from 2023, while the README heading says Samurai Web Training Framework 6.0 and the last push was on 2026-07-27. The repository is the place where changes land; the images are artefacts built from it, and the documentation does not say how closely a given download tracks the current branch.
The alternative for the same teaching goal is to script the environment yourself. A handful of Docker Compose files plus a provisioning script gives you the same Juice Shop and ZAP with better control over versions and less to download, at the cost of the pre-built image and the Katana package management that a class of students can use without help. The trade is convenience against control, and for a course with a fixed roster the convenience usually wins.
Editorial conclusion
SamuraiWTF fits a security instructor who needs every student to have the same set of tools and deliberately vulnerable targets, because the virtual machine image and the Katana installer make that a single provisioning step rather than a documented setup each student performs. It does not fit a penetration test engagement, since the whole point is that the targets inside it are meant to be broken and the environment runs with root privileges. Before deploying it, read the root certificate authority section and keep the generated CA inside the lab, and remember that Katana is documented as not intended to be run in a secure or production environment.
Frequently asked questions
What is SamuraiWTF and what is Katana?
SamuraiWTF is the OWASP project that builds training virtual machines with security tools and vulnerable application targets, and it uses the Samurai Katana project to manage the installation and running of those tools and targets inside the virtual environment.
How do I install a target in a SamuraiWTF lab?
Use katana list to see the available packages, then katana install <package> and katana start <package>, for example katana install zap and katana install juice-shop followed by katana start juice-shop. The same actions are available through the web UI at https://katana.test.
What are the default credentials for the SamuraiWTF environment?
There is a default user and password for the environment, samurai and samurai, and this is the same for every build except the AWS Workspace, where you use your workspace username and password instead.
Why does the SamuraiWTF documentation warn about the root certificate authority?
The build generates a local root CA to secure the internal training targets so the labs look like real scenarios, and it has to be imported into the browser inside the VM. The documentation says it should only be trusted in browsers used for training within the VM, and never imported on browsers used outside it for regular web browsing.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/samuraiwtf-samuraiwtf)Was this useful?