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.sh
Lub 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 scp
zrobić 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!