Tài khoản Windows nào được sử dụng khi không có ai đăng nhập?


25

Khi không có ai đăng nhập vào Windows, (màn hình đăng nhập được hiển thị) người dùng nào đang xử lý hiện tại? (Trình điều khiển video / âm thanh, phiên đăng nhập, bất kỳ phần mềm máy chủ, điều khiển trợ năng, v.v. Họ không thể là bất kỳ người dùng hoặc người dùng trước nào vì không ai đăng nhập. Còn về các quy trình đã được người dùng khởi động nhưng vẫn tiếp tục chạy sau khi đăng xuất? (Ví dụ: HTTP, máy chủ FTP và các công cụ kết nối mạng khác). Họ có chuyển sang tài khoản HỆ THỐNG không? Nếu quy trình do người dùng bắt đầu chuyển sang HỆ THỐNG, điều đó cho thấy lỗ hổng rất nghiêm trọng. Quá trình có chạy như người dùng đó không tiếp tục chạy như người dùng đó sau khi họ đã đăng xuất?

Đây có phải là lý do tại sao hack SETHC cho phép bạn sử dụng CMD làm HỆ THỐNG?


"Chuyển đổi người dùng" thực sự không phải là một hoạt động đen trắng trên Windows. Một dịch vụ có thể mạo danh nhiều người dùng cùng một lúc và vẫn đang sử dụng tài khoản gốc. Điều này hữu ích cho các dịch vụ cần hành động thay mặt cho người dùng cụ thể, cho biết khách truy cập trang web được xác thực.
MSalters

3
Windows là hệ điều hành nhiều người dùng, có nghĩa là các quy trình khác nhau có thể thuộc về những người dùng khác nhau cùng một lúc . Không giống như vậy khi bạn đăng nhập toàn bộ máy tính "chuyển" sang tài khoản của mình.
el.pescado

Câu trả lời:


40

Khi không có ai đăng nhập vào Windows, (màn hình đăng nhập được hiển thị) người dùng nào đang xử lý hiện tại? (Trình điều khiển video / âm thanh, phiên đăng nhập, bất kỳ phần mềm máy chủ, điều khiển trợ năng, v.v.

Hầu như tất cả các trình điều khiển chạy trong chế độ kernel ; họ không cần một tài khoản, trừ khi họ bắt đầu các quy trình không gian người dùng. Một vài trình điều khiển không gian người dùng chạy trong HỆ THỐNG.

Phiên đăng nhập, tôi không thể kiểm tra ngay bây giờ, nhưng tôi chắc chắn nó cũng sử dụng HỆ THỐNG. Bạn có thể thấy logonui.exe trong Process Hacker hoặc SysIternals ProcExp . Trong thực tế, bạn có thể thấy mọi thứ theo cách đó.

"Phần mềm máy chủ", xem các dịch vụ Windows bên dưới.

Còn những quy trình đã được người dùng bắt đầu nhưng vẫn tiếp tục chạy sau khi đăng xuất thì sao? (Ví dụ: HTTP, máy chủ FTP và các công cụ kết nối mạng khác). Họ có chuyển sang tài khoản HỆ THỐNG không?

Có ba loại ở đây:

  1. Các quy trình "nền" cũ. Những người chạy trong cùng một tài khoản như bất cứ ai bắt đầu chúng, và không chạy sau khi đăng xuất. Quá trình đăng xuất giết chết tất cả.

    "HTTP, máy chủ FTP và các công cụ kết nối mạng khác" không chạy như các quy trình nền thông thường. Họ chạy như dịch vụ.

  2. Các quy trình "dịch vụ" của Windows. Những người không được khởi chạy trực tiếp, nhưng thông qua Trình quản lý dịch vụ. Theo mặc định, các dịch vụ chạy dưới dạng LocalSystem (có nghĩa là bằng với HỆ THỐNG), mặc dù chúng có thể có các tài khoản chuyên dụng được cấu hình.

    (Tất nhiên, thực tế không ai bận tâm cả. Họ chỉ cài đặt XAMPP hoặc WampServer hoặc một số thứ nhảm nhí khác, và để nó chạy như HỆ THỐNG, mãi mãi không thể so sánh được.)

    Trên các hệ thống Windows gần đây, tôi nghĩ các dịch vụ cũng có thể có SID riêng , nhưng một lần nữa tôi chưa nghiên cứu về vấn đề này.

  3. Nhiệm vụ theo lịch trình. Chúng được khởi chạy bởi dịch vụ "Lập lịch tác vụ" "trong nền" và luôn chạy trong tài khoản được định cấu hình trong tác vụ (thường là bất kỳ ai đã tạo tác vụ).

Nếu một quá trình do người dùng bắt đầu chuyển sang HỆ THỐNG, điều đó cho thấy một lỗ hổng rất nghiêm trọng

Nó không phải là một lỗ hổng vì bạn phải đã có các đặc quyền quản trị để cài đặt một dịch vụ. Có đặc quyền Quản trị viên đã cho phép bạn thực hiện mọi thứ thực tế.

(xem thêm nhiều loại không dễ bị tổn thương khác cùng loại)



2
Có thể đáng lưu ý rằng phần lớn IIS chạy trong các tài khoản đặc quyền thấp hơn được tạo riêng cho các quy trình IIS ra khỏi hộp. (Điều này sẽ bao gồm nhiều máy chủ Windows HTTP, FTP, v.v.) Xem tại đây để biết một số chi tiết. Vì vậy, nó thường phụ thuộc vào mặc định của bất kỳ chương trình nào bạn đang sử dụng.
jpmc26

1
HỆ THỐNG và Quản trị viên cục bộ về cơ bản là một và giống nhau. Khi bạn có một cái, bạn có thể lấy cái kia và HĐH chỉ đưa ra các rào cản có ý nghĩa chủ yếu để ngăn ngừa sai lầm. (Lưu ý: Điều mới cũ không phải là tài liệu chính thức của Microsoft.)
CVn

3
Ngày nay, nhiều dịch vụ chạy dưới dạng NetworkService hoặc LocalService, không phải LocalSystem.
Ben Voigt

2
Bắt đầu với Windows 7 và 2008 R2, Tài khoản dịch vụ được quản lý và Tài khoản ảo cho phép chạy các dịch vụ theo danh tính của riêng họ, vì vậy bạn không có một loạt dịch vụ chia sẻ LocalService / NetworkService / LocalSystem, hạn chế quyền truy cập nếu một dịch vụ có lỗ hổng.
afrazier

2

Tất cả các quá trình đăng nhập và đăng nhập trước đều chạy dưới dạng HỆ THỐNG (còn được gọi là LocalSystem). Trên thực tế, một cách để có một trình bao (chẳng hạn như dấu nhắc CMD) đang chạy như HỆ THỐNG trên một số phiên bản Windows là thay thế một chương trình trợ năng, như trình đọc màn hình, kính lúp hoặc bàn phím trên màn hình, bằng một bản sao của (hoặc liên kết đến) CMD.EXE, và sau đó sử dụng phím tắt để bật tính năng trợ năng đó trước khi đăng nhập. Bạn sẽ nhận được một dấu nhắc lệnh, mặc dù không có bất kỳ người dùng nào đăng nhập và CMDsẽ chạy dưới dạng HỆ THỐNG.

(Lưu ý: điều này rất nguy hiểm, rõ ràng, vì nó cho phép mọi người bỏ qua quá trình đăng nhập Windows. Bạn không bao giờ nên cấu hình máy tính theo cách này và sau đó để nó như thế.)


1
Hoạt động trên Windows 7, thay thế sethc.exe bằng cmd.exe trong C: \ Windows \ System32 \

1

Họ không "chuyển đổi" sang bất cứ điều gì; các quá trình như vậy không bao giờ chạy trong bối cảnh người dùng hiện tại.
Chúng thuộc sở hữu của SYSTEMngười dùng.

Bất kỳ quy trình và dịch vụ nào thuộc sở hữu của một người dùng cá nhân đều bị chấm dứt khi đăng xuất.
Đó là những gì đăng xuất có nghĩa .


Tôi không chắc chắn ... Đầu tiên, tôi tìm thấy một bài viết của MS Technet trong đó (không như thế này có nghĩa là nhiều) một câu trả lời được nhân viên chấp nhận rằng các dịch vụ không bị chấm dứt khi đăng xuất. Tôi cũng không chắc đây là một định nghĩa chính xác về đăng xuất nói chung: Tôi đã thấy một số trình tiện ích trên Linux tồn tại sau khi tôi đăng xuất một người dùng sau đó psnhư một người dùng khác
underscore_d

1
Điều đó không đúng. Các dịch vụ có thể được bắt đầu như một người dùng khác và họ sẽ bắt đầu và tiếp tục chạy mà không cần người dùng đó "đăng nhập". Họ sẽ bắt đầu phiên của riêng mình với thông tin đăng nhập của người dùng đó, vì vậy thực tế người dùng sẽ đăng nhập trong khi dịch vụ chạy, nhưng các chương trình máy tính để bàn / tự khởi động, v.v. sẽ không được chạy và đó là những gì người dùng bình thường hiểu là "đăng nhập". Tuy nhiên, dịch vụ sẽ chạy với thông tin người dùng đó và có quyền truy cập vào tệp người dùng đó.
Josef

@Josef: Đối số của bạn có vẻ sôi lên vì "một số người lạm dụng thuật ngữ 'đăng nhập'". Phần thực tế của nhận xét của bạn đồng ý với câu trả lời của tôi: người dùng đó được coi là đã đăng nhập miễn là họ có các dịch vụ / quy trình chạy với tài khoản của họ.
Cuộc đua nhẹ nhàng với Monica

@LightnessRacesinOrbit không, có một sự khác biệt thực sự. Nếu bạn tạo một dịch vụ bằng tài khoản của mình và được chạy khi khởi động, sẽ không có quá trình nào bắt đầu để bạn hiển thị máy tính để bàn, (vì vậy không có dwm.exe hoặc explorer.exe đang chạy), tất cả các chương trình tự khởi động của bạn sẽ không đang chạy, v.v. Vì vậy, nếu bạn có một phiên đăng nhập tương tác, sẽ có nhiều thứ được kích hoạt hơn nếu chỉ có phiên dịch vụ đang chạy. Chính xác thì "đăng nhập" là gì để tranh luận. Ngay cả khi một dịch vụ chạy với thông tin đăng nhập của bạn, bạn vẫn phải đăng nhập để sử dụng Windows cho mình!
Josef

1
Chà, "các quy trình như vậy không bao giờ chạy trong bối cảnh người dùng hiện tại" vẫn sai. Các dịch vụ chạy trong bối cảnh người dùng được đặt cho họ. Đối với các dịch vụ windows dựng sẵn, đó là một trong những tài khoản hệ thống. Đối với các dịch vụ khác, nó có thể là bất kỳ tài khoản. Đặc biệt phần mềm máy chủ nên tạo một tài khoản người dùng mới và chạy thông tin đăng nhập.
Josef
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.