Schreiben Sie ein Panik-Skript, um einen Mac Pro von einem nicht vertrauenswürdigen lokalen Benutzer fernzusichern. [Closed]

12

Die Situation

Angenommen, ich erlaube "Shady Sam" -Administratorzugriff auf meiner Workstation, um eine wichtige Verwaltungsaufgabe auf meinem Mac Pro für mich auszuführen, indem ich ihnen ein temporäres Root-Anmeldekennwort gebe. (Angenommen, sie sind vertrauenswürdig, vielleicht ein Systemadministrator für mein Unternehmen.)

Von einem entfernten Ort (z. B. zu Hause) aus benutze ich mein MacBook Pro-Laptop, um Sams Aktivitäten zu beobachten und zu lernen, wie ich die Aufgabe über Remote Desktop (VNC) selbst erledige.

Ohne Vorwarnung macht Shady Sam etwas hinterhältiges! Vielleicht sehe ich, wie er versucht, Daten von meiner Festplatte zu löschen oder in eingeschränkte Ordner usw. zu verschieben. Was auch immer die hinterhältige Tat sein mag, ich möchte Shady Sam sofort aussperren und den Computer so gut wie möglich von meinem entfernten Standort aus sichern.

Da wir Maus und Tastatur gemeinsam nutzen, konnte ich in Remote Desktop keine zuverlässige Aktion ausführen (außerdem konnte die Verbindung getrennt werden). Ich müsste ein Skript schreiben und es remote ausführen.

Die Herausforderung

Was ist das beste Skript (zB panicScript.shoder panicScript.py), das ich aus der Ferne ausführen könnte, um Shady Sam davon abzuhalten, seine hinterhältige Tat auszuführen und ihn daran zu hindern, es erneut zu versuchen?

Ich stelle mir vor, wie ich es laufen lasse:

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

Mögliche Merkmale:

Andere Ideen sind ausdrücklich erwünscht!

  • Ändern Sie die Passwörter für alle Accounts in remoteMachine
  • Deaktivieren Sie die Tastatur oder Maus
  • Deaktivieren Sie den Monitor
  • Starten Sie die Maschine neu

Annahmen

Shady Sam wird den Mac Pro in keiner Weise beschädigen oder seine Komponenten entfernen (z. B. eine Festplatte oder eine kabelgebundene Netzwerkverbindung physisch entfernen), aber er wird versuchen, sich erneut anzumelden und seine gemeine Tat so schnell wie möglich fortzusetzen. Sam hat (ansonsten) uneingeschränkten physischen Zugriff auf den Computer und ein Root-Login-Passwort.

Angenommen, der Mac Pro verfügt über einen Monitor, eine Tastatur, eine Maus, eine externe Festplatte und eine Ethernet-Verbindung für das Internet. Angenommen, es kann auf einem Netzwerkdrucker in einem gemeinsamen Bereich gedruckt werden. Nehmen wir zum Spaß an, ich habe ein Standard-Benutzerkonto auf mehreren Workstations von Kollegen, die mit meinen identisch sind (damit ich über eine Verbindung zu ihren Computern herstellen kann ssh).

Angenommen, es gibt ein Dutzend Open-Air-Kabinen, in denen Mitarbeiter aufstehen und miteinander sprechen können. Meine Kollegen werden jedoch im Allgemeinen nicht den Verdacht haben, dass Shady Sam etwas Verhängnisvolles tut, wenn sie ihn an meinem Computer sehen, weil er mehreren von ihnen in der Vergangenheit geholfen und ihren Computern keine verhängnisvollen Dinge angetan hat.

Einschränkungen

Das Panik-Skript befindet sich anfangs auf meinem Laptop zu Hause. Sie können scpes auf meinem Computer ausführen und dort ausführen oder es direkt von meinem Laptop zu Hause ausführen. (Bitte in der Antwort angeben!)

Alle Aktionen, die vom Skript ausgeführt werden, müssen von meinem Remote-Standort aus unbeschädigt und / oder umkehrbar sein, damit ich später von meinem Remote-Standort aus wieder auf sie zugreifen kann. Auf einem Mac Pro müssen es sich um Standardfunktionen / -befehle handeln.

Das Skript kann andere Skripte / Programme aufrufen, sofern diese standardmäßig mit dem Computer geliefert werden. Befehlszeilen-Skript-Tools (z. B. awk) sind in Ordnung, solange ihre Befehle im Hauptskript (z history | awk '{print $2}'. B. ) enthalten sind. Dies begrenzt zugegebenermaßen die Skriptsprachen, die verwendet werden können.

Das Aufrufen eines benutzerdefinierten Skripts oder Programms, das Sie geschrieben haben (z. B. . ~/myOtherScriptOfKungFoo.sh), ist nur dann in Ordnung, wenn Sie es aus Ihrem Skript generieren und das generierte Skript weniger als 32 Zeichen enthält:

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

Ich sollte nicht mehr als einmal mit dem Skript interagieren müssen (z. B. um ein Passwort einzugeben).

Kriterien

Das Skript sollte kurz (maximal 30 Zeilen) und dennoch lesbar sein. Hauptkriterien sind Gründlichkeit, kreative Merkmale und Stil, der besser ist als Einfachheit.

Letztendlich gewinnt die meisten Stimmen!

jvriesem
quelle
28
Tipp: Stellen Sie niemanden mit dem Namen Shady Sam ein.
Geobits

Antworten:

10

Das Panik-Skript sollte mit scp an den Remote-Computer (Mac Pro) gesendet und dann ausgeführt werden (kein Sudo oder Eingaben erforderlich):

Hier ist das Skript: (Dies setzt voraus, dass Sie John Smith sind)

#!/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

Um eine maximale Effizienz zu erzielen, sollten Sie dies auf jeder einzelnen Maschine im Raum ausführen, um sicherzustellen, dass jeder das Problem bemerkt und ihn stoppt.

Hannes Karppila
quelle