Напишите сценарий паники для удаленной защиты Mac Pro от ненадежного локального пользователя [закрыто]

12

Ситуация

Предположим, я разрешаю администратору «Shady Sam» на моей рабочей станции выполнять важные административные задачи на моем Mac Pro, предоставляя им временный пароль для входа в систему. (Предположим , что они были надежными, возможно, системы администратора для моей компании.)

Из удаленного места (например, дома) я использую свой ноутбук MacBook Pro, чтобы наблюдать за действиями Сэма и учиться самому выполнять задачу через удаленный рабочий стол (VNC).

Без предупреждения Шейди Сэм делает что-то подлое! Возможно, я вижу, как он пытается удалить данные с моего жесткого диска или пытается открыть ограниченные папки и т. Д. Независимо от этого подлого поступка, я хочу немедленно заблокировать Шейди Сэма и максимально обезопасить компьютер из моего удаленного местоположения.

Поскольку мы совместно используем мышь и клавиатуру, я не могу надежно выполнить действие из удаленного рабочего стола (кроме того, они могут закрыть соединение). Я должен был написать сценарий и запустить его удаленно.

Соревнование

Какой лучший сценарий (например, panicScript.shили panicScript.py), который я мог бы запустить удаленно, чтобы остановить Шейди Сэма от совершения его подлого поступка и помешать ему повторить попытку?

Я предполагаю, что я управляю этим следующим образом:

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

Возможные особенности:

Другие идеи прямо поощряются!

  • Изменить пароли любых / всех учетных записей на remoteMachine
  • Отключить клавиатуру или мышь
  • Отключить монитор
  • Перезагрузите машину

Предположения

Shady Сэм не повредит Mac Pro в любом случае или удалить какой - либо из его компонентов (например , физически удалить жесткий диск или проводное подключение к сети), но он будет пытаться войти заново и продолжить его подлое дело как можно быстрее. Сэм имеет (в противном случае) неограниченный физический доступ к компьютеру и пароль для входа в систему.

Предположим, что у Mac Pro есть монитор, клавиатура, мышь, внешний жесткий диск и подключение к сети Ethernet для Интернета. Предположим, он может печатать на сетевом принтере в общей области. Для забавы, давайте предположим, что у меня есть стандартная учетная запись пользователя на нескольких рабочих станциях коллег, которые идентичны моей (так что я могу подключаться к их машинам через ssh).

Предположим, что есть дюжина кабин под открытым небом, сгруппированных вместе, чтобы коллеги могли встать и поговорить друг с другом. Мои коллеги, однако, обычно не подозревают, что Шейди Сэм делает что-то подлое, если они видят его за моим компьютером, потому что он помогал нескольким из них в прошлом и не делал подлых поступков со своими компьютерами.

Ограничения

Сценарий паники изначально на моем ноутбуке дома. Вы можете подключить scpего к моей машине и запустить его там или запустить прямо с моего ноутбука дома. (Укажите в своем ответе!)

Все действия, предпринимаемые сценарием, должны быть неповрежденными и / или обратимыми из моего удаленного местоположения, чтобы я мог восстановить доступ на более позднем этапе из моего удаленного местоположения, и должны быть стандартными функциями / командами на Mac Pro.

Скрипт может вызывать другие скрипты / программы, если они входят в стандартную комплектацию машины. Инструменты сценариев командной строки (например awk) в порядке, если их команды содержатся в основном сценарии (например history | awk '{print $2}'). Это по общему признанию ограничивает языки сценариев, которые могли бы использоваться.

Вызов пользовательского сценария или программы, которую вы написали (например . ~/myOtherScriptOfKungFoo.sh), не подходит, если только вы не сгенерируете их из своего сценария, а созданный сценарий содержит менее 32 символов:

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

Мне не нужно взаимодействовать со сценарием более одного раза (например, для ввода пароля).

критерии

Сценарий должен быть коротким (не более 30 строк), но читаемым. Основными критериями является тщательность, креативность и стиль, что лучше, чем простота.

В конечном счете, большинство голосов выигрывает!

jvriesem
источник
28
Pro-tip: Не нанимайте никого по имени Shady Sam.
Geobits

Ответы:

10

Сценарий паники должен быть отправлен на удаленный компьютер (Mac Pro) с помощью scp, а затем запущен (sudo или любой ввод не требуется):

Вот сценарий: (это предполагает, что вы Джон Смит)

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

Для максимальной эффективности, вы должны запустить это на каждой машине в комнате, чтобы все заметили проблему и остановили его.

Ханнес Карппила
источник