Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
qvm-create-windows-qube — Qubes OS에서 새로운 Windows qubes를 빠르고, 쉽고, 안전하게 실행하세요. | Kitploit
도구/GitHubGitHub/qubesos/qvm-create-windows-qube
OSINT (Open Source Intelligence)Security VirtualizationPrivacy
GitHubqubesos/qvm-create-windows-qube

qvm-create-windows-qube

Qubes OS에서 새로운 Windows qubes를 빠르고, 쉽고, 안전하게 실행하세요.

저장소 보기웹사이트
40349161년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Logo

Qvm-Create-Windows-Qube

새 Windows 퀴브를 빠르고 쉽고 안전하게 구동합니다

Travis CI build License Made for Qubes OS

소개

Qvm-Create-Windows-Qube는 새 Windows 퀴브를 Qubes Windows Tools (QWT) 드라이버와 함께 자동으로 신속하고 편리하게 설치하는 도구입니다. 공식적으로 Windows 7, 8.1, 10 및 Windows Server 2008 R2, 2012 R2, 2016, 2019를 지원합니다.

이 프로젝트는 정확성, 보안, 그리고 전체 과정에서 Windows를 신뢰할 수 없는 게스트 운영 체제로 취급하는 것을 강조합니다. 설치 과정은 100% 에어 갭(Air Gap) 방식으로 진행되며, 추가 프라이버시를 위해 완성된 Windows 퀴브에 선택적 Whonix 통합을 제공합니다. 이러한 목표를 최대한 적은 코드 라인으로 달성하여 단순성과 미니멀리즘을 보장하는 것이 핵심입니다.

또한 Chocolatey를 사용하여 Firefox, Office 365, Notepad++, Visual Studio 등을 포함한 패키지를 자동으로 설치하는 기능과 같은 여러 편의 기능을 제공하여 새 환경에서 신속하게 작업을 시작할 수 있습니다.

다음에서 소개됨: Hacker News Favicon Hacker News | Hacker News 메인 페이지 상위 10위, Show HN 부문 1위를 자랑스럽게 기록

설치

  1. 링크를 열고 오른쪽 클릭한 후 "다른 이름으로 [페이지] 저장"을 선택하여 설치 스크립트를 다운로드합니다.
  2. Dom0에서 다음 명령을 실행하여 install.sh를 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
    • 모든 작은따옴표와 큰따옴표를 정확히 입력해야 합니다
  3. install.sh 코드를 검토하여 무결성을 확인합니다
    • 이전 단계에서 이스케이프 문자 필터링을 활성화하면 더 안전합니다. qvm-run은 출력이 파일일 때 기본적으로 이 기능을 비활성화합니다.
  4. chmod +x install.sh && ./install.sh를 실행합니다
    • 이는 기본 TemplateVM인 fedora-XX에 패키지를 설치합니다
  5. 결과로 생성된 /usr/bin/qvm-create-windows-qube 코드를 검토합니다

업데이트

Qvm-Create-Windows-Qube를 업데이트하려면 먼저 Dom0에서 다음 명령을 실행하여 windows-mgmt VM과 메인 프로그램을 삭제하세요:

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

마지막으로 위의 설치 단계를 따라 재설치합니다.

이 작업은 이미 다운로드된 모든 Windows ISO도 삭제합니다. Microsoft가 Windows ISO를 업데이트한 경우(따라서 다시 다운로드해야 하는 경우)에는 이것이 바람직할 수 있습니다. 그러나 Windows ISO를 다시 다운로드하지 않으려면 windows-mgmt VM의 /home/user/qvm-create-windows-qube/windows/isos로 이동하여 그 내용을 다른 (가급적 Disposable) 퀴브로 복사하세요. 재설치가 완료되면 해당 ISO를 windows-mgmt의 위 디렉터리로 다시 복사합니다.

사용 방법```

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:~
### Windows ISO 다운로드

Mido(`mido.sh`)는 안전한 Microsoft Windows 다운로더(Unix용)로, [Rufus](https://github.com/pbatard/rufus)의 [Fido](https://github.com/pbatard/Fido)에서 영감을 받았습니다. Microsoft가 [게이트 다운로드 웹 인터페이스](https://www.microsoft.com/en-us/software-download/windows10ISO) 뒤에 두고 있는 일부 Windows ISO의 다운로드 과정을 자동화할 수 있습니다. Mido는 견고하며 공식 Microsoft 서버에서 Qvm-Create-Windows-Qube에서 사용할 Windows ISO를 안전하게 다운로드합니다. 이 스크립트는 `windows-mgmt`의 `/home/user/qvm-create-windows-qube/windows/isos/mido.sh`에서 찾을 수 있습니다.

`windows-mgmt`는 네트워크에서 에어 갭(air gapped)되어 있습니다. 즉, 안전하게 다운로드를 수행하려면 `mido.sh` 스크립트를 다른 (일회용) 큐브(qube)로 복사한 다음 새로 다운로드한 ISO를 `windows-mgmt`로 전송하여 `/home/user/qvm-create-windows-qube/windows/isos` 디렉토리에 넣어야 합니다. 또는 `windows-mgmt`에 일시적으로 네트워크 접근 권한을 부여할 수도 있지만, 보안상 이유로 권장되지 않습니다.

일단 생성된 Windows ISO는 나중에 사용하기 위해 `/home/user/qvm-create-windows-qube/windows/out`에 캐시됩니다. Mido로 업데이트된 ISO를 다운로드한 경우, 앞서 언급한 캐시 디렉토리에서 동일한 ISO를 제거해야 합니다. 그러면 업데이트된 ISO로 캐시가 재생성됩니다.

고급 사용자를 위한 참고 사항: Qvm-Create-Windows-Qube는 모든 Windows ISO와 함께 작동할 수 있는 일반적인 방식으로 ISO를 처리합니다. 사용하려는 자체 Windows ISO가 있다면, 가장 가까운 응답 파일(특히 `/IMAGE/NAME` 키)을 약간만 조정하면 작동할 가능성이 높습니다. ISO 내부의 `install.wim`을 `wiminfo` 명령(Fedora에서는 `wimlib-utils`, Debian에서는 `wimtools`로 패키징됨)을 사용하여 파싱하거나 Windows ADK를 사용하여 Windows 내에서 유효한 `/IMAGE/NAME` 값을 얻을 수 있습니다.

### Windows VM 생성

**중요:** 아래의 [Qubes Windows Tools 알려진 문제](https://github.com/ElliotKillick/qvm-create-windows-qube#qubes-windows-tools-known-issues) 섹션을 먼저 읽어 작은 업스트림 문제를 확인하시기 바랍니다.

#### Windows 10

*[동영상 데모](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

- Microsoft에서 공식 제공하는 Windows 10의 보다 안정적이고 축소되었으며 안전하고 비공개적인 버전
- 이 Windows 10 버전은 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

- Windows 7은 Microsoft에서 [더 이상 지원되지 않으므로](https://github.com/ElliotKillick/qvm-create-windows-qube#advisories) 권장되지 않지만, Qubes Windows Tools의 Qubes GUI 드라이버가 원활한 창 통합이나 동적 크기 조정이 필요한 경우 지원하는 유일한 데스크탑 OS입니다.

*[동영상 데모](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`

## 보안

Qvm-Create-Windows-Qube는 [Qubes](https://www.qubes-os.org)의 기준에 따라 "합리적으로 안전"합니다.

- `windows-mgmt`는 에어 갭(air gapped)되어 있습니다.
- Windows 큐브 설정 과정 전체가 에어 갭 상태로 수행됩니다.
    - 예외: 패키지가 설치용으로 구성된 경우에만 Windows 큐브 설치의 맨 마지막에 Windows가 인터넷에 접근할 수 있습니다.
- Dom0 셸 스크립트에서 신뢰할 수 없는 `windows-mgmt` 큐브의 출력을 파싱하지 않음으로써 명령 주입 취약점의 전체 클래스가 제거됩니다.
    - `qvm-run`으로는 종료 코드만 전달됩니다. 변수는 없습니다.
    - 이는 또 다른 [Shellshock](https://en.wikipedia.org/wiki/Shellshock_(software_bug)) Bash 취약점의 영향을 완화합니다.
- Windows ISO 다운로드는 다음을 강제하여 안전하게 만듭니다:
    - ISO는 Microsoft가 통제하는 `microsoft.com`의 하위 도메인에서 직접 다운로드됩니다.
    - HTTPS TLS 1.2/1.3
    - 다운로드 후 SHA-256 파일 확인
        - 각 파일은 체크섬이 일치하는 것이 확인될 때까지 `.UNVERIFIED` 확장자로 저장됩니다.
    - Mido는 POSIX sh로 견고하게 작성되어(Dash 셸 사용 가능 시 최소 Dash 셸 사용) Microsoft의 게이트 다운로드 웹 인터페이스와의 상호작용이 더 안전합니다.
        - 더 높은 보안을 위해 POSIX 호환 Rust 셸(예: nsh)과 Rust coreutils(예: uutils)에서 실행될 수도 있습니다. 그러나 이것이 기본 구성은 아닙니다.
- Windows는 전체 과정에서 신뢰할 수 없는 게스트 운영 체제로 취급됩니다.
- Windows ISO 처리(예: 파일 시스템 파싱의 취약점) 또는 응답 파일의 이론적 취약점의 영향은 `windows-mgmt`로 제한됩니다.
- 유지관리자의 모든 커밋은 항상 해당 PGP 키로 서명됩니다.
    - 서명이 중단되면 손상된 것으로 간주하십시오.
    - 현재 유지관리자 1: [Elliot Killick](https://github.com/ElliotKillick)
        - PGP 키([코드 서명 하위 키](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 protected]](https://keys.openpgp.org/search?q=contact%40elliotkillick.com)
        - 이 키는 2024년 5월 28일부터 새로운 키입니다.
    - 현재 유지관리자 2: [Frédéric Pierret](https://github.com/fepitre)
        - PGP 키: 9FA6 4B92 F95E 706B F28E 2CA6 4840 10B5 CDC5 76E2
        - 이메일: [[email protected]](https://keys.openpgp.org/search?q=frederic.pierret%40qubes-os.org)
        - 주로 Qubes R4.1 지원에 관여합니다.
            - `release4.1` 브랜치 및 [qubes-mgmt-salt-windows-mgmt](https://github.com/fepitre/qubes-mgmt-salt-windows-mgmt) 참조

### Windows

#### 유지 관리

Windows 큐브를 생성한 후에는 적용 가능한 업데이트를 적용하는 것을 잊지 마십시오. Microsoft는 Windows 10과 같은 현재 Windows 버전에 대해 최신 ISO를 자주 빌드합니다. 이러한 Windows 버전의 경우 Mido를 사용하여 주기적으로 최신 버전을 다운로드하여 바로 사용할 수 있는 최신 Windows 이미지를 얻는 것이 좋습니다.

#### 권고 사항

Windows 7 및 Windows Server 2008 R2는 [2020년 1월 14일](https://support.microsoft.com/en-us/help/4057281/windows-7-support-will-end-on-january-14-2020)에 지원이 종료되었습니다(EOL).

## 개인정보 보호

Qvm-Create-Windows-Qube는 Windows를 사용하는 가장 사적인 방법을 목표로 합니다. 많은 Qubes 사용자가 Windows(또는 다른 독점 OS)에서 전환한 이유 중 하나는 Microsoft(또는 빅 테크 전반)로부터 멀어지기 위해서이며, 따라서 안전한 거리에서 Windows를 사용할 수 있는 것이 이 프로젝트의 가장 중요한 사항입니다. 적어도 거대한 독점 바이너리 블롭에 대해 가능한 한 안전한 거리에서 말입니다.

### Windows 원격 측정

개인정보를 존중하도록 Windows 원격 측정 설정을 구성합니다.

- CEIP(고객 경험 개선 프로그램) 거부
- Windows 오류 보고(WER) 비활성화
- DiagTrack 서비스 비활성화
- Windows 10 "설정" 앱에서 모든 원격 측정 해제
- 호환되는 Windows 10 에디션에서 ["보안"](https://docs.microsoft.com/en-us/windows/privacy/configure-windows-diagnostic-data-in-your-organization#diagnostic-data-settings) 수준의 원격 측정 활성화
- 자세한 내용은 `spyless.bat` 참조

### Windows-Whonix-Workstation에 대한 Whonix 권장 사항

[여기](https://www.whonix.org/wiki/Other_Operating_Systems)에 언급된 모든 내용 중 "더 많은 보안(Even more security)"까지 구현되었습니다. "가장 높은 보안(Most security)"은 소스에서 직접 빌드한 공식 Whonix-Workstation을 사용하는 것입니다. 이 기능은 공식이 아니며 Whonix의 보증을 받지 않습니다.

이러한 방식으로 Windows를 사용할 때의 의미를 이해하려면 Whonix 문서 [여기](https://www.whonix.org/wiki/Windows_Hosts)를 읽는 것이 좋습니다.

### 지문 재설정 용이

모든 Windows 설치에는 MachineGUID, 설치 ID, NTFS 드라이브 볼륨 일련 번호(VSN) 등과 같은 셀 수 없이 많은 고유 식별자가 있습니다. Qvm-Create-Windows-Qube를 사용하면 Windows를 자동으로 재설치하여 이러한 고유 식별자를 쉽게 재설정할 수 있습니다.

### 한계

VM이 손상될 경우 하이퍼바이저를 통한 지문 인식이 가능합니다. 몇 가지 실제 예는 다음과 같습니다(Windows에 국한되지 않음):

- [Xen clocksource를 wallclock으로 사용](https://phabricator.whonix.org/T389)
    - 시간대 누출은 BIOS/UEFI에서 UTC 시간을 구성하여 완화할 수 있습니다.
        - XFCE Dom0 시계와 원하는 VM의 로컬 시간대는 Qubes에서 제공하는 표준 `/rw/config/rc.local`을 사용하여 부팅할 때마다 `timedatectl set-timezone`을 실행하여 구성할 수 있습니다.
    - 그러나 VM 간 시간 상관 관계는 여전히 사소합니다.
- [CPUID](https://github.com/QubesOS/qubes-issues/issues/1142)
- 일반적으로 [여기](https://www.qubes-os.org/doc/vm-interface/)에 문서화된 일부 VM 인터페이스(예: 화면 크기)

## 자주 묻는 질문 (FAQ)

### 이 프로젝트를 사용하려면 Windows 라이선스가 필요한가요?

아니요, 모든 Windows 설치에는 다른 라이선스가 제공되지 않으면 기본적으로 사용되는 평가판 제품 키가 내장되어 있습니다. Qvm-Create-Windows-Qube는 응답 파일에서 명시적으로 제품 키를 지정하지 않아 기본 평가판 키를 사용합니다.

Windows 7, 8.1, 10과 같은 일반 소비자용 Windows 버전에서는 평가판이 영구적으로 지속되며, 제품 정품 인증을 요청하는 워터마크나 팝업이 나타날 수 있음을 이해해야 합니다.

Windows Enterprise Evaluation 및 Server Evaluation 버전에서는 평가 기간이 종료되면 Windows License Monitoring Service(`C:\Windows\System32\wlms\wlms.exe`; 숨겨진 폴더 안에 있음)에 의해 시스템이 설정된 시간 동안 작동한 후 자동으로 (경고 없이) 종료됩니다. 이 경우 이벤트 뷰어에 종료 이유가 기록됩니다. 평가판을 갱신하려면 명령 프롬프트에서 `slmgr /rearm`을 실행하십시오. 이는 `slmgr /dlv`에 지정된 횟수(다를 수 있음)까지 작동하며, 그 이후에는 제품을 정품 인증하거나 재설치해야 합니다.

어떠한 경우든 평가 기간이 종료되면 제품 라이선스를 취득하는 것이 좋습니다.

평가판 키는 각 ISO에 내장되어 있으므로 Windows에 인터넷 접근 권한을 부여할 필요는 없습니다. 그러나 자체 제품 키로 Windows를 정품 인증하려면 인터넷 접근이 필요합니다(전화 인증을 사용하지 않는 한).

### `windows-mgmt` AppVM의 목적은 무엇인가요? Windows 설치가 완료된 후 삭제해도 되나요?

`windows-mgmt` AppVM의 목적은 Windows 설치 과정의 모든 것을 안전하게 하나의 가상 머신으로 격리하는 것입니다. 이렇게 하면 예를 들어 Linux ISO 파일 시스템 파싱 코드에 존재하는 버그가 악성 Windows ISO에 의해 악용될 경우 발생할 수 있는 피해가 제한됩니다. 이것이 Qubes OS가 구축된 보안 원칙이며, "격리에 의한 보안" 또는 "컴파트먼트화에 의한 보안"이라고 합니다.

더 이상 Windows VM을 만들 필요가 없다고 확신하면 `windows-mgmt`를 삭제해도 됩니다. 그러나 단지 디스크 공간을 회수하려는 경우 `windows-mgmt`의 `/home/user/qvm-create-windows-qube/windows/isos` 및 `/home/user/qvm-create-windows-qube/windows/out`에 있는 ISO를 삭제하여 대부분의 공간을 절약할 수 있습니다.

### 알아야 할 다른 사항이 있나요?

Windows 큐브 설정에서 "메모리 밸런싱에 포함" (체크박스)를 활성화하지 마십시오. 이 Qubes OS 기능은 현재 Windows에서 불안정하며, 활성화하면 빈번한 Windows 충돌(BSOD)이 발생할 수 있습니다.

## 기여

이 프로젝트에 별표를 눌러 시작할 수 있습니다! 높은 품질의 PR도 환영합니다! 아래의 할 일 목록을 확인하여 개선이 필요한 부분을 찾아보세요. 작업을 완료하는 더 우아한 방법, 코드 정리 및 기타 수정 사항도 환영합니다.

관심 있는 분들을 위해 Windows 관련 [GSoC](https://www.qubes-os.org/gsoc/)가 많습니다.

이 프로젝트의 로고는 Max Andersen의 작품이며, 서면 허가를 받아 사용되었습니다.

이 프로젝트는 Qubes OS의 공식 보증이 없는 독립적인 노력의 결과입니다.

## Qubes Windows Tools 알려진 문제

- 새로운 QWT 설치 프로그램은 기본적으로 개인 디스크 생성을 비활성화합니다.
    - 아마도 안정성 문제 때문일까요?
    - TemplateVM을 만들 수 없습니다.

### 최신 Xen 드라이버 알림 (Windows 7과 같은 오래된 OS의 경우)

Qubes R4.1에서 Qubes Windows Tools는 Windows 10과 같은 최신 Windows 버전에서 더 잘 작동하는 최신 드라이버와 함께 제공됩니다. 불행히도 이러한 새 드라이버는 Windows 7과 같은 오래된 Windows 버전에서는 덜 잘 작동하는 것으로 문서화되었습니다. 이상적으로는 수정 사항이 하나의 드라이버로 통합되어야 하지만 아직 그렇게 되지 않았습니다.

Windows 7은 현재 EOL 운영 체제이므로 중요도가 낮습니다. 그러나 (적어도 에어 갭된) Windows 7 시스템을 사용해야 하는 타당한 이유가 여전히 있습니다(예: 기술 연구/테스트 목적).

Qubes OS 포럼과 몇 가지 Qubes OS GitHub 이슈에서 이 경험을 문서화하는 커뮤니티 구성원이 있습니다(저도 확인할 수 있습니다).

#### 메일링 리스트 스레드

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

#### Windows 태그가 지정된 Qubes OS GitHub 이슈

- [`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)

## 할 일- [x] 모든 ISO 파일(특히 UDF 파일시스템을 포함하는, 즉 Windows ISO 형식인 [ISO 13346](https://en.wikipedia.org/wiki/Universal_Disk_Format))에 대해 응답 파일을 안정적으로 언팩/삽입/리팩할 수 있는 기능 획득
    - ISO 파일 컨테이너는 기본적으로 한 번 쓰기 파일시스템입니다. 완전히 새로운 ISO를 만들지 않고는 파일을 추가할 수 없습니다.
    - 공식 Microsoft Windows ISO 파일을 16진수 편집기로 열어보면 UDF 파일시스템이 포함되어 있으며 상단에 `ISO-13346`이 명시적으로 언급되어 있음을 확인할 수 있습니다.
    - `file` 명령이 이러한 ISO 파일을 현재는 대체된 ISO 9660 형식으로 약간 잘못 식별할 수 있지만, 이는 아마도 "UDF가 ISO 9660과 기본 볼륨 설명자 형식을 공유"하기 때문일 것입니다.
    - 아래 비디오의 "Creating Disk..." 부분에서 볼 수 있듯이 VMWare도 동일한 방식으로 수행합니다 (추가 조사에 따르면 `mkisofs`를 사용합니다).
    - [ ] 향후 Qubes는 [libvirt XML 템플릿을 위한 코어 관리 확장](https://github.com/QubesOS/qubes-issues/issues/5085)을 통해 이를 수행하는 것이 가장 좋을 것입니다.
        - 더 빠름
        - 새 ISO를 만들 필요가 없어 저장 공간 절약
- [x] auto-qwt가 D:\\를 사용하여 QWT가 사용자 프로필을 E:\\에 두도록 합니다. 중간에 어색한 간격이 없도록 D:\\에 두는 것이 더 좋을 것입니다.
- [x] Windows 응답 파일이 하드코딩된 제품 키 없이 Windows 설치에 기본 평가판 키를 자동으로 사용하도록 합니다. (Windows는 이 부분에서 까다롭습니다.)
- [x] Windows 8.1-10 지원 (참고: QWT는 아직 Windows 7 이외의 OS를 완전히 공식 지원하지 않지만, GUI 드라이버를 제외한 모든 기능이 작동합니다.)
- [x] Windows Server 2008 R2부터 Windows Server 2019까지 지원
- [x] Windows 10 Enterprise LTSC (Long Term Support Channel) 지원
    - 10년간 보안 업데이트 제공, 기본 Windows 10보다 매우 안정적이고 덜 bloated
- [ ] Windows 11 지원
    - Qvm-Create-Windows-Qube는 Windows 버전에 독립적으로 설계되었으며, 여기서 실제로 해야 할 작업은 응답 파일을 생성하고 (아마 Windows 10의 것을 약간 수정) `mido.sh`에 추가하는 것뿐입니다. (이제 게이트된 Microsoft ISO 다운로드 API에서 다운로드할 수 있도록 기능을 확장했으므로 문제가 되지 않습니다.)
    - 진짜 질문은 Qubes Windows Tools가 Windows 11에서 작동할지 여부입니다.
        - Microsoft는 (기업이 하위 호환성을 좋아하기 때문에) 커널 API 수준에서도 훌륭한 하위 호환성 기록을 가지고 있으므로, 잘 작동할 가능성이 있습니다.
        - 도움 요청, 테스터 환영합니다.
- [x] Chocolatey 프로비저닝
- [x] Qubes 문서에 따라 Windows를 슬림화하는 옵션 추가 [여기](https://www.qubes-os.org/doc/windows-template-customization/)
- [x] `windows-mgmt`를 에어 갭(air gapped) 상태로 만들기
- [x] `download-windows.sh` (현재 `mido.sh`)의 기능을 확장하여 Microsoft의 게이트된 ISO 다운로드 API에서 ISO를 다운로드하도록 합니다.
- [ ] 최근에 이것이 Qubes [Google Summer of Code](https://www.qubes-os.org/gsoc/) 프로젝트임을 알게 되었습니다.
    - [x] 자동화된 테스트 추가
        - 자동 ShellCheck를 위해 Travis CI 사용
    - [x] Windows 라이선스를 가져오기 위한 ACPI 테이블
        - 이에 대한 추가 정보를 찾았으며, 다음 jinja libvirt 템플릿 확장을 `/etc/qubes/templates/libvirt/xen/by-name/<windows_qube>`에 배치하기만 하면 매우 간단합니다.
            - @jevank의 [패치](https://github.com/QubesOS/qubes-issues/issues/5279#issuecomment-525947408)에 감사드립니다.
    - [ ] Python으로 포팅
        - `create-media.sh`와 같은 스크립트의 경우 Python 스크립트가 본질적으로 외부 프로그램을 호출하는 것에 불과하므로 불필요해 보입니다.
        - 그러나 `qvm-create-windows-qube` 프로그램에는 확실히 적합할 것입니다.
            - 이를 통해 명령 주입이나 다른 Shellshock의 가능성에 대한 걱정 없이 Dom0과 VM 간에 데이터를 교환할 수 있습니다.
- [ ] `wiminfo` 명령에서 수집한 Windows ISO 특성을 기반으로 사용할 응답 파일을 자동 선택 (현재 작업 중; 브랜치 참조)
    - `wiminfo`는 Windows의 DISM과 똑같이 작동합니다.
    - [ ] 코어 관리가 확장되어 libvirt XML 템플릿(응답 파일)을 허용하게 되면 (이전 할 일, 차단 문제), ISO를 루프 장치로 마운트할 필요 없이 [`libguestfs`](https://libguestfs.org)를 사용하여 ISO에서 install.wim의 특성을 안전하게 읽을 수 있습니다.
        - 또한 QEMU/KVM에서 `libguestfs`가 사용되는 것을 보았으므로 이 사용 사례에 확실히 좋은 후보입니다.
        - `libguestfs`는 ISO에 (응답 파일을) 쓸 수 없습니다. 따라서 응답 파일을 추가하기 위해 완전히 새로운 ISO를 만들 필요가 없어질 때까지 이 라이브러리를 사용할 의미가 없습니다.
- [x] [Whonix 문서](https://www.whonix.org/wiki/Other_Operating_Systems)에 따라 Windows-Whonix-Workstation 만들기
- [ ] `create-media.sh`에 Windows 설치의 Windows PE 패스(특히 "업데이트 설치 중...") 중에 설치할 MSU(Microsoft Update 독립 실행형 패키지)를 추가하는 기능 추가
    - [KB4474419](https://github.com/QubesOS/qubes-issues/issues/3585#issuecomment-521280301)를 사용하여 SHA-256 드라이버 서명 지원을 추가함으로써 오래된 Windows 7 SP1 및 Windows Server 2008(R2 아님) ISO에서 현재 작동하지 않는 QWT 설치를 수정할 수 있습니다.
        - 다른 옵션은 Xen이 다른 드라이버 공급업체가 하는 것처럼 SHA-1로 드라이버에 서명하도록 하는 것이지만, 보안 관점에서 이상적이지 않습니다.
    - KB2921916을 사용하여 최신 버전의 Windows 7에서 SHA-256 *자동* 드라이버 설치 버그를 수정함으로써 `allow-drivers.vbs` 해킹을 제거할 수 있습니다. (자세한 내용은 `allow-drivers.vbs` 참조)
        - 이 Windows 버그는 Microsoft가 기업을 Windows 10으로 강제 업그레이드하려는 시도로 의도적으로 패치 및 패치 해제되었습니다.
    - 몇 가지 Windows 보안 버그 패치?
        - Windows 7용 BlueKeep을 기본으로 패치
        - Windows Server 2008 R2 기본 ISO도 기본적으로 ETERNALBLUE 및 BlueKeep에 취약합니다.
        - 아마 그 부분까지 다룰 가치는 없으며, 사용자는 VM을 만든 후 업데이트하기만 하면 됩니다.
- [ ] 헤드리스 모드
    - 도움 요청
        - Qubes에서 이를 달성하기 위한 메커니즘은 무엇인가요? Qubes GUI 에이전트/데몬에 있는 것인가요?
- [ ] `qubes-dom0-update`를 통해 배송을 더 간소화하고 안전하게 할 수 있도록 이 프로젝트를 패키징
- [ ] Windows의 오픈 소스 대안으로 [ReactOS](https://reactos.org) 지원 추가
    - 적어도 [ReactOS 템플릿이 만들어질](https://github.com/QubesOS/qubes-issues/issues/2809) 때까지는 좋을 것입니다.
    - 아마 ReactOS 개발자들이 ReactOS를 개발하기 위해 이것을 사용하고 싶을 수도 있습니다.
    - 또는 단순히 ReactOS를 템플릿으로 추가 (이 프로젝트 외부에서)
        - 그러나 누군가 이 템플릿을 유지 관리해야 합니다.
        - 또한 QWT/Xen 드라이버가 작동하지 않으면 큰 의미가 없을 수 있습니다.
            - 적어도 복사/붙여넣기 및 파일 전송과 같은 기본 기능에 대해서는
    - 양측의 관심
        - [Qubes OS](https://github.com/QubesOS/qubes-issues/issues/2809)
        - [ReactOS](https://reactos.org/forum/viewtopic.php?p=126279#p126279)
            - "지금까지 받은 협업 제안 중 가장 흥미로운 것 중 하나"
    - [ReactOS 무인 설치](https://reactos.org/wiki/Create_an_unattended_Installation_CD)는 Windows와 다른 것으로 보입니다.
    - [ ] 내가 찾은 유일한 차단 문제는 QEMU SCSI 컨트롤러 유형입니다.
        - Qubes는 코어 관리를 확장하여 libvirt 템플릿에서 SCSI 컨트롤러 구성을 지원할 수 있습니다.
            - 이 솔루션이 더 나은 이유는 [이](https://github.com/QubesOS/qubes-issues/issues/3651#issuecomment-420914348) 댓글에 따르면 현재 SCSI 컨트롤러를 지원하지 않는 다른 여러 OS도 수정할 수 있기 때문입니다.
        - ReactOS가 현재 SCSI 컨트롤러 유형에 대한 지원을 추가할 수 있습니다.
        - [ReactOS Issue](https://reactos.org/forum/viewtopic.php?t=17529)
        - [Qubes OS Issue](https://github.com/QubesOS/qubes-issues/issues/3494)
        - 다른 SCSI 컨트롤러를 노출해도 QEMU가 Xen 스텁 도메인에서 실행되므로 공격 표면이 확장되지 않습니다.
    - ReactOS는 알파 단계이므로 대부분의 사용자에게 현재는 실현 가능하지 않을 것입니다.
    - 도움 요청
        - 현재 이에 대한 일정은 없습니다.

## 최종 목표

Qubes OS에서 [VMWare의 Windows "Easy Install"](https://www.youtube.com/watch?v=1OpDXlttmE0) 기능과 유사(또는 우수)한 기능을 제공합니다. VMWare의 솔루션은 독점이며 유료 제품에서만 사용할 수 있습니다.

VirtualBox에도 [비슷한 기능](https://blogs.oracle.com/scoter/oracle-vm-virtualbox-52:-unattended-guest-os-install)이 있지만 기능이 풍부하지는 않습니다.
도구 다운로드