¿AppleScript hace el script de shell en el historial?

7

Con frecuencia uso el comando do shell script en AppleScript (AS) para devolver información, incluido el texto cifrado.

Uno de estos ejemplos es:

set encrypted to (do shell script "echo 'my secret text' | openssl enc -aes-256-cbc -a -pass pass:Pass123")

Si se ejecuta en la Terminal, este comando se registra en el historial y se puede ver escribiendo: history , luego presionando la tecla Volver .

Problema: El ejemplo anterior incluye la contraseña de texto sin formato como un parámetro, y se muestra en el historial (cuando se ejecuta en la Terminal), desde donde puede copiarse fácilmente y usarse para revertir la cadena cifrada, sin necesidad de conocimiento.

El comando log do shell script "history" de AppleScript no devuelve datos. Del mismo modo, ejecutar el comando history en el terminal: después de que el cifrado de ejemplo se ejecutó a través de AS, tampoco muestra el comando de terminal AS en este historial. Con todo, me lleva a creer que el comando AS se ejecutó obviamente a través de un shell diferente. Sabiendo que el shell es diferente para cada usuario (es decir, mi cuenta no puede ver el historial del terminal de otra cuenta), la pregunta que sigue es la siguiente.

Pregunta: ¿Significa eso que no hay registro del comando AS en ninguna de las historias y registros guardados por macOS en ningún momento? ¿O está enterrado en un lugar accesible donde se puede leer, interpretar y, por tanto, revertir el cifrado?

Aunque tal vez sea sugerente y esté abierto a la opinión, creo que está dentro del ámbito de las preguntas. Me interesa la respuesta desde un punto de vista de seguridad y espero obtener una imagen más clara de si / cómo / dónde el terminal registra los comandos de AS, como lo hace Terminal con el historial .
Gracias a todos.

    
pregunta ProGrammer 13.12.2017 - 00:46

1 respuesta

3

Si ejecuta el siguiente comando do shell script en Editor de secuencias de comandos :

do shell script "set"

Más abajo se muestra lo que se devuelve.

Como se puede ver, no hay un historial relacionado con variables de shell y, como tal, para acortar una historia más larga, no hay un historial de comandos siendo guardado.

Si desea leer más, consulte la sección HISTORIAL en la página de manual bash ,

También puede ser de interés, otras historia de comandos Variables de Shell, por ejemplo, HISTCONTROL , HISTFILE HISTFILESIZE , < strong> HISTIGNORE , HISTSIZE , HISTIGNORE , HISTSIZE y HISTTIMEFORMAT .

También es de destacar que cuando se ejecuta una Ejecución del script de shell en un Automator flujo de trabajo , lo mismo también se aplica allí, por el mismo motivo que con el comando do shell script en Editor de secuencias de comandos , no hay historial relacionadas con variables de shell están configurados.

Salida del comando set de un AppleScript do shell script command:

Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.HPRIi1Tsop/Render
BASH=/bin/sh
BASH_ARGC=()
BASH_ARGV=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]=\"3\" [1]=\"2\" [2]=\"57\" [3]=\"1\" [4]=\"release\" [5]=\"x86_64-apple-darwin17\")
BASH_VERSION='3.2.57(1)-release'
DIRSTACK=()
EUID=501
GROUPS=()
HOME=/Users/me
HOSTNAME=mes-Mac.local
HOSTTYPE=x86_64
IFS='   
'
LOGNAME=me
MACHTYPE=x86_64-apple-darwin17
OPTERR=1
OPTIND=1
OSTYPE=darwin17
PATH=/usr/bin:/bin:/usr/sbin:/sbin
POSIXLY_CORRECT=y
PPID=4330
PS4='+ '
PWD=/
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.WQb3vmbYE7/Listeners
TERM=dumb
TMPDIR=/var/folders/w0/lht0h70x06b8hdb5lx474pkc0000gn/T/
UID=501
USER=me
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
_=sh
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
    
respondido por el user3439894 13.12.2017 - 02:52

Lea otras preguntas en las etiquetas