Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
qvm-create-windows-qube — Avvia nuove Windows qubes rapidamente, senza sforzo e in modo sicuro su Qubes OS | Kitploit
Strumenti/GitHubGitHub/qubesos/qvm-create-windows-qube
OSINT (Open Source Intelligence)Virtualizzazione per la SicurezzaPrivacy
GitHubqubesos/qvm-create-windows-qube

qvm-create-windows-qube

Avvia nuove Windows qubes rapidamente, senza sforzo e in modo sicuro su Qubes OS

Vedi RepositorySito web
40349161 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Logo

Qvm-Create-Windows-Qube

Avvia rapidamente, senza sforzo e in modo sicuro nuove qube Windows

Build Travis CI Licenza Realizzato per Qubes OS

Informazioni

Qvm-Create-Windows-Qube è uno strumento per installare rapidamente e comodamente nuove qube Windows pulite con i driver Qubes Windows Tools (QWT) inseriti automaticamente. Supporta ufficialmente Windows 7, 8.1 e 10, oltre a Windows Server 2008 R2, 2012 R2, 2016 e 2019.

Il progetto enfatizza correttezza, sicurezza e il trattamento di Windows come sistema operativo guest non fidato durante tutto il processo. L'installazione avviene al 100% in isolamento (air-gapped) e offre un'integrazione opzionale con Whonix sulla qube Windows finita per una maggiore privacy. Raggiungere questi obiettivi con il minor numero possibile di righe di codice per garantire semplicità e minimalismo è fondamentale.

Offre anche altre comodità come l'installazione automatica di pacchetti tra cui Firefox, Office 365, Notepad++, Visual Studio e altri usando Chocolatey per permetterti di iniziare rapidamente a lavorare nel tuo nuovo ambiente.

Presentato su: Favicon di Hacker News Hacker News | Orgogliosamente classificato tra i primi 10 nella prima pagina di Hacker News e primo posto per Show HN

Installazione

  1. Scarica lo script di installazione aprendo il link, cliccando con il tasto destro e selezionando "Salva [Pagina] con nome..."
  2. Copia install.sh in Dom0 eseguendo il seguente comando in Dom0:
    • qvm-run -p --filter-escape-chars --no-color-output <name_of_qube_script_is_located_on> "cat '/home/user/Downloads/install.sh'" > install.sh
    • Assicurati di prendere tutti gli apici singoli e doppi
  3. Controlla il codice di install.sh per garantirne l'integrità
    • Più sicuro con il filtro dei caratteri di escape abilitato nel passaggio precedente; qvm-run lo disabilita per impostazione predefinita quando l'output è un file
  4. Esegui chmod +x install.sh && ./install.sh
    • Nota che questo installerà i pacchetti nel TemplateVM globale predefinito, che di default è fedora-XX
  5. Controlla il codice del file risultante /usr/bin/qvm-create-windows-qube

Aggiornamento

Per aggiornare Qvm-Create-Windows-Qube, inizia semplicemente eliminando la VM windows-mgmt e il programma principale eseguendo il seguente comando in Dom0:

qvm-remove -f windows-mgmt && sudo rm /usr/bin/qvm-create-windows-qube

Infine, segui i passaggi di installazione sopra per reinstallare.

Nota che questo eliminerà anche qualsiasi ISO di Windows già scaricata. Questo potrebbe essere desiderabile nel caso in cui Microsoft abbia aggiornato le ISO di Windows (il che significa che dovresti comunque riscaricarle). Tuttavia, se vuoi evitare di riscaricare le ISO di Windows, naviga semplicemente in /home/user/qvm-create-windows-qube/windows/isos nella VM windows-mgmt e copia il suo contenuto in un'altra qube (preferibilmente disposable). Dopo aver completato la reinstallazione, copia quelle ISO di nuovo in windows-mgmt nella directory menzionata.

Utilizzo```

Usage: qvm-create-windows-qube [options] -i -a -h, --help -c, --count Number of Windows qubes with given basename desired -t, --template Make this qube a TemplateVM instead of a StandaloneVM -n, --netvm NetVM for Windows to use -s, --seamless Enable seamless mode persistently across reboots -o, --optimize Optimize Windows by disabling unnecessary functionality for a qube -y, --spyless Configure Windows telemetry settings to respect privacy -w, --whonix Apply Whonix recommended settings for a Windows-Whonix-Workstation -p, --packages Comma-separated list of packages to pre-install (see available packages at: https://chocolatey.org/packages) -P, --pool LVM storage pool to install Windows on (https://www.qubes-os.org/doc/secondary-storage/) -i, --iso Windows media to automatically install and setup -a, --answer-file Settings for Windows installation

root@kitploit:~
### Scaricare l'ISO di Windows

Mido (`mido.sh`) è il downloader sicuro di Microsoft Windows (per Unix), ispirato da [Fido](https://github.com/pbatard/Fido) di [Rufus](https://github.com/pbatard/rufus). È in grado di automatizzare il processo di download per alcune ISO di Windows che Microsoft ha dietro un'[interfaccia web di download con porta girevole](https://www.microsoft.com/en-us/software-download/windows10ISO). Mido è robusto e scarica in modo sicuro le ISO di Windows da utilizzare con Qvm-Create-Windows-Qube dai server ufficiali Microsoft. Si trova in `/home/user/qvm-create-windows-qube/windows/isos/mido.sh` in `windows-mgmt`.

`windows-mgmt` è isolato dalla rete (air gapped). Ciò significa che per eseguire il download in modo sicuro, è necessario copiare lo script `mido.sh` in un altro qube (usa e getta) e poi trasferire le nuove ISO scaricate in `windows-mgmt` e posizionarle nella directory `/home/user/qvm-create-windows-qube/windows/isos`. In alternativa, `windows-mgmt` può ricevere temporaneamente accesso alla rete, ma ciò non è raccomandato per motivi di sicurezza.

Una volta generate, le ISO di Windows vengono memorizzate nella cache in `/home/user/qvm-create-windows-qube/windows/out` per un utilizzo successivo. Se si scarica una ISO aggiornata con Mido, assicurarsi di rimuovere la stessa ISO dalla suddetta directory della cache. Ciò farà sì che la cache venga rigenerata dalla ISO aggiornata.

Per i lettori più esperti: Qvm-Create-Windows-Qube adotta un approccio generico alla gestione delle ISO che può funzionare con qualsiasi ISO di Windows. Se si desidera utilizzare una propria ISO di Windows, probabilmente sarà sufficiente una piccola modifica al file di risposta più simile (in particolare la chiave `/IMAGE/NAME`). È possibile ottenere i valori validi di `/IMAGE/NAME` per la propria ISO analizzando il file `install.wim` al suo interno utilizzando il comando `wiminfo` (disponibile come `wimlib-utils` su Fedora o `wimtools` su Debian) o da Windows utilizzando Windows ADK.

### Creazione della VM Windows

**Importante:** assicurati di leggere la sezione [Problemi noti degli strumenti Windows di Qubes](https://github.com/ElliotKillick/qvm-create-windows-qube#qubes-windows-tools-known-issues) più avanti per un piccolo problema a monte.

#### Windows 10

*[Dimostrazione video](https://www.youtube.com/watch?v=cCi2MOUwS_Q)*

`qvm-create-windows-qube -n sys-firewall -oyp firefox,notepadplusplus,office365proplus -i win10x64.iso -a win10x64-pro.xml work-win10`

`qvm-create-windows-qube -n sys-firewall -oyp steam -i win10x64.iso -a win10x64-pro.xml game-console`

#### Windows Server 2019

`qvm-create-windows-qube -n sys-firewall -oy -i win2019-eval.iso -a win2019-datacenter-eval.xml fs-win2019`

#### Windows 10 Enterprise LTSC

- Una versione più stabile, miniaturizzata, sicura e privata di Windows 10 fornita ufficialmente da Microsoft
- Questa versione di Windows 10 è consigliata per chi necessita del meglio in termini di sicurezza e privacy di Windows

`qvm-create-windows-qube -n sys-firewall -oyp firefox,notepadplusplus,office365proplus -i win10x64-enterprise-ltsc-eval.iso -a win10x64-enterprise-ltsc-eval.xml work-win10`

`qvm-create-windows-qube -n sys-whonix -oyw -i win10x64-enterprise-ltsc-eval.iso -a win10x64-enterprise-ltsc-eval.xml anon-win10`

#### Windows 7

- Non consigliato perché Windows 7 [non è più supportato](https://github.com/ElliotKillick/qvm-create-windows-qube#advisories) da Microsoft, tuttavia è l'unico sistema operativo desktop che il driver GUI di Qubes (in Qubes Windows Tools) supporta se è necessaria l'integrazione senza soluzione di continuità delle finestre o il ridimensionamento dinamico

*[Dimostrazione video](https://www.youtube.com/watch?v=duUM1VLrXIQ)*

`qvm-create-windows-qube -n sys-firewall -soyp firefox,notepadplusplus,office365proplus -i win7x64-ultimate.iso -a win7x64-ultimate.xml work-win7`

## Sicurezza

Qvm-Create-Windows-Qube è "ragionevolmente sicuro" come [Qubes](https://www.qubes-os.org) lo intende.

- `windows-mgmt` è isolato dalla rete
- L'intero processo di configurazione del qube Windows viene eseguito in isolamento dalla rete
    - Eccezione: se (e solo se) sono configurati pacchetti da installare, a Windows verrà concesso l'accesso a Internet alla fine dell'installazione del qube Windows
- Intera classe di vulnerabilità di command injection eliminata nello script shell di Dom0 non permettendogli di analizzare alcun output dal qube `windows-mgmt` non fidato
    - Vengono passati solo codici di uscita da `qvm-run`; nessuna variabile
    - Questo mitiga anche le conseguenze di un'altra vulnerabilità Bash [Shellshock](https://en.wikipedia.org/wiki/Shellshock_(software_bug))
- Il download delle ISO di Windows è reso sicuro imponendo:
    - Le ISO vengono scaricate direttamente dai sottodomini controllati da Microsoft di `microsoft.com`
    - HTTPS TLS 1.2/1.3
    - Verifica SHA-256 dei file dopo il download
        - Ogni file viene salvato con l'estensione `.UNVERIFIED` finché non si è certi che il suo checksum corrisponda
    - Mido è scritto in modo robusto in POSIX sh (verrà utilizzata la shell Dash minima se disponibile) in modo che l'interazione con l'interfaccia web di download con porta girevole di Microsoft sia più sicura
        - Per maggiore sicurezza, potrebbe essere eseguito anche in una shell Rust conforme a POSIX (es. nsh) con coreutils Rust (es. uutils). Questa non è la configurazione predefinita.
- Windows viene trattato come sistema operativo guest non fidato per tutto il percorso
- L'impatto di eventuali vulnerabilità teoriche nella gestione della ISO di Windows (es. vulnerabilità nell'analisi del filesystem) o del file di risposta è limitato a `windows-mgmt`
- Tutti i commit dei manutentori sono sempre firmati con le rispettive chiavi PGP
    - Se la firma dovesse cessare, considerare compromesso
    - Attuale manutentore 1: [Elliot Killick](https://github.com/ElliotKillick)
        - Chiave PGP ([sottochiave per firma del codice](https://keys.openpgp.org/search?q=EEEE+6403+CE85+0791+ECB1+F820+7C4E+CB25+B6B1+C0DE)): EEEE 6403 CE85 0791 ECB1 F820 7C4E CB25 B6B1 C0DE
        - Email: [[email protected]](https://keys.openpgp.org/search?q=contact%40elliotkillick.com)
        - Questa chiave è nuova a partire dal 28 maggio 2024
    - Attuale manutentore 2: [Frédéric Pierret](https://github.com/fepitre)
        - Chiave PGP: 9FA6 4B92 F95E 706B F28E 2CA6 4840 10B5 CDC5 76E2
        - Email: [[email protected]](https://keys.openpgp.org/search?q=frederic.pierret%40qubes-os.org)
        - Principalmente interessato al supporto di Qubes R4.1
            - Vedere il ramo `release4.1` e [qubes-mgmt-salt-windows-mgmt](https://github.com/fepitre/qubes-mgmt-salt-windows-mgmt)

### Windows

#### Manutenzione

Non dimenticare di applicare eventuali aggiornamenti applicabili al momento della creazione del tuo qube Windows. Microsoft costruisce frequentemente ISO aggiornate per le versioni correnti di Windows, come Windows 10. Per queste versioni di Windows, si consiglia di scaricare periodicamente l'ultima versione utilizzando Mido per ottenere un'immagine Windows fresca pronta all'uso.

#### Avvisi

Windows 7 e Windows Server 2008 R2 hanno raggiunto la fine del ciclo di vita (EOL) il [14 gennaio 2020](https://support.microsoft.com/en-us/help/4057281/windows-7-support-will-end-on-january-14-2020).

## Privacy

Qvm-Create-Windows-Qube mira a essere il modo più privato per utilizzare Windows. Molti utenti di Qubes sono passati da Windows (o da un altro sistema operativo proprietario) in parte per allontanarsi da Microsoft (o dalla Big Tech in generale) e quindi essere in grado di utilizzare Windows a distanza di sicurezza è di fondamentale importanza per questo progetto. O almeno, a una distanza di sicurezza quanto più possibile per quello che è essenzialmente un enorme blob binario proprietario.

### Telemetria di Windows

Configura le impostazioni di telemetria di Windows per rispettare la privacy.

- Rinuncia al programma Customer Experience Improvement (CEIP)
- Disabilita la segnalazione errori di Windows (WER)
- Disabilita il servizio DiagTrack
- Disattiva tutta la telemetria nell'applicazione 'Impostazioni' di Windows 10
- Abilita il livello di telemetria ["Sicurezza"](https://docs.microsoft.com/en-us/windows/privacy/configure-windows-diagnostic-data-in-your-organization#diagnostic-data-settings) nelle edizioni compatibili di Windows 10
- Vedi `spyless.bat` per maggiori informazioni

### Raccomandazioni Whonix per Windows-Whonix-Workstation

Tutto ciò che è menzionato [qui](https://www.whonix.org/wiki/Other_Operating_Systems) fino a "Ancora più sicurezza" è implementato. "Massima sicurezza" è utilizzare una Whonix-Workstation ufficiale costruita da sé dal sorgente. Questa funzionalità non è ufficiale né approvata da Whonix.

Si consiglia di leggere [questa](https://www.whonix.org/wiki/Windows_Hosts) documentazione di Whonix per comprendere le implicazioni dell'utilizzo di Windows in questo modo.

### Impronta digitale facile da resettare

Ci sono innumerevoli identificatori unici presenti in ogni installazione di Windows come MachineGUID, ID di installazione, numeri di serie del volume (VSN) delle unità NTFS e altro. Con Qvm-Create-Windows-Qube, questi identificatori unici possono essere facilmente resettati reinstallando automaticamente Windows.

### Limitazioni

Il fingerprinting è possibile attraverso l'hypervisor in caso di compromissione della VM, ecco alcuni esempi pratici (non specifici di Windows):

- [Xen clocksource as wallclock](https://phabricator.whonix.org/T389)
    - La fuga del fuso orario può almeno essere mitigata configurando l'ora UTC nel BIOS/UEFI
        - Il fuso orario locale può comunque essere configurato per l'orologio XFCE Dom0 e nelle VM desiderate eseguendo `timedatectl set-timezone` a ogni avvio utilizzando lo standard `/rw/config/rc.local` fornito da Qubes
    - Tuttavia, la correlazione temporale tra le VM rimane banale
- [CPUID](https://github.com/QubesOS/qubes-issues/issues/1142)
- In generale, alcune delle interfacce VM documentate [qui](https://www.qubes-os.org/doc/vm-interface/) (es. dimensioni dello schermo)

## Domande Frequenti (FAQ)

### Ho bisogno di una licenza Windows per usare questo progetto?

No, con ogni installazione di Windows viene fornita una chiave di prodotto di prova incorporata che viene utilizzata per impostazione predefinita se non ne viene fornita nessun'altra. Qvm-Create-Windows-Qube specifica esplicitamente nessuna chiave di prodotto nei file di risposta per utilizzare la chiave di prova predefinita.

Sulle versioni consumer generali di Windows come (non enterprise) 7, 8.1 e 10, queste prove si estendono per sempre con la consapevolezza che potrebbe iniziare ad apparire una filigrana o un pop-up che richiede l'attivazione del prodotto.

Sulle versioni Windows Enterprise Evaluation e Server Evaluation, una volta scaduta la prova, la macchina verrà automaticamente (e senza preavviso) spenta dopo essere rimasta accesa per un periodo di tempo prestabilito dal servizio di monitoraggio delle licenze Windows (`C:\Windows\System32\wlms\wlms.exe`; si trova in una cartella nascosta). Quando ciò accade, il motivo dello spegnimento sopra menzionato verrà registrato nel Visualizzatore eventi. Per rinnovare la prova, esegui `slmgr /rearm` nel prompt dei comandi. Funzionerà per il numero di volte specificato in `slmgr /dlv` (può variare), a quel punto il prodotto deve essere attivato o reinstallato.

Si consiglia di concedere in licenza il prodotto quando la prova scade in tutti i casi.

Non è necessario concedere a Windows l'accesso a Internet per utilizzare la chiave di prova (poiché è incorporata in ogni ISO). Tuttavia, è necessario per attivare Windows con una propria chiave di prodotto (a meno che non si effettui l'attivazione per telefono).

### Qual è lo scopo dell'AppVM `windows-mgmt`? Posso eliminarla una volta completata l'installazione di Windows?

Lo scopo dell'AppVM `windows-mgmt` è isolare in modo sicuro tutto ciò che accade come parte dell'installazione di Windows in una singola macchina virtuale. In questo modo, lo sfruttamento di eventuali bug esistenti, ad esempio, nel codice di analisi del filesystem ISO di Linux è limitato nel danno che può causare nel caso in cui una ISO di Windows fosse dannosa. Questo è il principio di sicurezza su cui è costruito tutto Qubes OS, noto come "sicurezza per isolamento" o "sicurezza per compartimentazione".

Sentiti libero di eliminare `windows-mgmt` se sei sicuro di non voler creare altre VM Windows. Tuttavia, se è solo lo spazio su disco che desideri recuperare, puoi semplicemente eliminare le ISO situate in `/home/user/qvm-create-windows-qube/windows/isos` e `/home/user/qvm-create-windows-qube/windows/out` (in `windows-mgmt`) per risparmiare la stragrande maggioranza di quello spazio.

### C'è altro che dovrei sapere?

Non abilitare "Includi nel bilanciamento della memoria" (la casella di controllo) nelle impostazioni del qube Windows. Questa funzionalità di Qubes OS è attualmente instabile su Windows e abilitarla porterà a frequenti crash di Windows (BSOD).

## Contribuire

Puoi iniziare dando una stella a questo progetto! Anche le PR di alta qualità sono benvenute! Dai un'occhiata alla lista delle cose da fare qui sotto se stai cercando cose che necessitano di miglioramenti. Sono benvenuti anche altri miglioramenti come modi più eleganti per completare un'attività, pulizia del codice e altre correzioni.

Molti [GSoC](https://www.qubes-os.org/gsoc/) legati a Windows per gli interessati.

Il logo di questo progetto è di Max Andersen, utilizzato con autorizzazione scritta.

Questo progetto è il prodotto di uno sforzo indipendente che non è ufficialmente approvato da Qubes OS.

## Problemi noti degli strumenti Windows di Qubes

- Il nuovo installer QWT disabilita la creazione di dischi privati per impostazione predefinita
    - Probabilmente per problemi di stabilità?
    - Impossibile creare un TemplateVM

### Avviso sui driver Xen più recenti (per sistemi operativi più vecchi come Windows 7)

In Qubes R4.1, Qubes Windows Tools viene fornito con driver più recenti che funzionano meglio sulle versioni più recenti di Windows come Windows 10. Sfortunatamente, è stato anche documentato che questi nuovi driver funzionano meno bene con versioni più vecchie di Windows come Windows 7. Idealmente, le correzioni dovrebbero essere consolidate in un unico driver, ma ciò non è ancora accaduto.

Windows 7 è un sistema operativo EOL a questo punto, quindi è meno importante. Tuttavia, ci sono ancora alcune valide ragioni per utilizzare (almeno una macchina Windows 7 isolata dalla rete) (ad esempio per scopi di ricerca/test tecnici).

Ci sono membri della comunità che documentano questa esperienza (posso anche attestarlo) sul forum di Qubes OS e su alcune issue di Qubes OS su GitHub.

#### Thread delle mailing list

- [qubes-users](https://groups.google.com/forum/#!topic/qubes-users/AdQcjg7XOFo)
- [qubes-devel](https://groups.google.com/forum/#!topic/qubes-devel/aCCGpYysZTQ)

#### Issue di Qubes OS su GitHub taggate Windows

- [`C: windows-tools`](https://github.com/QubesOS/qubes-issues/labels/C%3A%20windows-tools)
- [`C: windows-vm`](https://github.com/QubesOS/qubes-issues/labels/C%3A%20windows-vm)

## Da fare- [x] Ottenere la capacità di decomprimere/inserire file di risposta/ricomprimere in modo affidabile per qualsiasi file ISO contenente un filesystem UDF ([ISO 13346](https://en.wikipedia.org/wiki/Universal_Disk_Format), cioè il formato ISO di Windows)
    - I contenitori di file ISO sono essenzialmente filesystem scrivibili una sola volta; non è possibile aggiungere un file senza creare un nuovo ISO
    - Aprendo un file ISO ufficiale di Microsoft Windows in un editor esadecimale si vede chiaramente che contiene un filesystem UDF e menziona `ISO-13346` all'inizio
    - Nota che il comando `file` può identificare erroneamente questi file ISO come formato ISO 9660 ormai superato, ma probabilmente solo perché "UDF condivide il formato base del descrittore di volume con ISO 9660"
    - Questo è lo stesso modo in cui VMWare lo fa, come si vede dalla parte "Creating Disk..." nel video qui sotto (Ulteriori ricerche indicano che usano `mkisofs`)
    - [ ] In futuro, sarebbe meglio per Qubes farlo [estendendo l'amministrazione centrale per i template XML di libvirt](https://github.com/QubesOS/qubes-issues/issues/5085)
        - Più veloce
        - Risparmia spazio perché non è necessario creare un nuovo ISO
- [x] auto-qwt prende D:\\ facendo sì che QWT metta il profilo utente su E:\\; sarebbe più bello averlo su D:\\ così non c'è un brutto vuoto in mezzo
- [x] Fare in modo che il file di risposta di Windows utilizzi automaticamente la chiave di prova predefinita per l'installazione di Windows senza codificare chiavi di prodotto in nessun punto (Windows è esigente su questo)
- [x] Supporto per Windows 8.1-10 (Nota: QWT non supporta ancora ufficialmente alcun sistema operativo diverso da Windows 7, comunque tutto è funzionante tranne il driver GUI)
- [x] Supporto per Windows Server 2008 R2 fino a Windows Server 2019
- [x] Supporto per Windows 10 Enterprise LTSC (Canale di supporto a lungo termine)
    - Fornisce aggiornamenti di sicurezza per 10 anni, molto stabile e meno pesante di Windows 10 standard
- [ ] Supporto per Windows 11
    - Qvm-Create-Windows-Qube è stato creato per essere indipendente dalla versione di Windows, l'unico vero lavoro da fare qui è creare un file di risposta (probabilmente modificando leggermente quello di Windows 10) e aggiungerlo a `mido.sh` (che non sarà un problema ora che ho esteso la sua funzionalità per scaricare dall'API di download ISO di Microsoft dietro il gate)
    - La vera domanda è se Qubes Windows Tools funzionerà sotto Windows 11
        - Microsoft ha un fantastico record di compatibilità all'indietro anche a livello di API del kernel (perché alle aziende piace la compatibilità all'indietro) quindi è possibile che funzioni perfettamente
        - Aiuto richiesto, tester benvenuti
- [x] Provisioning di Chocolatey
- [x] Aggiungere un'opzione per snellire Windows come documentato per Qubes [qui](https://www.qubes-os.org/doc/windows-template-customization/)
- [x] Rendere `windows-mgmt` air gapped
- [x] Estendere la funzionalità di `download-windows.sh` (ora `mido.sh`) per scaricare ISO dall'API di download ISO di Microsoft dietro il gate
- [ ] Ho recentemente scoperto che questo è un progetto Qubes [Google Summer of Code](https://www.qubes-os.org/gsoc/)
    - [x] Aggiungere test automatizzati
        - Utilizzo di Travis CI per ShellCheck automatizzato
    - [x] Tabelle ACPI per ottenere la licenza di Windows lì incorporata
        - Trovate maggiori informazioni su questo, dovrebbe essere molto semplice semplicemente posizionando la seguente estensione del template jinja libvirt in `/etc/qubes/templates/libvirt/xen/by-name/<windows_qube>`
            - Grazie a @jevank per la [patch](https://github.com/QubesOS/qubes-issues/issues/5279#issuecomment-525947408)
    - [ ] Portare a Python
        - Sembra non necessario per script come `create-media.sh` dove lo script Python si limiterebbe a chiamare programmi esterni
        - Certamente sarebbe adatto per il programma `qvm-create-windows-qube`
            - Questo ci permetterebbe di scambiare dati tra Dom0 e la VM senza preoccuparci del potenziale per command injection o un altro Shellshock
- [ ] Selezionare automaticamente quale file di risposta usare in base alle caratteristiche dell'ISO di Windows raccolte dal comando `wiminfo` (Attualmente in lavorazione; vedi branch)
    - `wiminfo` funziona proprio come DISM su Windows
    - [ ] Una volta che l'amministrazione centrale sarà estesa per permettere i template XML di libvirt (file di risposta) diventerà possibile (todo precedente, è un problema bloccante), potremmo anche leggere in modo sicuro le caratteristiche di install.wim dall'ISO senza dover montare l'ISO come dispositivo loop usando [`libguestfs`](https://libguestfs.org)
        - Ho visto anche `libguestfs` usato su QEMU/KVM quindi è sicuramente un buon candidato per questo caso d'uso
        - Nota che `libguestfs` non può scrivere (un file di risposta) su un ISO, motivo per cui non ha senso usare questa libreria finché non avremo più bisogno di creare un nuovo ISO per aggiungere il file di risposta
- [x] Seguire la [documentazione di Whonix](https://www.whonix.org/wiki/Other_Operating_Systems) per creare Windows-Whonix-Workstation
- [ ] Aggiungere funzionalità a `create-media.sh` per aggiungere MSU (pacchetti autonomi di Microsoft Update) da installare durante il passaggio Windows PE (specificamente "Installing updates...") dell'installazione di Windows
    - Potremmo riparare l'installazione di QWT attualmente non funzionante per vecchi ISO di Windows 7 SP1 e Windows Server 2008 (non-R2) usando [KB4474419](https://github.com/QubesOS/qubes-issues/issues/3585#issuecomment-521280301) per aggiungere il supporto della firma dei driver SHA-256
        - L'altra opzione è far sì che Xen firmi i propri driver con SHA-1, cosa che altri vendor di driver sembrano fare, ma non è ideale dal punto di vista della sicurezza
    - Ci permette di eliminare l'hack di `allow-drivers.vbs` risolvendo il bug dell'installazione *automatica* dei driver SHA-256 nelle versioni più recenti di Windows 7 con KB2921916 (vedi `allow-drivers.vbs` per dettagli)
        - Questo bug di Windows è stato intenzionalmente patchato e non patchato da Microsoft nel tentativo di costringere le aziende ad aggiornare a Windows 10
    - Patchare un paio di bug di sicurezza di Windows?
        - Patchare BlueKeep per Windows 7 subito
        - Anche l'ISO base di Windows Server 2008 R2 è vulnerabile a ETERNALBLUE e BlueKeep subito
        - Probabilmente non vale la pena addentrarsi in questo, gli utenti dovrebbero semplicemente aggiornare la VM dopo averla creata
- [ ] Modalità headless
    - Aiuto richiesto
        - Quale meccanismo c'è per farlo in Qubes? Qualcosa nell'agente/daemon GUI di Qubes?
- [ ] Impacchettare questo progetto in modo che la sua distribuzione possa essere più snella e sicura tramite `qubes-dom0-update`
- [ ] Aggiungere il supporto per [ReactOS](https://reactos.org) come alternativa open source a Windows
    - Sarebbe buono almeno finché non viene creato un [template ReactOS](https://github.com/QubesOS/qubes-issues/issues/2809)
    - Forse gli sviluppatori di ReactOS potrebbero voler usare questo per sviluppare ReactOS
    - O forse aggiungere ReactOS come template (al di fuori di questo progetto)
        - Tuttavia, qualcuno dovrebbe mantenere questo template
        - Inoltre, potrebbe non avere molto senso se i driver QWT/Xen non funzionano
            - Almeno per funzionalità di base come copia/incolla e trasferimento file
    - Interesse da entrambe le parti
        - [Qubes OS](https://github.com/QubesOS/qubes-issues/issues/2809)
        - [ReactOS](https://reactos.org/forum/viewtopic.php?p=126279#p126279)
            - "una delle offerte di collaborazione più interessanti che abbiamo ricevuto finora"
    - Le [installazioni automatiche di ReactOS](https://reactos.org/wiki/Create_an_unattended_Installation_CD) sembrano diverse da quelle di Windows
    - [ ] L'unico problema bloccante che ho trovato è il tipo di controller SCSI di QEMU
        - Qubes potrebbe estendere l'amministrazione centrale per supportare la configurazione del controller SCSI nel template libvirt
            - Questa soluzione sembra migliore perché secondo [questo](https://github.com/QubesOS/qubes-issues/issues/3651#issuecomment-420914348) commento risolverebbe anche molti altri sistemi operativi il cui installer non supporta il nostro attuale controller SCSI
        - ReactOS potrebbe aggiungere il supporto per il nostro attuale tipo di controller SCSI
        - [Issue di ReactOS](https://reactos.org/forum/viewtopic.php?t=17529)
        - [Issue di Qubes OS](https://github.com/QubesOS/qubes-issues/issues/3494)
        - Esporre un controller SCSI diverso non espande la superficie d'attacco perché QEMU gira in un dominio stub Xen
    - ReactOS è in alpha, quindi per la maggior parte degli utenti probabilmente non sarà praticabile al momento
    - Aiuto richiesto
        - Nessuna tempistica al momento

## Obiettivo Finale

Avere una funzionalità simile (o superiore) alla funzionalità [Windows "Easy Install" di VMWare](https://www.youtube.com/watch?v=1OpDXlttmE0) su Qubes OS. La soluzione di VMWare è proprietaria e disponibile solo nei loro prodotti a pagamento.

Anche VirtualBox ha [qualcosa di simile](https://blogs.oracle.com/scoter/oracle-vm-virtualbox-52:-unattended-guest-os-install) ma non è così ricco di funzionalità.
Scarica lo strumento