Scrivi uno script di panico per proteggere in remoto un Mac Pro da un utente locale non affidabile [chiuso]


12

La situazione

Supponiamo che autorizzi l'accesso dell'amministratore "Shady Sam" sulla mia stazione di lavoro per eseguire un'importante attività amministrativa sul mio Mac Pro per me dando loro una password di accesso root temporanea. (Supponiamo che fossero affidabili, forse un amministratore di sistema per la mia azienda.)

Da una posizione remota (ad es. A casa), utilizzo il mio laptop MacBook Pro per osservare le attività di Sam e imparare come svolgere l'attività da solo tramite Desktop remoto (VNC).

Senza preavviso, Shady Sam fa qualcosa di sgarbato! Forse lo vedo tentare di eliminare i dati dal mio disco rigido o fare leva su cartelle riservate, ecc. Qualunque sia la cattiva azione, voglio bloccare immediatamente Shady Sam e proteggere il computer il più possibile dalla mia posizione remota.

Dato che condividiamo il mouse e la tastiera, non ho potuto eseguire in modo affidabile un'azione da Desktop remoto (inoltre, potevano chiudere la connessione). Dovrei scrivere uno script ed eseguirlo da remoto.

La sfida

Qual è il miglior copione (es. panicScript.shO panicScript.py) che potrei eseguire in remoto per impedire a Shady Sam di compiere la sua azione malvagia e impedirgli di riprovare?

Mi immagino di eseguirlo nel modo seguente:

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

Possibili caratteristiche:

Altre idee sono espressamente incoraggiate!

  • Modifica le password di qualsiasi / tutti gli account su remoteMachine
  • Disabilita la tastiera o il mouse
  • Disabilita il monitor
  • Riavvia la macchina

ipotesi

Shady Sam non danneggia il Mac Pro in qualsiasi modo o rimuovere uno qualsiasi dei suoi componenti (ad esempio, rimuovere fisicamente un disco rigido o connessione di rete cablata), ma si tenterà di ri-login e continuare il suo vile atto il più rapidamente possibile. Sam ha (altrimenti) un accesso fisico illimitato al computer e una password di accesso root.

Supponiamo che Mac Pro abbia un monitor, una tastiera, un mouse, un disco rigido esterno e una connessione Ethernet per Internet. Supponiamo che possa stampare su una stampante di rete in un'area comune. Per divertimento, supponiamo che io abbia un account utente standard su diverse stazioni di lavoro del collega, che sono identiche alle mie (quindi posso collegarmi alle loro macchine tramite ssh).

Supponiamo che ci siano una dozzina di cabine all'aperto raggruppate in modo che i colleghi possano alzarsi e parlare tra loro. I miei colleghi, tuttavia, generalmente non sospetteranno che Shady Sam stia facendo qualcosa di sgarbato se lo vedono al mio computer perché ha aiutato molti di loro in passato e non ha fatto cose sgradevoli ai loro computer.

vincoli

Lo script di panico è inizialmente sul mio laptop a casa. Puoi scpfarlo sul mio computer ed eseguirlo lì, oppure eseguirlo direttamente dal mio laptop a casa. (Specifica nella tua risposta!)

Tutte le azioni intraprese dallo script devono essere non dannose e / o reversibili dalla mia posizione remota in modo da poter riottenere l'accesso in un secondo momento dalla mia posizione remota e devono essere funzioni / comandi standard su un Mac Pro.

Lo script può chiamare altri script / programmi purché siano standard con la macchina. Gli strumenti di scripting della riga di comando (ad es. awk) Vanno bene purché i loro comandi siano contenuti nello script principale (ad es history | awk '{print $2}'.). Ciò limita certamente i linguaggi di scripting che potrebbero essere utilizzati.

Chiamare uno script o un programma personalizzato che hai scritto (ad es. . ~/myOtherScriptOfKungFoo.sh) Non va bene, a meno che non lo generi all'interno del tuo script e lo script generato abbia meno di 32 caratteri:

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

Non dovrei interagire con lo script più di una volta (ad esempio per digitare una password).

criteri

Lo script dovrebbe essere breve (limite di 30 righe), ma leggibile. I criteri primari sono la completezza, le caratteristiche creative e lo stile, che è meglio della semplicità.

Alla fine, il maggior numero di voti vince!


28
Consiglio dell'esperto: non assumere nessuno di nome Shady Sam.
Geobits,

Risposte:


10

Lo script di panico deve essere inviato al computer remoto (Mac Pro) utilizzando scp, quindi eseguirlo (non è richiesto alcun sudo o input):

Ecco la sceneggiatura: (questo presuppone che tu sia 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

Per la massima efficienza, dovresti eseguirlo su ogni singola macchina nella stanza per assicurarti che tutti notino il problema e lo fermino.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.