- Software Requirements
- New Standalone VM
- VM Provisioning
- Boot from ISO
- Server Configuration
- Boot
- Functionality Test
- Conclusion
Why would you want to do this?
Virtualization an operating system has many uses. You can isolate it for malware reverse engineering, use it as a target system in a cyber range, or simply try out some new software without wiping your current system.
Qubes OS runs on the Xen hypervisor which as a Level 1 hypervisor, running directly on the hardware device. Normal consumer computers are shipped in a hardware, software pair where the physical device comes with the operating system. The Qubes virtualization systemt takes the place of the traditional operating system.
Inside of this hypervisor we can run multiple virtual machines that each have their own operating system. The default virtual machine images are all Linux-based, but you can add any othe system that you can install on other computers as well. This quick guide goes through installing a Windows server on one of these virtual Machines. Consequently I assume that the reader has a working knowledge and ability to navigate the Qubes OS environment. if you are not there yet, please visit the official Qubes OS Documentation site.
Software Requirements
The software version that we are installing is the Windows Server 2022 Evaluation edition. Syou will need to download one from the Microsoft website.
The documentation for Windows Server 2022 asks for 1 GB of ram with the stipulation that you can change this to 800MB after installation is complete. It also asks for 32 GB of hard drive storage. We will need to keep this in mind when we are configuring our VM resources.
Create a New Standalone VM :
We are creating a standalone VM because the OS that we are installing is not based on any of the templates that we have pre-installed on the OS. You can read more about templates here.
Choose a name
select the “Do not clone” button as we are not booting from any existing template.
click “Create”

A window for a boot drive pops up, don’t click on anything as we have to edit the VM properties before we attempt an install from the .ISO file.
Provisioning the RAM and disk space:
Before we install the image we want to edit the resources that will be provisioned for the Vm. I chose to add more RAM than was initially rquired so thta the install process would go faster.
Open up the settings for the newly-created qube and change the system storage size to 32 GB

Under the “Advanced” Tab, edit the Initial and Maximum memory to 2000MiB.
Click the checkbox for “Include in memory balancing”
I’m leaving the vcpu at 2 for the install, we can change it later
Check “Disposable Template”
Click “OK” and go back to the ISO selection screen from the previous step

Boot from the ISO:
Now that we have our resouces provisioned, we need to run our installer from our installation medi (the .iso file).
Select the “from file in qube” button.
Select the qube that you have the .ISO file stored from the dropdown menu

Click the three dots “…” button to open up the file selection window.
If the qube with the ISO is not already running it will be started.
Select the ISO and hit “OK”.

You should see the iso file in the “Boot from Device” window.
Press “OK” to boot the qube from the server ISO.

Server Configuration:
Splash screens when you boot up the server. We still need to go through the WIndows Server installation and setup process. This should be very familiar to anyone that is familiar with Windows.


The server boots to an install Page, you can click “Next.

If you see another window with the button “Install Now”, you can click it.
It then asks you to select the operating system, select whatever version you would like to install, then click “Next”.

Accept the EULA and click “Next”

On the next page, select “Custom: Install Microsoft Server Operating System only” as we are setting up a base OS that we can revert to when we are done with our experiments.
Select the 32 GB drive, then hit “Next”.

Windows Server will install itself then power down the Qube.


First Boot:
Open up the settings for our VM and change the memory to 800MiB and the VCPUs to 1.
Click “Ok”

Start the Qube
It should open up to a screen prompting you to change the administrator password.
press “Enter”.

You can change the password to whatever you want it to be, I used “Password1”.
After confirming the password change you are brought to the SConfig page

Type the number 15 (corresponding to the “Exit to command line(Powershell) prompt)
Press “Enter”
The server is now up and running and you should see the Powershell console.
Functionality Test:
I just like to do a quick Ping test to confirm that the server is functioning with proper connectivity. By running the ping command to google we can see that our server has internet connectivity.
ping www.google.com

Conclusion
Now we have a base VM template that we can build out for any testing purposes that we need. Remember, don’t make any software changes to this VM template as it serves as our clean copy to always revert to. You should create disposable VMs from this template, add any required packages for testing, then connect it to your offline range network for running your tests. This base image can also be used for gaining familiarity with the native services on the Windows operating system.