Viết một tập lệnh hoảng loạn để bảo mật Mac Pro từ xa khỏi người dùng cục bộ không đáng tin cậy [đã đóng]


12

Tình huống

Giả sử tôi cho phép quản trị viên "Shady Sam" trên máy trạm của mình thực hiện một tác vụ quản trị quan trọng trên Mac Pro cho tôi bằng cách cung cấp cho họ mật khẩu đăng nhập gốc tạm thời. (Giả sử họ đáng tin cậy, có lẽ là một hệ thống quản trị cho công ty của tôi.)

Từ một địa điểm từ xa (ví dụ như nhà), tôi sử dụng máy tính xách tay MacBook Pro của mình để quan sát các hoạt động của Sam và tìm hiểu cách tự thực hiện nhiệm vụ thông qua Remote Desktop (VNC).

Không một lời cảnh báo, Shady Sam làm điều gì đó thật liều lĩnh! Có lẽ tôi thấy anh ta đang cố gắng xóa dữ liệu khỏi ổ cứng của tôi hoặc tò mò vào các thư mục bị hạn chế, v.v. Dù hành động tồi tệ đó, tôi muốn khóa Shady Sam ngay lập tức và bảo vệ máy tính tốt nhất có thể từ vị trí từ xa của tôi.

Vì chúng tôi chia sẻ chuột và bàn phím, tôi không thể thực hiện một hành động đáng tin cậy từ bên trong Remote Desktop (ngoài ra, chúng có thể đóng kết nối). Tôi phải viết một kịch bản và chạy nó từ xa.

Các thách thức

Kịch bản tốt nhất là gì (ví dụ panicScript.shhoặcpanicScript.py ) Tôi có thể chạy từ xa để ngăn Shady Sam thực hiện hành động đê tiện của mình ngăn anh ta thử lại lần nữa?

Tôi hình dung bản thân mình chạy nó theo cách sau:

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

Các tính năng có thể:

Những ý tưởng khác được khuyến khích rõ ràng!

  • Thay đổi mật khẩu của bất kỳ / tất cả tài khoản trên remoteMachine
  • Vô hiệu hóa bàn phím hoặc chuột
  • Vô hiệu hóa màn hình
  • Khởi động lại máy

Giả định

Shady Sam sẽ không làm hỏng Mac Pro bằng bất kỳ cách nào hoặc loại bỏ bất kỳ thành phần nào của nó (ví dụ: loại bỏ vật lý ổ cứng hoặc kết nối mạng có dây), nhưng anh ta sẽ cố gắng đăng nhập lại và tiếp tục hành động nhanh nhất có thể. Sam có (nếu không) quyền truy cập vật lý không hạn chế vào máy tính và mật khẩu đăng nhập gốc.

Giả sử Mac Pro có màn hình, bàn phím, chuột, ổ cứng ngoài và kết nối ethernet cho internet. Giả sử nó có thể in ra máy in mạng ở khu vực chung. Để giải trí, giả sử tôi có tài khoản người dùng chuẩn trên một số máy trạm của đồng nghiệp, giống hệt với máy của tôi (để tôi có thể kết nối với máy của họ thông quassh ).

Giả sử có một tá các ô ngoài trời được nhóm lại với nhau để đồng nghiệp có thể đứng lên và nói chuyện với nhau. Tuy nhiên, đồng nghiệp của tôi thường không nghi ngờ rằng Shady Sam đang làm gì đó một cách tàn nhẫn nếu họ nhìn thấy anh ta tại máy tính của tôi bởi vì anh ta đã giúp đỡ một vài người trong số họ trong quá khứ và không làm những điều tồi tệ với máy tính của họ.

Những ràng buộc

Kịch bản hoảng loạn ban đầu là trên máy tính xách tay của tôi ở nhà. Bạn có thể scpnó vào máy của tôi và chạy nó ở đó, hoặc chạy trực tiếp từ máy tính xách tay của tôi ở nhà. (Chỉ định trong phản hồi của bạn!)

Tất cả các hành động được thực hiện bởi tập lệnh phải không gây hại và / hoặc có thể đảo ngược từ vị trí từ xa của tôi để tôi có thể lấy lại quyền truy cập tại một điểm sau từ vị trí từ xa của mình và phải là các tính năng / lệnh tiêu chuẩn trên Mac Pro.

Tập lệnh có thể gọi các tập lệnh / chương trình khác miễn là chúng đạt tiêu chuẩn với máy. Các công cụ kịch bản dòng lệnh (vd awk) đều ổn miễn là các lệnh của chúng được chứa trong tập lệnh chính (vd history | awk '{print $2}'). Điều này thừa nhận giới hạn các ngôn ngữ kịch bản có thể được sử dụng.

Gọi một tập lệnh hoặc chương trình tùy chỉnh mà bạn đã viết (ví dụ . ~/myOtherScriptOfKungFoo.sh) không ổn, trừ khi bạn tạo tập lệnh từ bên trong tập lệnh của mình và tập lệnh được tạo dưới 32 ký tự:

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

Tôi không nên tương tác với tập lệnh nhiều lần (ví dụ: nhập mật khẩu).

Tiêu chí

Kịch bản phải ngắn (giới hạn 30 dòng), nhưng vẫn có thể đọc được. Tiêu chí chính là sự kỹ lưỡng, tính năng sáng tạo và phong cách, tốt hơn so với sự đơn giản.

Cuối cùng, nhiều phiếu nhất sẽ thắng!


28
Pro-tip: Đừng thuê bất cứ ai tên Shady Sam.
Geobits

Câu trả lời:


10

Tập lệnh hoảng loạn phải được gửi đến máy từ xa (Mac Pro) bằng scp, sau đó chạy (không cần sudo hoặc bất kỳ đầu vào nào được yêu cầu):

Đây là kịch bản: (điều này giả định rằng bạn là 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

Để đạt hiệu quả tối đa, bạn nên chạy nó trên mọi máy đơn lẻ trong phòng để đảm bảo rằng mọi người sẽ nhận thấy vấn đề và ngăn chặn anh ta.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.