Vulnerable Virtual Machines
Active Directory Setup
Domain Controller
-
Abre Virtualbox.
-
Haz clic en Machine > New.
-
Completa los detalles de la máquina:
- Nombre: Domain Controller.
- Tipo: Microsoft Windows.
- Versión: Windows 2019 (64-bit).
- Haz clic en Next.
- Establece 8192 MB como tamaño de memoria. Haz clic en Next.
- Selecciona Create a virtual hard disk now. Haz clic en Create.
- Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
- Selecciona Dynamically allocated. Haz clic en Next.
- Establece 50 GB como tamaño del disco. Haz clic en Create.
- Accede a Machine Settings > Network.
- Habilita Adapter 2.
- Configura la opción Attached to a Host-only Adapter.
- Haz clic en Ok.
-
Carga una ISO de Windows Server 2019 (64-bit) e instala el sistema operativo. El nombre de la máquina debe ser WIN2019DC y el usuario administrador:
- user: impact
- password: SuperSecure1
-
Accede a la máquina y ejecuta los siguientes comandos en un PowerShell con privilegios elevados:
# Install Active Directory feature
install-windowsfeature AD-Domain-Services
# Configure Active Directory domain
Import-Module ADDSDeployment
$safemodepwd = ConvertTo-SecureString SuperSecure1 -AsPlainText -Force
Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath "C:\Windows\NTDS" -DomainMode "7" -DomainName "acme.corp" -DomainNetbiosName "acme" -ForestMode "7" -InstallDns:$true -LogPath "C:\Windows\NTDS" -NoRebootOnCompletion:$false -SysvolPath "C:\Windows\SYSVOL" -SafeModeAdministratorPassword $safemodepwd -Force:$true
# Install Remote Server administration Tools pack (RSAT)
Install-WindowsFeature RSAT-ADDS
# Configure password policy
Set-ADDefaultDomainPasswordPolicy -Identity "acme.corp" -LockoutDuration 00:01:00 -LockoutObservationWindow 00:01:00 -ComplexityEnabled $false -ReversibleEncryptionEnabled $False -MinPasswordLength 4 -MaxPasswordAge 0
function AddADUser {
Param(
[string]$firstname,
[string]$lastname,
[string]$samAccountName,
[string]$password
)
$fullname = "{0} {1}" -f ($firstname , $lastname);
$principalname = "{0}.{1}" -f ($firstname, $lastname);
Write-Host "Creating $($samAccountName) User"
New-ADUser -Name $fullname -GivenName $firstname -Surname $lastname -samAccountName $samAccountName -UserPrincipalName $principalname@$Global:Domain -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force) -PassThru | Enable-ADAccount
}
$Global:Domain = "acme.corp"
$Global:Groups = @("Sales","Accounting","Executives","IT Admins","Marketing");
$Global:Users = @(@("Ruth", "Lane", "Iamthe1", "Sales"),@("John", "Perry", "blink182", "Accounting"),@("Philip", "Lahm", "Iamthe1", "Executives"),@("Suzanne", "Peacock", "ub2dkxau", "IT Admins"),@("Maude", "Murray", "w9nawku1", "Executives"),@("Lena", "Jackson", "iftzcx0a", "Executives"),@("Paul", "Compton", "29fra989", "Sales"),@("George", "Howell", "19vrzfnn", "Marketing"));
foreach ($group in $Global:Groups) {
Write-Host "Creating $($group) Group"
New-ADGroup -name $group -GroupScope Global
}
foreach ($user in $Global:Users) {
$SamAccountName = '{0}.{1}' -f $user[0],$user[1]
AddADUser $user[0] $user[1] $SamAccountName $user[2]
Add-ADGroupMember -Identity $user[3] -Members $SamAccountName
}
AddADUser "SQL" "Server" "mssql_svc" "trustno1"
Set-ADUser -Identity "mssql_svc" -PasswordNeverExpires $true -ChangePasswordAtLogon $false
Add-ADGroupMember -Identity Administrators -Members "mssql_svc"
setspn -a WIN2019DC/mssql_svc.acme.corp:60111 acme\mssql_svc
Set-ADAccountControl -Identity "john.perry" -DoesNotRequirePreAuth 1
Certificate Authority
-
Abre Virtualbox.
-
Haz clic en Machine > New.
-
Completa los detalles de la máquina:
- Nombre: Certificate Authority Server.
- Tipo: Microsoft Windows.
- Versión: Windows 2016 (64-bit).
- Haz clic en Next.
- Establece 8192 MB como tamaño de memoria. Haz clic en Next.
- Selecciona Create a virtual hard disk now. Haz clic en Create.
- Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
- Selecciona Dynamically allocated. Haz clic en Next.
- Establece 50 GB como tamaño del disco. Haz clic en Create.
- Accede a Machine Settings > Network.
- Habilita Adapter 2.
- Configura la opción Attached to a Host-only Adapter.
- Haz clic en Ok.
-
Carga una ISO de Windows Server 2016 (64-bit) e instala el sistema operativo. El nombre de la máquina debe ser WIN2016ADCS y el usuario administrador:
- user: impact
- password: SuperSecure1
-
Accede a la máquina y ejecuta los siguientes comandos en un PowerShell con privilegios elevados:
# Add Domain Controller as default DNS Server foreach ($c in Get-NetAdapter) { write-host 'Setting DNS for' $c.interfaceName ; Set-DnsClientServerAddress -InterfaceIndex $c.interfaceindex -ServerAddresses ('<Domain Controller IP')} # Join the domain $domainname = "acme.corp" $username = "acme.corp\impact" $password = "SuperSecure1" $pass = ConvertTo-SecureString $password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$pass Add-Computer -DomainName $domainname -Credential $cred -Force -PassThru -Verbose Restart-Computer -Force
-
Una vez reiniciada, accede a la máquina como administrador del dominio y ejecuta los siguientes comandos en un PowerShell con privilegios elevados:
$MachineName='WIN2016ADCS' $CACommonName = 'acme-{0}-CA' -f $MachineName # Enable SMB Sharing Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Any #Add user to remote users group Add-LocalGroupMember -Group "Remote Desktop Users" -Member "acme.corp\Domain Users" Install-WindowsFeature ADCS-Cert-Authority Install-AdcsCertificationAuthority -CAType EnterpriseRootCA -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -KeyLength 2048 -HashAlgorithmName SHA256 -ValidityPeriod Years -ValidityPeriodUnits 5 -CACommonName $CACommonName -Force Install-WindowsFeature ADCS-Web-Enrollment Install-AdcsWebEnrollment -Force Restart-Computer -Force
7. Valida que puedas acceder al servicio de inscripción web en http://win2016adcs.acme.corp/certsrv usando las credenciales de administrador.
Domain Member Server
-
Haz clic en Machine > New.
-
Completa los detalles de la máquina:
- Nombre: Domain WorkStation.
- Tipo: Microsoft Windows.
- Versión: Windows 10 (64-bit).
- Haz clic en Next.
- Establece 8192 MB como tamaño de memoria. Haz clic en Next.
- Selecciona Create a virtual hard disk now. Haz clic en Create.
- Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
- Selecciona Dynamically allocated. Haz clic en Next.
- Establece 50 GB como tamaño del disco. Haz clic en Create.
- Accede a Machine Settings > Network.
- Habilita Adapter 2.
- Configura la opción Attached to a Host-only Adapter.
- Haz clic en Ok.
-
Carga una ISO de Windows 10 (64-bit) e instala el sistema operativo. El nombre de la máquina debe ser WIN10VPN y el usuario administrador:
-
user: localuser
- password: EzPassword1234
-
Accede a la máquina y ejecuta los siguientes comandos en un PowerShell con privilegios elevados:
# Add Domain Controller as default DNS Server foreach ($c in Get-NetAdapter) { write-host 'Setting DNS for' $c.interfaceName ; Set-DnsClientServerAddress -InterfaceIndex $c.interfaceindex -ServerAddresses ('<Domain Controller IP')} # Join the domain $domainname = "acme.corp" $username = "acme.corp\impact" $password = "SuperSecure1" $pass = ConvertTo-SecureString $password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$pass Add-Computer -DomainName $domainname -Credential $cred -Force -PassThru -Verbose # Enable SMB Sharing Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True -Profile Any #Enable autologon $key = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" New-ItemProperty -Name AutoAdminLogon -Path $key -PropertyType DWord -Value 1 -Force New-ItemProperty -Name DefaultUserName -Path $key -Value "ruth.lane" -Force New-ItemProperty -Name DefaultPassword -Path $key -Value "Iamthe1" -Force New-ItemProperty -Name DefaultDomainName -Path $key -Value "acme.corp" -Force #Add user to remote users group Add-LocalGroupMember -Group "Remote Desktop Users" -Member "acme.corp\Domain Users"
-
Cierra sesión e ingresa como ACME\ruth.lane utilizando la contraseña Iamthe1.
Mail Client Configuration
Windows Default Mail App Configuration
Vamos a ver cómo configurar la Windows Default Mail App para usar esa máquina como objetivo de phishing en pruebas posteriores.
Add Account
Haz clic en Add Account y luego en Advanced Setup.
Advanced Setup options
Elige Internet email.
Account Details configuration
Configura los ajustes:
- Email address: ruth.lane@acme.corp
- User name: ruth.lane@acme.corp
- Password: Iamthe1
- Account name: Ruth
- Send your messages using this name: Ruth
- Incoming email server: IP de la máquina IMPACT
- Account type: POP3
- Outgoing (SMTP) email server: IP de la máquina IMPACT
- Outgoing server requires authentication: No
- Require SSL for incoming email: No
- Require SSL for outgoing email: No
Haz clic en Sign in.
Vulnerable Linux Machines
Metasploitable
-
Descarga la imagen de Linux Metasploitable 2.0.0.
-
Extrae los archivos en el directorio donde VirtualBox almacena las máquinas virtuales. Por defecto, C:\Users\
\VirtualBox VMs . -
Desde VirtualBox, haz clic en Machine > New.
-
Completa los detalles de la máquina:
-
Nombre: Webapps.
-
Tipo: Linux.
-
Versión: Ubuntu (64-bit).
-
Haz clic en Next.
-
Establece 1024 MB como tamaño de memoria. Haz clic en Next.
-
Selecciona Use an existing virtual hard disk file.
- Selecciona el archivo Metasploitable.vmdk recién extraído. Haz clic en Create.
- Desde la configuración de la máquina virtual, ve a Settings > Network y conecta la conexión de Adapter 1 al Host-only adapter.
-
-
Inicia la máquina virtual. El usuario y la contraseña son ambos msfadmin.
Ubuntu 14.04
-
Descarga la imagen Ubuntu Linux 14.04 ISO.
-
Haz clic en Machine > New.
-
Completa los detalles de la máquina:
- Nombre: Ubuntu.
- Tipo: Linux.
- Versión: Ubuntu (64-bit).
- Haz clic en Next.
- Establece 1024 MB como tamaño de memoria. Haz clic en Next.
- Selecciona Create a virtual hard disk now. Haz clic en Create.
- Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
- Selecciona Dynamically allocated. Haz clic en Next.
- Establece 10 GB como tamaño del disco. Haz clic en Create.
- Carga la ISO descargada previamente e instala el sistema operativo.
-
Desde la configuración de la máquina virtual, ve a Settings > Network y configura la opción Attached to a Host-only Adapter en el Adapter 1.
-
Reinicia la máquina.
Web Applications
Machine Creation
-
Descarga la Ubuntu Linux 18.04 ISO Image.
-
Haz clic en Machine > New.
-
Completa los detalles de la máquina:
- Nombre: Webapps.
- Tipo: Linux.
- Versión: Ubuntu (64-bit).
- Haz clic en Next.
- Establece 1024 MB como tamaño de memoria. Haz clic en Next.
- Selecciona Create a virtual hard disk now. Haz clic en Create.
- Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
- Selecciona Dynamically allocated. Haz clic en Next.
- Establece 10 GB como tamaño del disco. Haz clic en Create.
- Carga la ISO descargada previamente e instala el sistema operativo.
-
Inicia la máquina.
Machine Setup
- Actualiza los paquetes:
sudo apt-get -y update
- Instala el servidor web Apache:
sudo apt-get -y install apache2 sudo a2enmod rewrite sudo sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf sudo service apache2 restart
- Instala el servidor MySQL:
sudo apt-get -y install mysql-server
- Restablece la contraseña de root de MySQL:
sudo mysql -u root -e "use mysql;update user set authentication_string=PASSWORD('mutillidae') where user='root';update user set plugin='mysql_native_password' where user='root';flush privileges;"
- Instala PHP:
sudo apt-get -y install php libapache2-mod-php php-mysql php-curl php-mbstring php-xml sudo service apache2 restart
- Instala la versión vulnerable de Sudo:
sudo apt-get -y --allow-downgrades install sudo=1.8.21p2-3ubuntu1
-
Instalación de Mutillidae:
sudo cd /var/www/html/ sudo git clone --depth 1 --branch 2.8.11 https://github.com/webpwnized/mutillidae.git mutillidae #allow multillidae access from other hosts in subnet sudo sed -i "/Allow from 192 \.168\.0\.0\/16/a Allow from 10.10.1.0/24" ./mutillidae/.htaccess sudo service apache2 restart # trigger request to initialize mysql database sudo curl --silent --output /dev/null http://127.0.0.1/mutillidae/set-up-database.php
-
Instalación de DVWA:
sudo cd /var/www/html/
sudo git clone --depth 1 --branch 2.0.1 https://github.com/digininja/DVWA.git dvwa
sudo chmod -R 777 dvwa
sudo cp ./dvwa/config/config.inc.php.dist ./dvwa/config/config.inc.php
sudo sed -i '2 c $dvwa_WEBROOT = "/var/www/html/";' /var/www/html/dvwa/config/config.inc.php
sudo sed -i '20 c $_DVWA[ "db_user" ] = "root";' /var/www/html/dvwa/config/config.inc.php
sudo sed -i '21 c $_DVWA[ "db_password" ] = "mutillidae";' /var/www/html/dvwa/config/config.inc.php
sudo sed -i '35 c $_DVWA[ "default_security_level" ] = "low";' /var/www/html/dvwa/config/config.inc.php
sudo mysql -u root -pmutillidae -e "CREATE DATABASE IF NOT EXISTS dvwa"'
-
Desde la configuración de la máquina virtual, ve a Settings > Network y configura la opción Attached to a Host-only Adapter en el Adapter 1.
-
Reinicia la máquina.