NodeZero Host Virtual Machine (OVA/VHD)
The NodeZero Host virtual appliance is a small virtual machine based on a pre-configured Ubuntu 20.04 installation. It’s designed to execute NodeZero pentests and bundles tools that facilitate pentest execution, as well as debug and maintenance.
Always verify the files download come from Horizon3.
VMWare/Virtualbox importable OVA
Windows Hyper-V importable VHD
The NodeZero host virtual machine comes pre-configured to use these resources:
- 2 x CPUs
- 8GB of RAM
- 40GB of disk
- Bridged network adapter
Before Setting Up
If your environment restricts access to external sites through an outbound proxy or similar mechanism, please make sure that it allows connections to the following sites:
Installing the virtual machine is a matter of importing the OVA file from the download link above into the virtualization environment. We provide the following set of steps as an example to use with VMWare’s vSphere client or with VirtualBox.
vSphere client is one of VMWare’s virtual environment management solutions. You can find more information on the client itself in VMWare’s documentation.
The following steps are for vSphere client version 7.0.3.00500.
- Log into your VMWare vSphere client.
- Select Deploy OVF Template from the Actions menu.
- Select the Local File option
- Click the
Upload Filesbutton to locate the OVA file downloaded in step #1.
- Give your VM a name if you want it to be different from the default, and select a location to deploy to. Click Next.
- Select the compute resources you’ll be using. Click Next.
- Verify the import settings are correct and that the signature is from Horizon3. Click Next.
- Select the storage destination. Click Next.
- Select a network to use. Click Next.
- Review your selections. Click Finish.
- To launch the VM, select it from the list on the left and click the
- Open VirtualBox.
- Click on
- Enter the location of the OVA file. Click Continue.
- Click Import wait for it to complete.
- Make sure you use a bridged network adapter:
- Select the newly imported NodeZero virtual machine from the list on the left.
- Confirm that
Attached tois set to
- Confirm that
Nameis set to the name of the adapter connected to your internal network.
- Click OK.
- Select the NodeZero virtual machine from the list on the left.
- Launch the VM by clicking
There are known issues with VirtualBox network bridges over wireless adapters in newer MacOS versions. If you’re experiencing connectivity problems, consider using a wired connection instead.
- Ensure Hyper-V has both the Management Tools and Platform enabled and installed. See Windows docs for more info
- Create a virtual machine. From the Hyper-V manager's menu bar, select
Action > New > Virtual Machine...
- In that New Virtual Machine Wizard enter a name for the new virtual machine for use in Hyper-V
- Select the virtual machine as
- Select the amount of memory to use for the virtual machine. Set startup memory to
8192or greater. Note: Dynamic memory can be used or disabled, per customer's environment standards.
- Select a network to have NodeZero run in. Ensure the network connection is to a production network where a real IP is given (DHCP) or an assigned IP (Static) can connect. NOTE: Hyper-V's default switch setting will NOT work
- Select the virtual hard disk (vhd). Select
Use an existing virtual hard diskand browse to the NodeZero-xxx.vhd file that you recently downloaded
- Review the information is correct
- From the Hyper-V manager select the newly created virtual machine and click Connect
- A new window will show the virtual machine and select Start to initialize a new NodeZero host virtual machine.
If using vSphere, once the host is powered on, the client interface gives the option of using a web console or a remote console.
If using VirtualBox/Hyper-v, after starting the VM, a new display window appears that shows the operating system load screen.
With either system, once the OS fully loads, there will be a login screen that looks like this:
Username and First Login
When first launching the NodeZero host, SSH password access is disabled until the host is initially logged into and updates the default password.
Login with these credentials:
When successful, there will be a prompt like the one below:
You are required to change your password immediately (administrator enforced) Changing password for nodezero. Passwords require min 14 characters and must include at least 1 Digit, 1 Special, 1 Upper and 1 Lower Case Current password:
Enter the password from step #1 and hit enter.
Next there will be a prompt for
New password:, enter a secure password that can be used from now on and hit enter.
Finally confirm the password with
Retype new password:, enter the same password and hit enter.
Once password has been successfully changed, the user is logged into the host. Make sure to keep that password for use in the future.
Once the login process completes, there will be a message of
Enabling SSH password authentication displayed. At this point SSH has been enabled on the host and it may be accessed using an SSH client.
To enable SSH on the host, connect to the host over a management console and change the default password for the user
nodezero as described in the previous step. Once that is done SSH will be enabled on the host.
To connect over SSH with Linux or MacOS, run the command below, replacing
<IP_ADDRESS> with the one shown in the login screen.
If using Windows, a client like PuTTY will be needed to connect. Fill out the
Host Name (or IP Address) field with the address shown in the login screen.
The NodeZero host virtual machine comes with a script for setup and maintenancece of the host. To invoke it, type
n0 into the command prompt and a menu like the one below will be presented.
1) Check Environment 2) System Info 3) Configure Static IP 4) Configure Network Proxy 5) Update 6) Set Timezone 7) Version Info q) Exit Choose an option: _
The following sections provide more information on what these options do.
This runs NodeZero's checkenv.sh script to verify the host has the required configuration and settings as well as access externally to the required sites.
Displays basic system information about the host such as CPUs, Memory and Network settings
Configure Static IP / Configure DHCP
By default the NodeZero host virtual machine comes with DHCP enabled. The option here will toggle between
Configure Static IP and
This defaults to
Configure Static IP to switch from using DHCP to static ips. Once selected follow the prompts to configure a new IP address, Subnet, Gateway and DNS nameserver
If there is a need to switch back to DHCP, it can be selected with same option number which will show
Configure Network Proxy
Super User Needed
Must switch users with
sudo su before running
n0 for the changes to system proxy to take effect.
Follow the steps in the prompt to setp a proxy server for HTTP and HTTPS traffic. The user must log out and back in before the changes takes effect.
This does three things:
- Updates the underlying OS, mostly for getting the latest security patches
- Pulls the latest
h3-cliwhile preserving the current configuration
- Updates the
Ensure Latest Updates
It is suggested to run the update option two times back-to-back to ensure the latest updates are retrieved and implemented
Allows for setting the timezone on the host. Currently supports UTC, GMT, US and EU timezones
Prints the version of
n0 being used
Exits the prompt inface of
Running a NodeZero Pentest
- Log into the Horizon3 web portal
- Create a new pentest providing the relevant setup information.
- Copy and paste the curl command from the portal into the shell of a NodeZero host.
- The pentest starts executing like the in the screenshot below.
NodeZero supports automating the running of itself through the use of the
h3-cli and setting up a runner on the host. This can be done by following the steps for setting up a runner