Saltar a contenido

Vulnerable Virtual Machines

Active Directory Setup

Domain Controller

  1. Abre Virtualbox.

  2. Haz clic en Machine > New.

  3. Completa los detalles de la máquina:

    1. Nombre: Domain Controller.
    2. Tipo: Microsoft Windows.
    3. Versión: Windows 2019 (64-bit).
    4. Haz clic en Next.
    5. Establece 8192 MB como tamaño de memoria. Haz clic en Next.
    6. Selecciona Create a virtual hard disk now. Haz clic en Create.
    7. Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
    8. Selecciona Dynamically allocated. Haz clic en Next.
    9. Establece 50 GB como tamaño del disco. Haz clic en Create.
    10. Accede a Machine Settings > Network.
      1. Habilita Adapter 2.
      2. Configura la opción Attached to a Host-only Adapter.
      3. Haz clic en Ok.
  4. 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
  5. 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

  1. Abre Virtualbox.

  2. Haz clic en Machine > New.

  3. Completa los detalles de la máquina:

    1. Nombre: Certificate Authority Server.
    2. Tipo: Microsoft Windows.
    3. Versión: Windows 2016 (64-bit).
    4. Haz clic en Next.
    5. Establece 8192 MB como tamaño de memoria. Haz clic en Next.
    6. Selecciona Create a virtual hard disk now. Haz clic en Create.
    7. Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
    8. Selecciona Dynamically allocated. Haz clic en Next.
    9. Establece 50 GB como tamaño del disco. Haz clic en Create.
    10. Accede a Machine Settings > Network.
      1. Habilita Adapter 2.
      2. Configura la opción Attached to a Host-only Adapter.
      3. Haz clic en Ok.
  4. 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
  5. 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
    

  6. 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

  1. Haz clic en Machine > New.

  2. Completa los detalles de la máquina:

    1. Nombre: Domain WorkStation.
    2. Tipo: Microsoft Windows.
    3. Versión: Windows 10 (64-bit).
    4. Haz clic en Next.
    5. Establece 8192 MB como tamaño de memoria. Haz clic en Next.
    6. Selecciona Create a virtual hard disk now. Haz clic en Create.
    7. Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
    8. Selecciona Dynamically allocated. Haz clic en Next.
    9. Establece 50 GB como tamaño del disco. Haz clic en Create.
    10. Accede a Machine Settings > Network.
      1. Habilita Adapter 2.
      2. Configura la opción Attached to a Host-only Adapter.
      3. Haz clic en Ok.
    11. 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:

    12. user: localuser

    13. password: EzPassword1234
  3. 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"
    

  4. 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 addressruth.lane@acme.corp
  • User nameruth.lane@acme.corp
  • PasswordIamthe1
  • Account name: Ruth
  • Send your messages using this nameRuth
  • Incoming email server: IP de la máquina IMPACT
  • Account typePOP3
  • 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

  1. Descarga la imagen de Linux Metasploitable 2.0.0.

  2. Extrae los archivos en el directorio donde VirtualBox almacena las máquinas virtuales. Por defecto, C:\Users\\VirtualBox VMs.

  3. Desde VirtualBox, haz clic en Machine > New.

  4. Completa los detalles de la máquina:

    1. Nombre: Webapps.

    2. Tipo: Linux.

    3. Versión: Ubuntu (64-bit).

    4. Haz clic en Next.

    5. Establece 1024 MB como tamaño de memoria. Haz clic en Next.

    6. Selecciona Use an existing virtual hard disk file.

      1. Selecciona el archivo Metasploitable.vmdk recién extraído. Haz clic en Create.
      2. 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.
  5. Inicia la máquina virtual. El usuario y la contraseña son ambos msfadmin.

Ubuntu 14.04

  1. Descarga la imagen Ubuntu Linux 14.04 ISO.

  2. Haz clic en Machine > New.

  3. Completa los detalles de la máquina:

    1. Nombre: Ubuntu.
    2. Tipo: Linux.
    3. Versión: Ubuntu (64-bit).
    4. Haz clic en Next.
    5. Establece 1024 MB como tamaño de memoria. Haz clic en Next.
    6. Selecciona Create a virtual hard disk now. Haz clic en Create.
    7. Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
    8. Selecciona Dynamically allocated. Haz clic en Next.
    9. Establece 10 GB como tamaño del disco. Haz clic en Create.
    10. Carga la ISO descargada previamente e instala el sistema operativo.
  4. 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.

  5. Reinicia la máquina.

Web Applications

Machine Creation

  1. Descarga la Ubuntu Linux 18.04 ISO Image.

  2. Haz clic en Machine > New.

  3. Completa los detalles de la máquina:

    1. Nombre: Webapps.
    2. Tipo: Linux.
    3. Versión: Ubuntu (64-bit).
    4. Haz clic en Next.
    5. Establece 1024 MB como tamaño de memoria. Haz clic en Next.
    6. Selecciona Create a virtual hard disk now. Haz clic en Create.
    7. Selecciona VDI (VirtualBox Disk Image). Haz clic en Next.
    8. Selecciona Dynamically allocated. Haz clic en Next.
    9. Establece 10 GB como tamaño del disco. Haz clic en Create.
    10. Carga la ISO descargada previamente e instala el sistema operativo.
  4. Inicia la máquina.

Machine Setup

  1. Actualiza los paquetes:
    sudo apt-get -y update
    
  2. 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
    
  3. Instala el servidor MySQL:
    sudo apt-get -y install mysql-server
    
  4. 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;"
    
  5. Instala PHP
    sudo apt-get -y install php libapache2-mod-php php-mysql php-curl php-mbstring php-xml
    sudo service apache2 restart
    
  6. Instala la versión vulnerable de Sudo:
    sudo apt-get -y --allow-downgrades install sudo=1.8.21p2-3ubuntu1
    
  7. 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
    

  8. 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"'
  1. 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.

  2. Reinicia la máquina.