7 votos

¿Cómo puede Charles Proxy cambiar la configuración sin derechos de administrador después de la primera vez?

Charles Proxy tiene una característica que puede configurar automáticamente los ajustes de proxy del sistema cuando se inicia.

Cada forma programática que he encontrado de cambiar estos ajustes (por ejemplo, networksetup) requiere privilegios elevados para su uso, sin embargo esta aplicación de alguna manera se las arregla para hacer esto con permisos de usuario estándar. La única vez que requiere privilegios elevados es la primera vez que se ejecuta.

¿Dónde se pueden gestionar sus permisos para realizar cambios en el futuro para, por ejemplo, hacer que vuelva a pedir privilegios?

6voto

Steve Evans Puntos 155

Ayudante privilegiado

Si Charles Proxy sigue Recomendaciones de Apple los permisos obtenidos durante la configuración inicial se codificarán como Privileged Helper.

En MacOS la carpeta /Library/PrivilegedHelperTools contiene herramientas que previamente se han autentificado y autorizado con el usuario.

La carpeta /Library/LaunchDaemons contiene el launchd que inician y determinan el acceso a las herramientas.

Existen otros enfoques, como:

Ejecución con privilegios elevados

Si necesita ejecutar código con privilegios elevados, puede hacerlo de varias formas:

  • Puede ejecutar un demonio con privilegios elevados al que llame cuando necesite realizar una tarea privilegiada. El método preferido para ejecutar un demonio es utilizar el demonio launchd (véase launchd). Es más fácil usar launchd para lanzar un demonio y más fácil comunicarse con un demonio que bifurcar su propio proceso privilegiado.
  • Puede utilizar el comando authopen para leer, crear o actualizar un archivo (consulte authopen).
  • Puede utilizar una llamada al sistema BSD para cambiar el nivel de privilegio (consulte Llamadas para cambiar el nivel de privilegio). Estos comandos tienen una semántica confusa. Debe tener cuidado de usarlos correctamente, y es muy importante comprobar los valores de retorno de estas llamadas para asegurarse de que han tenido éxito.

3voto

bradleyjkemp Puntos 58

Después de investigar más, encontré esta descripción de Vulnerabilidades y Exposiciones Comunes (CVE) CVE-2017-15358 Root privesc local en Charles Proxy 4.2 :

La configuración de un proxy para todo el sistema requiere permisos Root, por lo que se gestiona mediante un binario suid ubicado dentro de la carpeta de la aplicación Charles:

/Applications/Charles.app/Contents/Resources/Charles Proxy Settings Dice que en su primera configuración, Charles Proxy crea un binario setuid que se utiliza en ejecuciones posteriores para cambiar la configuración del proxy.

El enlace en la respuesta de Graham señala este método como una forma heredada de lograr este comportamiento y ya no se recomienda.

0 votos

Ese CVE es un gran hallazgo y un buen ejemplo de por qué Apple quiere evitar los binarios suid. Me pregunto cuánto tiempo pasará antes de que los sistemas operativos de Apple dejen de respetar el sticky bit implicado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X