Escreva um script de pânico para proteger remotamente um Mac Pro de um usuário local não confiável [fechado]

12

A situação

Suponha que eu permita que o acesso de administrador "Shady Sam" na minha estação de trabalho execute uma tarefa administrativa importante no meu Mac Pro, fornecendo a eles uma senha de login raiz temporária. (Suponha que eles sejam confiáveis, talvez um administrador de sistemas da minha empresa.)

Em um local remoto (por exemplo, em casa), eu uso o meu laptop MacBook Pro para observar as atividades de Sam e aprender como executar a tarefa pessoalmente através da Área de Trabalho Remota (VNC).

Sem aviso, Shady Sam faz algo covarde! Talvez eu o veja tentando excluir dados do meu disco rígido ou procurar em pastas restritas, etc. Seja qual for a ação covarde, quero bloquear Shady Sam imediatamente e proteger o computador o melhor possível da minha localização remota.

Como compartilhamos o mouse e o teclado, não foi possível executar uma ação de maneira confiável na Área de Trabalho Remota (além disso, eles poderiam fechar a conexão). Eu teria que escrever um script e executá-lo remotamente.

O desafio

Qual é o melhor script (por exemplo, panicScript.shou panicScript.py) que eu poderia executar remotamente para impedir que Shady Sam realizasse sua ação covarde e impedi-lo de tentar novamente?

Eu me imagino executando-o da seguinte maneira:

scp panicScript.sh remoteMachine:~/panicScript.sh
ssh remoteMachine . ~/panicScript.sh

Possíveis recursos:

Outras idéias são expressamente encorajadas!

  • Alterar senhas de qualquer / todas as contas no remoteMachine
  • Desativar o teclado ou mouse
  • Desabilitar o monitor
  • Reinicie a máquina

Premissas

Shady Sam não irá danificar o Mac Pro em qualquer forma ou remover qualquer um dos seus componentes (por exemplo, remover fisicamente um disco rígido ou conexão de rede com fio), mas ele vai tentar re-login e continuar sua covarde ação o mais rápido possível. Sam tem (caso contrário) acesso físico irrestrito ao computador e uma senha de login raiz.

Suponha que o Mac Pro tenha um monitor, teclado, mouse, disco rígido externo e uma conexão Ethernet para a Internet. Vamos supor que ele possa imprimir em uma impressora de rede em uma área comum. Por diversão, vamos supor que eu tenha uma conta de usuário padrão nas estações de trabalho de vários colegas de trabalho, idênticas às minhas (para que eu possa conectar-me às máquinas deles ssh).

Suponha que haja uma dúzia de cubículos ao ar livre agrupados para que os colegas de trabalho possam se levantar e conversar um com o outro. Meus colegas de trabalho, no entanto, geralmente não suspeitam que Shady Sam esteja fazendo algo desonesto se o virem no meu computador porque ele ajudou vários deles no passado e não fez coisas desonestos em seus computadores.

Restrições

O script de pânico está inicialmente no meu laptop em casa. Você pode scpinstalá-lo na minha máquina e executá-lo lá, ou executá-lo diretamente do meu laptop em casa. (Especifique na sua resposta!)

Todas as ações executadas pelo script devem ser não-prejudiciais e / ou reversíveis a partir do meu local remoto, para que eu possa recuperar o acesso posteriormente a partir do meu local remoto, e devem ser recursos / comandos padrão em um Mac Pro.

O script pode chamar outros scripts / programas, desde que sejam padrão com a máquina. As ferramentas de script da linha de comando (por exemplo awk) são válidas desde que seus comandos estejam contidos no script principal (por exemplo history | awk '{print $2}'). É certo que isso limita as linguagens de script que poderiam ser usadas.

Chamar um script ou programa personalizado que você escreveu (por exemplo . ~/myOtherScriptOfKungFoo.sh) não é bom, a menos que você o gere no seu script e o script gerado tenha menos de 32 caracteres:

echo -e "#"'!'"/bin/bash\necho \"Hello, World\"" >> test.sh
chmod +x test.sh
. test.sh 

Eu não deveria ter que interagir com o script mais de uma vez (por exemplo, para digitar uma senha).

Critério

O script deve ser curto (limite de 30 linhas), mas legível. Os critérios principais são precisão, recursos criativos e estilo, o que é melhor que a simplicidade.

Por fim, o maior número de votos vence!

jvriesem
fonte
28
Dica profissional: não contrate ninguém chamado Shady Sam.
Geobits

Respostas:

10

O script de pânico deve ser enviado à máquina remota (Mac Pro) usando scp e, em seguida, execute (sem necessidade de sudo ou qualquer entrada):

Aqui está o script: (isso pressupõe que você é John Smith)

#!/bin/bash -m
f() {
 while true
 do
  pmset displaysleepnow
  sleep 0.1
 done
}
f&
while true
do
 osascript -e "set Volume 10"
 say -v Ralph "Stop Shady Sam now. He is trying to do something he is not allowed to."
 for n in {1..10};
 do
  afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/Hit.aiff
  sleep 0.05
 done
 sleep 0.1
 say -v Ralph "This is John Smith speaking."
done

Para máxima eficiência, você deve executar isso em todas as máquinas da sala para garantir que todos notem o problema e o parem.

Hannes Karppila
fonte