Prerequisites
-
Providing
- Virtualbox
- Vagrant
- Vagrant plugins:
- vagrant-reload
- on some distributions also the vagrant plugins :
- winrm
- winrm-fs
- winrm-elevated
-
Provisioning with python
- Python3 (>=3.8)
- ansible-core==2.12.6
- pywinrm
-
Or provisioning With Docker
Install VirtualBox
- Download and install VirtualBox
- You can probably use the version of your package manager, but I would recommend using the latest one from Oracle.
Install Vagrant
- vagrant from their official site vagrant. The version you can install through your favorite package manager (apt, yum, …) is probably not the latest one.
- Install vagrant plugin vbguest if you want the guest addition:
vagrant plugin install vagrant-vbguest(not mandatory) - Vagrant installation is well described in the official vagrant page (tests are ok on 2.3.4)
- Some github issues indicate vagrant got some issues on some version and works well with 2.2.19 (
apt install vagrant=2.2.19)
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
- on some recent versions (ubuntu 23.04), you should consider running:
gem install winrm winrm-fs winrm-elevated
Install Ansible
Installing with pipx
pipx is a great way to avoid conflicting Python dependencies when installing applications. Installing ansible with pipx is documented here: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-and-upgrading-ansible-with-pipx.
pipx install --include-deps ansible
pywinrm is a library, so it needs to be installed with pip.
python3 -m pip install pywinrm
If you encounter any issue, try the virtualenv installation below.
- Install all the ansible-galaxy requirements:
- ansible windows
- ansible community.windows
- ansible chocolatey (not needed anymore)
- ansible community.general
ansible-galaxy install -r ansible/requirements.yml
Installing with a virtualenv
-
If you want to play ansible from your host or a linux vm you should launch the following commands :
-
Create a python >= 3.8 virtualenv
sudo apt install git
git clone https://github.com/Pennyw0rth/NetExec-Lab
cd Barbhack-2025/ansible
sudo apt install python3.8-venv
python3.8 -m virtualenv .venv
source .venv/bin/activate
- Install ansible and pywinrm in the .venv
- ansible following the extensive guide on their website ansible.
- Tested with ansible-core (2.12)
- pywinrm be sure you got the pywinrm package installed
python3 -m pip install --upgrade pip
python3 -m pip install ansible-core==2.12.6
python3 -m pip install pywinrm
- Install all the ansible-galaxy requirements
- ansible windows
- ansible community.windows
- ansible chocolatey (not needed anymore)
- ansible community.general
ansible-galaxy install -r ansible/requirements.yml
Install
Create the vms
- To create the VMs just run
cd ad/BARBHACK/providers/virtualbox
vagrant up
note: For some distributions, you may need to run additional commands to install WinRM gems this can be done via the following commands:
vagrant plugin install winrm
vagrant plugin install winrm-fs
vagrant plugin install winrm-elevated
- At the end of the vagrantup you should have the vms created and running
Launch provisioning with Ansible
- launch the provision script (launch ansible with failover on errors)
cd ansible
export ANSIBLE_COMMAND="ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory"
export LAB="BARBHACK"
../scripts/provisionning.sh
- or launch ansible directly
cd ansible/
ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory main.yml
Once install has finished disable vagrant user to avoid using it
cd ansible/
ansible-playbook -i ../ad/BARBHACK/providers/virtualbox/inventory_disablevagrant disable_vagrant.yml
Now do a reboot of all the machines to avoid unintended secrets stored / am looking at you Lsassy
cd ansible/
ansible-playbook -i ../ad/BARBHACK/providers/virtualbox/inventory_disablevagrant reboot.yml
Lab Information
Servers
| Hostname | IP Address | Role |
|---|---|---|
| BLACKPEARL | 192.168.10.10 | Domain Controller |
| JOLLYROGER | 192.168.10.11 | Web Server (Caddy 8080) |
| QUEENREV | 192.168.10.12 | MSSQL Server |
| FLYINGDUTCHMAN | 192.168.10.13 | Windows Server |
Domain
- Domain: PIRATES.BRB
- Domain Admin Password: REDqC8aQtyhd78A
Attack Path
- Web application enumeration (port 8080)
- Credential stuffing with found credentials
- NTLMv1 relay to LDAP
- SPN-less RBCD
- DPAPI credential recovery
- GMSA offline password recovery
- MSSQL impersonation
- S4U2Self privilege escalation
- Kerberos Constrained Delegation
- NTDS backup forensics
- Domain Admin!
.
Some troubles setting it up. i used UBUNTU25 Desktop on a HP Probook 8th Gen Laptop with 16GB
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox$ ls -la
total 40
drwxrwxr-x 3 bolke bolke 4096 Feb 1 10:03 .
drwxrwxr-x 5 bolke bolke 4096 Jan 30 21:52 ..
-rw-rw-r-- 1 bolke bolke 15740 Feb 1 10:03 ConfigureRemotingForAnsible.ps1
-rw-rw-r-- 1 bolke bolke 5211 Feb 1 09:57 Install-WMF3Hotfix.ps1
drwxrwxr-x 4 bolke bolke 4096 Jan 30 21:53 .vagrant
-rw-rw-r-- 1 bolke bolke 3260 Jan 30 21:52 Vagrantfile
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox$ vagrant up
Bringing machine 'BARBHACK2025-DC01' up with 'virtualbox' provider...
Bringing machine 'BARBHACK2025-SRV01' up with 'virtualbox' provider...
Bringing machine 'BARBHACK2025-SRV02' up with 'virtualbox' provider...
Bringing machine 'BARBHACK2025-SRV03' up with 'virtualbox' provider...
==> BARBHACK2025-DC01: Checking if box 'StefanScherer/windows_2022' version '2021.08.23' is up to date...
==> BARBHACK2025-DC01: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> BARBHACK2025-DC01: flag to force provisioning. Provisioners marked to run always will still run.
==> BARBHACK2025-SRV01: Checking if box 'StefanScherer/windows_2022' version '2021.08.23' is up to date...
==> BARBHACK2025-SRV01: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> BARBHACK2025-SRV01: flag to force provisioning. Provisioners marked to run always will still run.
==> BARBHACK2025-SRV02: Checking if box 'StefanScherer/windows_2022' version '2021.08.23' is up to date...
==> BARBHACK2025-SRV02: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> BARBHACK2025-SRV02: flag to force provisioning. Provisioners marked to run always will still run.
==> BARBHACK2025-SRV03: Checking if box 'StefanScherer/windows_2022' version '2021.08.23' is up to date...
==> BARBHACK2025-SRV03: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> BARBHACK2025-SRV03: flag to force provisioning. Provisioners marked to run always will still run.
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox$ vagrant status
Current machine states:
BARBHACK2025-DC01 running (virtualbox)
BARBHACK2025-SRV01 running (virtualbox)
BARBHACK2025-SRV02 running (virtualbox)
BARBHACK2025-SRV03 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox$ vagrant provision
==> BARBHACK2025-DC01: Running provisioner: shell...
BARBHACK2025-DC01: Running: ../../../../vagrant/Install-WMF3Hotfix.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-DC01: Running provisioner: shell...
BARBHACK2025-DC01: Running: ../../../../vagrant/ConfigureRemotingForAnsible.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-DC01: Running provisioner: shell...
BARBHACK2025-DC01: Running: inline PowerShell script
BARBHACK2025-DC01: Ok.
BARBHACK2025-DC01:
==> BARBHACK2025-SRV01: Running provisioner: shell...
BARBHACK2025-SRV01: Running: ../../../../vagrant/Install-WMF3Hotfix.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV01: Running provisioner: shell...
BARBHACK2025-SRV01: Running: ../../../../vagrant/ConfigureRemotingForAnsible.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV01: Running provisioner: shell...
BARBHACK2025-SRV01: Running: inline PowerShell script
BARBHACK2025-SRV01: Ok.
BARBHACK2025-SRV01:
==> BARBHACK2025-SRV02: Running provisioner: shell...
BARBHACK2025-SRV02: Running: ../../../../vagrant/Install-WMF3Hotfix.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV02: Running provisioner: shell...
BARBHACK2025-SRV02: Running: ../../../../vagrant/ConfigureRemotingForAnsible.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV02: Running provisioner: shell...
BARBHACK2025-SRV02: Running: inline PowerShell script
BARBHACK2025-SRV02: Ok.
BARBHACK2025-SRV02:
==> BARBHACK2025-SRV03: Running provisioner: shell...
BARBHACK2025-SRV03: Running: ../../../../vagrant/Install-WMF3Hotfix.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV03: Running provisioner: shell...
BARBHACK2025-SRV03: Running: ../../../../vagrant/ConfigureRemotingForAnsible.ps1 as C:\tmp\vagrant-shell.ps1
==> BARBHACK2025-SRV03: Running provisioner: shell...
BARBHACK2025-SRV03: Running: inline PowerShell script
BARBHACK2025-SRV03: Ok.
BARBHACK2025-SRV03:
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox$
.
VM’s created but not with all content
.
bolke@hacky:~/htb/barbhack2025$ nxc smb 192.168.10.10-13 SMB 192.168.10.10 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) SMB 192.168.10.11 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) SMB 192.168.10.12 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) SMB 192.168.10.13 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) Running nxc against 4 targets ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00 bolke@hacky:~/htb/barbhack2025$
.
bolke@hacky:~/htb/barbhack2025$ nxc smb 192.168.10.10 -u user.list -p pass.list --no-bruteforce --continue-on-success SMB 192.168.10.10 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) SMB 192.168.10.10 445 VAGRANT [-] vagrant\user.list:pass.list STATUS_LOGON_FAILURE bolke@hacky:~/htb/barbhack2025$ nxc smb 192.168.10.10 -id 2 --users SMB 192.168.10.10 445 VAGRANT [*] Windows Server 2022 Build 20348 x64 (name:VAGRANT) (domain:vagrant) (signing:False) (SMBv1:None) [19:46:43] ERROR Invalid database credential ID 2! connection.py:361 bolke@hacky:~/htb/barbhack2025$
..
note: For some distributions, you may need to run additional commands to install WinRM gems this can be done via the following commands:
bolke@hacky:~$ vagrant plugin install winrm
Installing the 'winrm' plugin. This can take a few minutes...
Installed the plugin 'winrm (2.3.9)'!
bolke@hacky:~$ vagrant plugin install winrm-fs
Installing the 'winrm-fs' plugin. This can take a few minutes...
Installed the plugin 'winrm-fs (1.3.5)'!
bolke@hacky:~$ vagrant plugin install winrm-elevated
Installing the 'winrm-elevated' plugin. This can take a few minutes...
Installed the plugin 'winrm-elevated (1.2.3)'!
bolke@hacky:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 80:e8:2c:14:2f:04 brd ff:ff:ff:ff:ff:ff
altname enx80e82c142f04
3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 58:a0:23:5c:d8:5c brd ff:ff:ff:ff:ff:ff
altname wlx58a0235cd85c
inet 192.168.178.53/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp0s20f3
valid_lft 2366sec preferred_lft 2366sec
inet6 2001:1c01:391a:6500:53a6:42df:5c4c:d597/64 scope global temporary dynamic
valid_lft 599968sec preferred_lft 81296sec
inet6 2001:1c01:391a:6500:f3d0:8d18:9e0:73d7/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 1209597sec preferred_lft 604797sec
inet6 fe80::c3af:e204:d3f:b60b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
altname enx0a0027000000
inet 192.168.10.1/24 brd 192.168.10.255 scope global vboxnet0
valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:0/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
bolke@hacky:~$
.
.
Launch provisioning with Ansible
- launch the provision script (launch ansible with failover on errors)
cd ansible
export ANSIBLE_COMMAND="ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory"
export LAB="BARBHACK"
../scripts/provisionning.sh
.
bolke@hacky:~/NetExec-Lab/Barbhack-2025$ ls
ad ansible barbhack-2025.jpg docs graph.mmd README.md scripts vagrant
bolke@hacky:~/NetExec-Lab/Barbhack-2025$ cd ansible/
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ansible$ ls
ad-acl.yml ad-gmsa.yml ad-parent_domain.yml ad-servers.yml barbhack2025.yml data.yml main.yml reboot.yml security.yml vulnerabilities.yml
ad-data.yml ad-members.yml ad-relations.yml ansible.cfg build.yml inventory.yml msqlsrv02.yml roles servers.yml
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ansible$ export ANSIBLE_COMMAND="ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory"
export LAB="BARBHACK"
../scripts/provisionning.sh
[+] Current coordinates: /home/bolke/NetExec-Lab/Barbhack-2025/ansible
[+] Preparing to deploy the Pirate Fleet for: BARBHACK
[+] The navigation charts are ready with the command: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory
[+] The Royal Navy is approaching. The fleet must be deployed before they catch us!
[+] Raising the Jolly Roger – initiating Pirate Fleet protocols!
[+] Voyage attempt: 0
[✓] The treasure is secured—the crew celebrates! Navigating the seas with a 30-minute voyage limit: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[WARNING]: Unable to parse /home/bolke/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox/inventory as an inventory source
[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
[DEPRECATION WARNING]: community.windows.win_http_proxy has been deprecated. win_http_proxy will be removed in a future release of this collection. Use ansible.windows.win_http_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
[DEPRECATION WARNING]: community.windows.win_inet_proxy has been deprecated. win_inet_proxy will be removed in a future release of this collection. Use ansible.windows.win_inet_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
PLAY [build all] *****************************************************************************************************************************************************************************
[started TASK: Gathering Facts on dc01]
[started TASK: Gathering Facts on srv01]
[started TASK: Gathering Facts on srv02]
[started TASK: Gathering Facts on srv03]
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution
fatal: [dc01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution
fatal: [srv01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution
fatal: [srv02]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution
fatal: [srv03]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution", "unreachable": true}
PLAY RECAP ***********************************************************************************************************************************************************************************
dc01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv02 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv03 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
[!] The Kraken has been released upon the Seven Seas! Navy ships jammed our signals! Retrying: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[+] Voyage attempt: 1
[✓] The treasure is secured—the crew celebrates! Navigating the seas with a 30-minute voyage limit: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[WARNING]: Unable to parse /home/bolke/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox/inventory as an inventory source
[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
[DEPRECATION WARNING]: community.windows.win_http_proxy has been deprecated. win_http_proxy will be removed in a future release of this collection. Use ansible.windows.win_http_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
[DEPRECATION WARNING]: community.windows.win_inet_proxy has been deprecated. win_inet_proxy will be removed in a future release of this collection. Use ansible.windows.win_inet_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
PLAY [build all] *****************************************************************************************************************************************************************************
[started TASK: Gathering Facts on dc01]
[started TASK: Gathering Facts on srv01]
[started TASK: Gathering Facts on srv02]
[started TASK: Gathering Facts on srv03]
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution
fatal: [dc01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution
fatal: [srv01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution
fatal: [srv02]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution
fatal: [srv03]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution", "unreachable": true}
PLAY RECAP ***********************************************************************************************************************************************************************************
dc01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv02 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv03 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
[!] The Kraken has been released upon the Seven Seas! Navy ships jammed our signals! Retrying: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[+] Voyage attempt: 2
[✓] The treasure is secured—the crew celebrates! Navigating the seas with a 30-minute voyage limit: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[WARNING]: Unable to parse /home/bolke/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox/inventory as an inventory source
[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
[DEPRECATION WARNING]: community.windows.win_http_proxy has been deprecated. win_http_proxy will be removed in a future release of this collection. Use ansible.windows.win_http_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
[DEPRECATION WARNING]: community.windows.win_inet_proxy has been deprecated. win_inet_proxy will be removed in a future release of this collection. Use ansible.windows.win_inet_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
PLAY [build all] *****************************************************************************************************************************************************************************
[started TASK: Gathering Facts on dc01]
[started TASK: Gathering Facts on srv01]
[started TASK: Gathering Facts on srv02]
[started TASK: Gathering Facts on srv03]
TASK [Gathering Facts] ***********************************************************************************************************************************************************************
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution
fatal: [dc01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname dc01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution
fatal: [srv01]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv01: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution
fatal: [srv02]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv02: Temporary failure in name resolution", "unreachable": true}
[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution
fatal: [srv03]: UNREACHABLE! => {"changed": false, "msg": "Task failed: Failed to connect to the host via ssh: ssh: Could not resolve hostname srv03: Temporary failure in name resolution", "unreachable": true}
PLAY RECAP ***********************************************************************************************************************************************************************************
dc01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv01 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv02 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
srv03 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
[!] The Kraken has been released upon the Seven Seas! Navy ships jammed our signals! Retrying: ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory build.yml
[!] The Kraken has been released upon the Seven Seas! The fleet has sunk after 3 failed attempts! Davy Jones claims his prize!
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ansible$
.
tried
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ansible$ ansible-playbook -i ../ad/BARBHACK/data/inventory -i ../ad/BARBHACK/providers/virtualbox/inventory main.yml
[WARNING]: Unable to parse /home/bolke/NetExec-Lab/Barbhack-2025/ad/BARBHACK/providers/virtualbox/inventory as an inventory source
[WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
[DEPRECATION WARNING]: community.windows.win_http_proxy has been deprecated. win_http_proxy will be removed in a future release of this collection. Use ansible.windows.win_http_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
[DEPRECATION WARNING]: community.windows.win_inet_proxy has been deprecated. win_inet_proxy will be removed in a future release of this collection. Use ansible.windows.win_inet_proxy instead. This feature will be removed from collection 'community.windows' version 4.0.0.
[ERROR]: The 'ansible.windows.win_domain' module has been removed. Use microsoft.ad.domain instead. This feature was removed from collection 'ansible.windows' version 3.0.0.
Origin: /home/bolke/NetExec-Lab/Barbhack-2025/ansible/roles/domain_controller/tasks/main.yml:10:3
8 when: two_adapters == "yes"
9
10 - name: Ensure that domain exists
^ column 3
bolke@hacky:~/NetExec-Lab/Barbhack-2025/ansible$
.
.
