La cronologia degli script della shell di AppleScript fa cronologia?

7

Uso frequentemente il comando do shell script in AppleScript (AS) per restituire alcune informazioni, incluso il testo crittografato.

Un esempio è:

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

Se eseguito in Terminale, questo comando registra la cronologia e può essere visualizzato digitando: history , quindi premendo il tasto Invio .

Problema: L'esempio precedente include la password in testo semplice come parametro e viene visualizzata nella cronologia (quando viene eseguita in Terminal), da cui può essere facilmente copiata e utilizzata per invertire la stringa crittografata, nessuna conoscenza richiesta.

Il comando log do shell script "history" di AppleScript non restituisce dati. Allo stesso modo, eseguendo il comando history nel terminale, dopo che la crittografia di esempio è stata eseguita tramite AS, non visualizza il comando del terminale AS in questa cronologia. Tutto sommato, mi porta a credere che il comando AS sia stato ovviamente eseguito attraverso una shell diversa. Sapendo che la shell differisce per ogni utente (cioè il mio account non può vedere la cronologia del terminale di un altro account), la domanda segue.

Domanda: Significa che non c'è nessuna registrazione del comando AS in nessuna delle storie e dei log mantenuti da macOS in qualsiasi momento? O è sepolto da qualche parte accessibile dove può essere letto, interpretato e quindi la crittografia invertita?

Anche se forse stimolante e aperto all'opinione, penso che sia all'interno del regno delle domande. Sono interessato alla risposta da un punto di vista della sicurezza e spero di ottenere un'immagine più chiara di if / how / dove il terminale registra i comandi AS - come fa il terminale con la cronologia .
Grazie a tutti.

    
posta ProGrammer 13.12.2017 - 00:46
fonte

1 risposta

3

Se esegui il seguente comando do shell script in Script Editor :

do shell script "set"

Mostrato più in basso è ciò che viene restituito.

Come si può vedere, non ci sono history relative variabili di shell impostate e come tale, per fare una storia più breve, non esiste una cronologia dei comandi in fase di salvataggio.

Se vuoi leggere oltre, dai un'occhiata alla sezione HISTORY nella pagina di manuale bash ,

Potrebbero interessarti anche altre cronologia dei comandi Variabili della shell, ad es. HISTCONTROL , HISTFILE HISTFILESIZE , < strong> HISTIGNORE , HISTSIZE , HISTIGNORE , HISTSIZE e HISTTIMEFORMAT .

Inoltre, quando viene eseguito un script di shell in un Automator flusso di lavoro , viene eseguito lo stesso si applica anche lì, per lo stesso motivo con il do shell script comando in Script Editor , nessuna cronologia correlata variabili di shell sono impostati.

Output del comando set da un comando do shell script AppleScript:

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
    
risposta data 13.12.2017 - 02:52
fonte

Leggi altre domande sui tag