Setting Up A Local Lab


Software

After setting up the hardware and the layout of the lab, it's time to start filling it up with software, giving the lab some functionality. A few areas which you might want inside the lab are:

Operating Systems
Windows

Due to the license with which "Microsoft Windows" is distributed, a valid license needs to be purchased to cover the amount of instants installed.
However Microsoft offer a 'free downloadable' trial of various operating systems. This lets you try out the OS for a certain amount of time (for example: 120 days), after the trial period is up, if the OS hasn't been purchased, the OS will not function.
Trials for the following operating systems are available:
These links may become outdated after a period of time. Please get in contact with us if this is the case.

Alternatively a MSDN/Technet subscription can be purchased, allowing access to a wide range of windows versions, both being sold and discontinued.

UNIX & *NIX

In the beginning there was 'UNIX'. This name is trademarked and given to systems which meet 'Single UNIX Specification (SUS)'. (Using the term unix in any other manner isn't technically allowed)
From UNIX grew 'Berkeley Software Distribution (BSD)' (Sometimes called 'Berkeley Unix' or 'BSD UNIX') & similar UNIX Operation Systems, which didn't fully meet the specification. (From 'BSD UNIX' came 'Darwin', which is core of Apple OS X & iOS).
These similar style UNIX OSs included 'MINIX', 'Linux' & various of the 'BSD' which didn't fully meet their criteria. With the growth of these unix clones (referred to as '*NIX') variations formed, such as:
  • BSD - FreeBSD, OpenBSD, Solaris

  • Linux Debian-based - Example: Knoppix, Ubuntu
  • Linux Slackware-based - Example: Slax, S.u.S.E
  • Linux RPM-based - Example: Red hat, CentOS, Fedora
Wikipedia has a detailed list of the family tree of Linux which can be found here.
Websites have been setup and their goal is to track the updates of their releases, a good project is Distro Watch.

There is a wide range of operating systems which have been mentioned in the above lines, the vast majority of them are free & open source, however, there are a few which are commercial.
With this in mind, you're able to freely download & try many of the OS types. By using them they will help you build up UNIX & *NIX skills, giving you a deeper computer knowledge.
Upon doing pentest you'll come across various operating systems on your targets, so knowing the internal working of the OS is extremely useful. When doing exploit development, applications can perform differently on different OSs (Different memory offsets & protection mechanisms). Therefore, it is essential to have the same OS, that the target is using, installed in your lab which running the application you're trying to exploit.

Apple OS X

At the core OSX uses Darwin, which is based upon BSD UNIX.
This OS has been designed to use Apple's hardware (Using it on non-apple hardware is breaking their EULA). Various different virtualizing solutions (VMware Fusion & Parallel Desktop - however neither are free) support OSX as a guest OS allowing for a VM to be created on which to practise.