Una implementación hacky del protocolo de intercambio de contraseñas Wi-Fi de Apple para MacOS.
Una implementación solo de Linux en Python está disponible aquí.
Este proyecto contiene software experimental y es el resultado de los esfuerzos de ingeniería inversa del proyecto Open Wireless Link. El código tiene solo fines documentales y educativos. No ha sido probado e incompleto . Este proyecto no está afiliado o respaldado por Apple Inc.
Instale libsodium
, por ejemplo, a través de Homebrew:
brew install libsodium
Proporcionamos los roles de otorgantes y solicitantes. Puede usar la aplicación XCode o make
para crear el proyecto.
Ejecute el Target PWS-Grantor
para iniciar un cliente de dispositivo para compartir contraseñas, lo que escaneará anuncios BLE y se conectará a la primera coincidencia y comenzará a compartir. Alternativamente, cuando se construye a través de make
:
build/DerivedData/Build/Products/Debug/PWS-Grantor < ssid > < psk >
El rol de solicitante requiere una configuración especial debido a las restricciones de seguridad y Bluetooth de MacOS.
Paso 1: Necesitamos deshabilitar la función de seguridad AMFI para acceder al certificado de ID de Apple del usuario como se describe aquí. Reiniciar en modo de recuperación (⌘+R) y ejecutar:
csrutil disable
nvram boot-args= " amfi_get_out_of_my_way=0x1 "
Paso 2: Dado que no podemos establecer los datos del fabricante de un anuncio BLE con CoreBluetooth
, proporcionamos un servidor de retransmisión GATT en python-gatt-relay
. Configure el relé en una máquina Linux externa, por ejemplo, una Raspberry Pi 4. Consulte el README
incluido para más detalles.
Paso 3: Finalmente, ejecute el objetivo PWS-Requestor
para solicitar una contraseña desde otro dispositivo. Alternativamente, cuando se construye a través de make
:
build/DerivedData/Build/Products/Debug/PWS-Requestor < appleID > < gattServerAddress >