Nếu bạn có một vỏ gốc trong một phiên màn hình (tách ra hoặc không, có được bảo vệ bằng mật khẩu hay không) và screen
thực thi của bạn không phải là setxid, thì kẻ tấn công giành được đặc quyền của bạn có thể chạy các lệnh trong vỏ đó. Nếu không có gì khác, họ có thể làm điều đó bằng cách ptracing quá trình màn hình.
Nếu màn hình là setuid hoặc setgid và phiên được tách ra và được bảo vệ bằng mật khẩu, thì về nguyên tắc, nó sẽ lấy mật khẩu màn hình để chạy các lệnh trong trình bao đó. Nếu nguyên tắc này được áp dụng, ai đó chỉ xâm phạm tài khoản của bạn sẽ phải đặt một trojan vào vị trí và chờ bạn nhập mật khẩu. Tuy nhiên, bề mặt tấn công (tức là số lượng nơi có thể xảy ra lỗi do lỗi hoặc cấu hình sai) là rất lớn. Ngoài các tính năng bảo mật hệ thống cơ bản, bạn đang tin tưởng:
- màn hình để lấy mật khẩu kiểm tra ngay.
- màn hình để ngăn chặn truy cập vào phiên bằng các phương tiện khác.
- màn hình để sử dụng các cơ chế kiểm soát truy cập hệ điều hành đúng cách (ví dụ: quyền trên các đường ống).
- hạt nhân để thực hiện kiểm tra bảo mật ptrace một cách chính xác (đây là nguồn lỗ hổng thường xuyên).
- Vỏ chạy không làm gì ngu.
- Một số tính năng khác không cắn bạn.
Một số tính năng khác không cắn bạn. Vâng, điều đó thật mơ hồ. Nhưng nó luôn luôn là một mối quan tâm trong bảo mật. Bạn có thể bị cám dỗ để loại bỏ điều này chỉ là suy nghĩ mong muốn đơn giản, nhưng bạn đã thực sự nghĩ về tất cả mọi thứ? Ví dụ…
Miễn là bạn có thể ghi vào thiết bị đầu cuối, bạn có thể đưa dữ liệu vào đầu vào của shell đó. Theo cấu hình mặc định của màn hình trên máy của tôi:
printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33
Điều này chèn ␛]lfoobar␛l
vào luồng đầu vào của shell. \ek
là trình tự điều khiển cho phép một ứng dụng (hoặc bất cứ thứ gì có thể ghi vào thiết bị đầu cuối) đặt tiêu đề cửa sổ (xem phần Cửa sổ Nam đặt tên trong hướng dẫn trên màn hình ) và \e[21t
làm cho thiết bị đầu cuối báo cáo tiêu đề của nó trên đầu vào tiêu chuẩn của ứng dụng ( màn hình không ghi lại trình tự này, nhưng thực hiện nó, bạn có thể tìm thấy nó CSI Ps ; Ps ; Ps ; t
trong danh sách trình tự điều khiển xterm . Trên thực tế, ít nhất là dưới màn hình 4.0.3, tất cả các ký tự điều khiển đều bị tước khỏi tiêu đề được báo cáo, vì vậy trình bao đọc lfoobar
(giả sử ␛]
không bị ràng buộc với lệnh chỉnh sửa) và không có dòng mới. Vì vậy, kẻ tấn công thực sự không thể thực thi một lệnh theo cách đó, nhưng có thể nhồi một lệnh nhưchmod u+s /bin/sh
theo sau là rất nhiều khoảng trống và một dấu nhắc có khả năng tìm kiếm.
Màn hình thực hiện một số trình tự kiểm soát rủi ro tương tự khác, tôi không biết tiềm năng của chúng đối với các lỗ hổng là gì. Nhưng hy vọng bây giờ bạn có thể thấy rằng sự bảo vệ được cung cấp bởi mật khẩu phiên màn hình không phải là tuyệt vời. Một công cụ bảo mật chuyên dụng như sudo sẽ ít có lỗ hổng hơn.
sudo
.