Ripristinare un accesso amministrativo su una macchina virtuale

Questo post nasce da una richiesta (Problema – teo_78) sul forum di Sysadmin.it circa la possibilità di poter accedere ad una macchina virtuale Windows 7 come amministratore locale nel caso si siamo smarrite le credenziali dell’utente amministratore (in Windows Vista e Windows 7 per sicurezza l’account Administrator è disabilitato per default perché tale utente disattiva alcune importanti feature di sicurezza come ad esempio Internet Explorer Protected Mode e la  UAC).

La necessità di configurare un accesso amministrativo locale legittimo può nascere dal fatto che abbiamo o semplicemente dimenticato la password dell’account amministratore creato durante l’installazione del sistema o abbiamo ereditato una VM da un precedente amministratore di sistema e non abbiamo modo di farci comunicare le credenziali di accesso amministrativo.

Di seguito riporto i passaggi che possiamo seguire per creare una accesso amministrativo sulla basandosi su una modifica offline del registro di configurazione della VM:

  1. Connetrsi
  2. Aprire Gestione Computer (compmgmt.msc) su di un PC W7 o WS2008R2 (volendo è possibile anche us.
  3. Aprire il nodo Archiviazione – Gestione Disco.
  4. Connettere il vhd della VM tramite la voce del menu contestuale Collega file VHD. in modo da averlo disponibile con fosse un disco fisico. Di seguito si farà riferimento al disco virtuale della VM collegato con l’unità Z:.
  5. Aprire Regedit e tramite la voce del menù File Carica hive aprire il file Z:\Windows\System32\config\SYSTEM per connettersi al registro si sistema della VM. Dare alla connessione al registro di sistema della VM il nome VM-System.
  6. Aprire la chiave HKEY_LOCAL_MACHINE\VM-System\Setup.
  7. Impostare il valore SetupType a 2.
  8. Impostare il valore CmdLine a cmd.exe.
  9. Scaricare l’hive HKEY_LOCAL_MACHINE\VM-System\Setup tramite Scarica hive del menù File e chiudere Regedit.
  10. Scollegare il VHD della VM tramite la voce del menu contestuale Scollega file VHD del nodo Archiviazione – Gestione Disco in Gestione Computer.
  11. Avviare la VM che dopo il boot mostrerà una finestra del prompt dei comandi.
  12. Abilitare l’account Admnistrator con il comando:
    net user administrator /active:yes
  13. Impostare una password per l’account administrator con il comando:
    net user administrator <password>
  14. Digitare Exit per accedere con l’account Administrator locale.
  15. Creare un nuovo account amministratore locale e disabilitare nuovamente l’account Administrator.

Note:

  1. Volendo è possibile anche usare computer con sistemi operativi precedenti per collegare disco virtuale VHD della VM, a riguardo si veda Mount di dischi virtuali (.VHD).
  2. In alternativa ai passaggi 12 e 13 è possibile modificare la password dell’account amministratore esistente con il comando net user <username> <password>
  3. In realtà la procedura è applicabile ad una macchina fisica basta ad esempio connettere su una macchina diversa il disco di sistema o avviarla tramite un LiveCD. Per informazioni su come costruire un LiveCd Windows di veda la guida Windows LiveCD.
  4. Il procedimento si basa sull’utilizzo della chiave di registro HKLM\System\Setup utilizzata ad esempio da SysPrep (How to Disable Mini-Setup Wizard on a Computer on Which You Used Sysprep) o nel deploy unattended (The Windows Vista Setup program runs a script file to enable custom deployment tasks).
    • In particolare la chiave SetupType può assumere i valori:
      • 0 = Mostra la schermata di login (Default).
      • 1 = Esegue la un comando specificato in CMDLine e poi esegue il Reboot.
      • 2 = Esegue la un comando specificato in CMDLine e mostra la schermata di login.
    • La chiave di registro SetupType è usata dal processo Winlogon.exe per determinare se il sistema è in modalità di Setup. Una volta che il programma di Setup ha eseguito lo script rimuove il valore di questa chiave di registro portandola al valore di default (0).

Conclusioni:

  1. Questa procedura può tornare utile in situazioni in cui abbiamo smarrito o non abbiamo modo di conoscere utente amministrative di VM di nostra proprietà non in dominio. Per quanto riguarda VM in dominio ovviamente basterà utilizzare un account amministratore di dominio (che per default durante la join al dominio vengono aggiunti al gruppo degli Administrators local) per autenticarsi e modificare la password dell’amministratore locale o per crearne uno nuovo.
  2. Inevitabilmente la possibilità di creare un accesso amministrativo se sia ha fisicamente accesso ad un file VHD di una VM pone dei problemi di sicurezza. Infatti occorre proteggere l’accesso fisico ai file VHD delle VM e ai backup di questi (come dicevo nella sessione Best Practices per l’esecuzione di ruoli e servizi in Hyper-V del 9 dicembre 2010 al Technet Comunity Tour 2010 a Torino) perché chi ha accesso fisico ai VHD di una VM ha di fatto la possibilità di accedere ai dati in essi contenuti (e questo vale anche per i sistemi fisici).
  3. Se vogliamo proteggere maggiormente i nostri VHD tramite Bitlocker a riguardo si vedano:
  4. Per quanto riguarda l’uso di Bitlocker in Hyper-V si tengano presenti le seguenti:
    • Use BitLocker on  the Hyper-V in the parent partition. Do not run BitLocker within a virtual machine. BitLocker is NOT SUPPORTED within a virtual machine”.
    • Any configurations and VHDs that are created and stored on a BitLocker-encrypted physical disk volume receive BitLocker protection, regardless of the operating systems that are running on those virtual machines. This means supported non-Windows and legacy Microsoft operating systems benefit from the same BitLocker protection when they run as guest operating systems of Windows Server 2008 Hyper-V”.