Napisz skrypt paniki, aby zdalnie zabezpieczyć komputer Mac Pro przed niewiarygodnym użytkownikiem lokalnym [zamknięte]

12

Sytuacja

Załóżmy, że zezwalam na dostęp administratora „Shady Sam” na mojej stacji roboczej do wykonywania ważnego zadania administracyjnego na komputerze Mac Pro, podając mu tymczasowe hasło logowania do konta root. (Załóżmy, że byli godni zaufania, być może administrator systemów w mojej firmie).

Ze zdalnej lokalizacji (np. Domu) używam laptopa MacBook Pro do obserwowania działań Sama i uczenia się, jak wykonać to zadanie samodzielnie za pomocą pulpitu zdalnego (VNC).

Bez ostrzeżenia Shady Sam robi coś złośliwego! Być może widzę, jak próbuje usunąć dane z dysku twardego lub wtrąca się do ograniczonych folderów itp. Niezależnie od tego nikczemnego czynu chcę natychmiast zablokować Shady'ego Sama i zabezpieczyć komputer najlepiej, jak to możliwe, z mojej zdalnej lokalizacji.

Ponieważ dzielimy mysz i klawiaturę, nie mogłem niezawodnie wykonać akcji z poziomu pulpitu zdalnego (poza tym mogliby zamknąć połączenie). Musiałbym napisać skrypt i uruchomić go zdalnie.

Wyzwanie

Jaki jest najlepszy skrypt (np. panicScript.shLub panicScript.py), który mógłbym uruchomić zdalnie, aby powstrzymać Shady'ego Sama przed wykonaniem jego nikczemnego czynu i uniemożliwić mu powtórzenie?

Wyobrażam sobie, że będę go uruchamiał w następujący sposób:

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

Możliwe funkcje:

Inne pomysły są wyraźnie zalecane!

  • Zmień hasła do dowolnego / wszystkich kont na remoteMachine
  • Wyłącz klawiaturę lub mysz
  • Wyłącz monitor
  • Uruchom ponownie maszynę

Założenia

Shady Sam nie uszkodzić Mac Pro w żaden sposób usunąć lub którykolwiek z jego składników (np fizycznie usunąć dysk twardy lub przewodowego połączenia sieciowego), ale będą próbować ponownego logowania i kontynuować jego podły czyn tak szybko, jak to możliwe. Sam ma (w przeciwnym razie) nieograniczony fizyczny dostęp do komputera i hasło logowania do konta root.

Załóżmy, że Mac Pro ma monitor, klawiaturę, mysz, zewnętrzny dysk twardy i połączenie Ethernet do Internetu. Załóżmy, że może drukować na drukarce sieciowej we wspólnym obszarze. Dla zabawy załóżmy, że mam standardowe konto użytkownika na kilku stacjach roboczych współpracowników, które są identyczne z moimi (dzięki czemu mogę połączyć się z ich maszynami przez ssh).

Załóżmy, że jest tuzin skupionych na zewnątrz kabin, aby współpracownicy mogli wstawać i rozmawiać ze sobą. Jednak moi współpracownicy na ogół nie będą podejrzewać, że Shady Sam robi coś złośliwego, jeśli zobaczą go przy moim komputerze, ponieważ pomógł kilku z nich w przeszłości i nie zrobił nikczemnych rzeczy na ich komputerach.

Ograniczenia

Skrypt paniki jest początkowo na moim laptopie w domu. Możesz to scpzrobić na moją maszynę i uruchomić tam lub uruchomić bezpośrednio z mojego laptopa w domu. (Podaj w swojej odpowiedzi!)

Wszystkie działania skryptu muszą być nieszkodliwe i / lub odwracalne z mojej zdalnej lokalizacji, aby móc odzyskać dostęp w późniejszym czasie z mojej zdalnej lokalizacji i muszą być standardowymi funkcjami / poleceniami na Macu Pro.

Skrypt może wywoływać inne skrypty / programy, o ile są one standardowo dostarczane z maszyną. Narzędzia skryptowe wiersza poleceń (np. awk) Są w porządku, o ile ich polecenia znajdują się w skrypcie głównym (np history | awk '{print $2}'.). To oczywiście ogranicza języki skryptowe, których można by użyć.

Wywołanie niestandardowego skryptu lub programu, który napisałeś (np. . ~/myOtherScriptOfKungFoo.sh) Jest w porządku, chyba że wygenerujesz go ze skryptu, a wygenerowany skrypt ma mniej niż 32 znaki:

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

Nie powinienem zmuszać się do interakcji ze skryptem więcej niż jeden raz (np. Aby wpisać hasło).

Kryteria

Skrypt powinien być krótki (maksymalnie 30 wierszy), ale czytelny. Podstawowymi kryteriami są dokładność, kreatywne funkcje i styl, który jest lepszy niż prostota.

Ostatecznie najwięcej głosów wygrywa!

jvriesem
źródło
28
Porada od specjalistów: nie zatrudniaj nikogo o imieniu Shady Sam.
Geobits

Odpowiedzi:

10

Skrypt antypaniczny należy wysłać na komputer zdalny (Mac Pro) za pomocą scp, a następnie uruchomić (nie wymaga sudo ani żadnych danych wejściowych):

Oto skrypt: (zakłada się, że jesteś Johnem Smithem)

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

Aby uzyskać maksymalną wydajność, powinieneś uruchomić to na każdej maszynie w pokoju, aby wszyscy zauważyli problem i go zatrzymali.

Hannes Karppila
źródło