DetectionLab is tested weekly on Saturdays via a scheduled CircleCI workflow to ensure that builds are passing. This lab has been designed with defenders in mind. Its primary purpose is to allow the user to quickly build a Windows domain that comes pre-loaded with security tooling and some best practices when it comes to system logging configurations. It can easily be modified to fit most needs or expanded to include additional hosts.
NOTE: This lab has not been hardened in any way and runs with default vagrant credentials. Please do not connect or bridge it to any networks you care about. This lab is deliberately designed to be insecure; the primary purpose of it is to provide visibility and introspection into each host.
Also Read – Custom Header : Automatic Add New Header To Entire BurpSuite HTTP Requests
Primary Lab Features
\\wef\pslogsRequirements
Quickstart
Building DetectionLab from Scratch
There are currently three ways to build the lab:
If you choose to use the boxes hosted on Vagrant Cloud, you may skip steps 2 and 3. If you don’t trust pre-built boxes, I recommend following steps 2 and 3 to build them on your machine.
cd to the Packer directory and build the Windows 10 and Windows Server 2016 boxes using the commands below. Each build will take about 1 hour. As far as I know, you can only build one box at a time.$ cd detectionlab/Packer
$ packer build –only=[vmware|virtualbox]-iso windows_10.json
$ packer build –only=[vmware|virtualbox]-iso windows_2016.json
mv *.box ../Boxes cd into the Vagrant directory: cd ../Vagrant and edit the Vagrantfile. Change the lines cfg.vm.box = "detectionlab/win2016" and cfg.vm.box = "detectionlab/win10 to cfg.vm.box = "../Boxes/windows_2016_<provider>.box" and “cfg.vm.box = "../Boxes/windows_10_<provider>.box" respectively. vagrant plugin install vagrant-reload vagrant plugin install vagrant-vmware-desktop.vagrant plugin license vagrant-vmware-desktop <path_to_.lic>../build.sh (Mac & Linux) or ./build.ps1 (Windows). This script will do the following:Vagrant folder as vagrant_up_<host>.log. If filing an issue, please paste the contents of that log into a Gist to help with debugging efforts. The rsync command in Linux synchronizes files and directories between two locations, locally or over SSH. Unlike scp,…
The patch command in Linux applies a set of changes from a diff file to one or…
The basename command in Linux extracts the last component of a file path, removing the leading directory…
The timeout command in Linux runs a command with a time limit and terminates it when the limit is reached. It is part of GNU coreutils, available on virtually every Linux distribution. It is most useful for commands with no built-in timeout option, such as ping, curl, tcpdump, or a custom script that might hang indefinitely. How the timeout Command Works in Linux The syntax is: bashtimeout [OPTIONS] DURATION COMMAND [ARG]...…
The rmmod command in Linux removes a loaded module from the running kernel. Because the kernel has…
The free command in Linux gives you a quick summary of RAM and swap usage. It reads…