Docker-OSX:在Docker中跑一个macOS,性能接近原生!
这个项目主要是为了方便安全人员在 Linux 和 Windows 系统上对 macOS 进行安全研究。该项目基于 X11 技术,使用 Docker 运行 macOS,性能接近原生,并且支持 USB 直通和 iMessage 的安全研究。通过 Docker,您可以快速在 Windows、Linux 或 NAS 上运行 macOS,比使用虚拟机更便捷、更轻量。
? 功能简介
- 使用 usbflux 在 Linux 上使用 iPhone OSX KVM
- 在 Linux 上运行 macOS Monterey
- 支持文件夹共享
- 支持 USB 直通(支持热插拔)
- 通过 SSH 连接(使用 50922 端口)
- 通过 VNC 连接(使用 50922 端口)
- 通过序列号生成器进行 iMessage 安全研究
- 支持 X11 转发
- 基于 QEMU+KVM 运行
- 支持 Big Sur 和 Xvfb 无头模式
? 安装 Docker-OSX
在正式开始前,请确保您的设备满足以下要求:
- 至少 20GB 磁盘空间(最低限度的裸安装,若使用 Xcode 则需要 50GB)
- 在 BIOS 设置中启用虚拟化
- 支持 x86_64 kvm
- Auto 模式时至少需要 50GB(其中一半用于基本映像,另一半用于运行时映像)
- 设备上已安装好 Docker
Docker-OSX 通过镜像标签(tag)区分安装的具体 macOS 版本,各版本的安装如下:
Catalina 1.72GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest
Big Sur 2.31GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:big-sur
Monterey 2.30GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
sickcodes/docker-osx:monterey
Ventura 2.36GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
sickcodes/docker-osx:ventura
Sonoma 2.44GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e CPU='Haswell-noTSX' \
-e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
sickcodes/docker-osx:sonoma
High Sierra 2.11GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:high-sierra
Mojave 2.11GB
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:mojave
除了以上各版本的安装命令,项目还支持使用 auto 镜像,虽然镜像较大,但适合感兴趣的朋友深入研究。可以在官方项目的 Wiki 中查看详细教程,包括如何实现 USB 直通和连接 iPhone/iPad 的方法。