Có một nhị phân UAC duy nhất?


27

Có một nhị phân (.exe) trong thư mục System32 chịu trách nhiệm cho các chức năng UAC của Windows không? (ví dụ, uac.exe). Điều gì sẽ xảy ra nếu tập tin đó bị xóa mạnh mẽ? Windows sẽ bị hỏng hoặc không khởi động được?

Không có vấn đề XY ở đây; Tôi chỉ tò mò muốn biết chuyện gì sẽ xảy ra nếu UAC bị xóa khỏi PC.


1
Bạn có thể dễ dàng vô hiệu hóa UAC. UAC là một chức năng của hạt nhân. Những gì bạn muốn là không thể
Ramhound 18/03/18

Có một tệp win32k.sys technize.net/ và dường như tệp đó trong một cửa sổ được vá trước, có thể được thao tác / thay đổi..để vô hiệu hóa UAC. Ngoài ra, người ta có thể vô hiệu hóa UAC theo cách thông thường, mặc dù đó không phải là tệp EXE
barlop 18/03/18

Bạn có thể vô hiệu hóa UAC bằng nhiều phương pháp khác nhau, ví dụ superuser.com/questions/1013702/ . Tôi nghĩ rằng nếu bạn loại bỏ nó theo một cách hack-ish khác, bạn sẽ nhận được hầu hết hiệu quả tương tự, mặc dù có lỗi trong các câu trả lời dưới đây về các nhị phân bị thiếu.
YetAnotherRandomUser

@barlop, win32k.sys chỉ là phần nhân của hệ thống con Windows. Nói cách khác, mã lõi được sử dụng bởi mọi thứ. Tôi sẽ không đề nghị cố gắng thay đổi nó. pasotech.altervista.org/windows_iternals/Win32KSYS.pdf
Dark Falcon

@DarkFalcon Có lẽ có nhiều "bên nhân của hệ thống con windows" hơn thế. Và tôi đã không khuyên một người "thay đổi nó"! Bạn nghĩ ai đó sẽ làm gì? Mở nó trong notepad? Tôi không bao giờ đề nghị một điều như vậy! Mở trình soạn thảo hex? tốt hơn, nhưng tôi cũng không gợi ý điều đó! Và không ai sẽ làm điều đó và thay đổi bất cứ điều gì trừ khi họ có một số ý tưởng về những gì họ muốn thay đổi, sẽ có một mức độ kỹ năng nhất định!
barlop

Câu trả lời:


56

UAC là một kiến ​​trúc đa thành phần được thực hiện bởi nhiều nhị phân

Kiểm soát tài khoản người dùng (UAC) đề cập đến một số thành phần cùng tạo thành kiến trúc UAC . Tôi sẽ xem xét ngắn gọn một số trong số chúng cùng với các tệp nhị phân chịu trách nhiệm triển khai, nhưng trước tiên đây là tổng quan về kiến ​​trúc UAC từ bài viết Microsoft Docs Cách thức kiểm soát tài khoản người dùng hoạt động :

nhập mô tả hình ảnh ở đây

Cơ quan bảo mật cục bộ (LSA) / Mã thông báo được lọc

Về mặt khái niệm, thành phần "đầu tiên" của UAC được triển khai bởi hệ thống con Cơ quan bảo mật cục bộ xử lý việc tạo Mã thông báo truy cập của người dùng trong quá trình đăng nhập. Bắt đầu với Windows Vista, quy trình đăng nhập đã được sửa đổi để khi Quản trị viên đăng nhập khi bật UAC, hệ thống con LSA tạo hai mã thông báo truy cập riêng cho người dùng:

  1. Một người có quyền truy cập quản trị viên đầy đủ và
  2. "Mã thông báo được lọc" thứ hai với quyền truy cập người dùng chuẩn

Như được hiển thị ở đây, quá trình này khác với quá trình đăng nhập người dùng chuẩn:

nhập mô tả hình ảnh ở đây

Dịch vụ hệ thống con LSA sống trong lsass.exequá trình.

Ảo hóa

Đã thêm vào Windows 7, Ảo hóa tệp và sổ đăng ký là một thành phần của UAC giúp che giấu các ứng dụng cũ không tuân thủ UAC mà chỉ yêu cầu quyền quản trị để truy cập vào các khu vực được bảo vệ nhất định của hệ thống tệp hoặc Sổ đăng ký:

Khi một ứng dụng quản trị không tuân thủ UAC cố ghi vào thư mục được bảo vệ, chẳng hạn như Tệp chương trình, UAC cung cấp cho ứng dụng chế độ xem ảo hóa của riêng nó về tài nguyên mà nó đang cố gắng thay đổi. Bản sao ảo hóa được duy trì trong hồ sơ người dùng.

Nguồn

Bằng cách chuyển hướng các nỗ lực truy cập này đến các khu vực không yêu cầu quyền quản trị, các ứng dụng này tiếp tục hoạt động mặc dù UAC được bật trên hệ thống.

Ảo hóa này được thực hiện trong Kernel .

Dịch vụ thông tin ứng dụng

Dịch vụ thông tin ứng dụng (AIS) đọc bản kê khai của ứng dụng và làm việc với Dấu nhắc đồng ý của UAC để xác định xem ứng dụng có được phép thực thi với quyền nâng cao hay không (nghĩa là bắt đầu trong bối cảnh mã thông báo truy cập cấp quản trị không được lọc khi đăng nhập) . Bài đăng trên blog này cung cấp một cái nhìn tổng quan tốt về vai trò của nó trong quy trình UAC:

AIS tạo điều kiện cho việc chạy các ứng dụng tương tác với các đặc quyền quản trị bổ sung. Nếu dịch vụ này bị dừng, người dùng sẽ không thể khởi chạy các ứng dụng với các đặc quyền quản trị bổ sung mà họ có thể yêu cầu .... Shell kiểm tra với dịch vụ này khi nó khởi chạy một ứng dụng. AIS là phần đọc tệp kê khai và phần xml 'trustInfo' có các yêu cầu đối với 'RequestExecutLevel' ...

Đây là một hình ảnh theo trích dẫn ở trên nêu chi tiết vai trò của AIS trong quy trình Nhắc nhở Đồng ý của UAC:

nhập mô tả hình ảnh ở đây

AIS được triển khai trong DLLappinfo.dll được thực thi bởi svchost.exe.

Sự đồng ý

Câu trả lời của @ BenN giải thích vai trò chính của Lời nhắc đồng ý UAC nổi tiếng (trong). Điều này được triển khai trong consent.exevà chịu trách nhiệm nhận được sự đồng ý của người dùng hoặc thông tin đăng nhập của người dùng quản trị để cho phép khởi chạy một ứng dụng yêu cầu quyền quản trị viên.

Máy tính để bàn an toàn

Máy tính để bàn an toàn là nơi hiển thị Dấu nhắc đồng ý UAC theo mặc định. UACBlog của Microsoft cho chúng tôi biết những gì độc đáo về Máy tính để bàn này so với Bàn làm việc của Người dùng:

Bạn thường tương tác với [Bàn làm việc an toàn] khi bạn đăng nhập vào Windows vì Giao diện người dùng đăng nhập chạy trên Bàn làm việc bảo mật. Điểm khác biệt chính của Secure Desktop so với User Desktop là chỉ các quy trình đáng tin cậy đang chạy như HỆ THỐNG mới được phép chạy ở đây (nghĩa là không có gì chạy ở cấp đặc quyền của Người dùng) và đường dẫn đến Bàn làm việc an toàn từ Bàn làm việc của người dùng cũng phải được tin cậy thông qua toàn bộ chuỗi.

Ý tưởng đằng sau việc sử dụng nó khi yêu cầu sự đồng ý của người dùng để chạy ứng dụng có quyền nâng cao là phần mềm độc hại không thể bắt chước Secure Desktop trừ khi nó đã có quyền quản trị, trong trường hợp đó, lừa người dùng cấp cho họ là không cần thiết.


Kết luận: UAC không chỉ là một nhị phân. Đó là một kết cấu của các hệ thống con đan xen.

Vẫn còn những khía cạnh khác của kiến ​​trúc UAC không được đề cập ở đây, nhưng điều này sẽ cung cấp đủ bằng chứng cho các sự thật rằng:

  1. UAC không được thực hiện trong một nhị phân duy nhất.
  2. Nếu được bật, đó là một phần không thể thiếu để thực hiện các tác vụ quản trị.

Kể từ khi được giới thiệu trong Windows Vista, nó đã được tích hợp sâu vào các phần chính của hệ điều hành, khiến nó không thể xóa tất cả các mã chịu trách nhiệm về UAC mà không phá vỡ những thứ khác (như khả năng đăng nhập của bạn!)

Tôi nghĩ thật an toàn khi nói rằng nếu bạn "xóa mạnh" UAC, bạn sẽ phá vỡ Windows.


1
FWIW technize.net/ trên cơ sở liên kết đó, có vẻ như tệp win32k.sys dường như đóng vai trò tôi nhận thấy rằng file.exe xác định nó là "PE32 + có thể thực thi (bản địa) x86-64, cho MS Windows"
barlop

win32k.sys là - về cơ bản - một khối lớn của hạt nhân. Tất nhiên nó đóng một vai trò trong UAC. Đó Windows.
Roger Lipscombe

25

Như Twisty đã giải thích một cách xuất sắc , có rất nhiều thành phần giúp thực hiện UAC. Phần của UAC mà mọi người quen thuộc nhất là hộp thoại độ cao / đồng ý:

Điều này được cung cấp bởi consent.exe, "UI đồng ý cho các ứng dụng quản trị." Tôi đã thử đổi tên nó trong một VM và xem điều gì sẽ xảy ra. Như mong đợi, không có lời nhắc độ cao nào xuất hiện khi sử dụng "chạy với tư cách quản trị viên" - thay vào đó, bạn gặp phải lỗi không tìm thấy tệp đổ lỗi cho điều bạn đang cố gắng nâng cao:

không tìm thấy

Cố gắng sử dụng bất kỳ thành phần UI Bảng điều khiển nào yêu cầu độ cao (nghĩa là có biểu tượng lá chắn), ngay cả khi đăng nhập với tư cách quản trị viên, không thành công với các lỗi tương tự. Cố gắng khởi chạy những thứ quản trị từ menu Bắt đầu tạo ra một lỗi hơi khác:

không có ứng dụng liên quan

Tùy thuộc vào bộ ACL khi thực hiện đổi tên đã phá vỡ mọi thứ, không thể khắc phục điều này từ bên trong HĐH, vì các thao tác tệp có thể yêu cầu độ cao (ngay cả khi chúng không thường tạo ra hộp thoại đồng ý). Tuy nhiên, các hoạt động giống như người dùng bình thường dường như không bị xuống cấp.


3
@muru, tôi đoán sự đồng ý không chỉ trả về đúng hay sai mà thay vào đó là mã thông báo để thực thi. Điều đó có nghĩa là bạn không thể nhận được từ người dùng bình thường đến mã thông báo quản trị viên mà không thực sự xác thực là quản trị viên.
Joey

6
@muru Windows không xác minh và thay thế nhiều tệp hệ thống, không chắc tệp này có được bao gồm hay không. Tuy nhiên, từ quan điểm bảo mật, vấn đề là phải thay thế - để thay thế sự đồng ý, bạn cần có đặc quyền của quản trị viên ngay từ đầu, do đó không có sự leo thang đặc quyền nào ngay cả khi có thể thay thế cách bạn tưởng tượng.
Luaan

3
Chỉ cần bao gồm nó kể từ khi ý nghĩ xuất hiện trong tâm trí của tôi. Bạn vẫn có thể khởi động máy vào Linux hoặc một cái gì đó để thay thế tệp. Nhưng điều đó đòi hỏi truy cập vật lý vào máy, về cơ bản là truy cập quản trị. Vì vậy, nó vẫn không phải là vấn đề bảo mật
DeadChex 19/03/18

1
@EricTowers Có, nhưng vì các đặc quyền hành chính bắt buộc phải thay đổi consent.exe, kẻ tấn công có thể làm điều đó đã ở phía bên kia của đường hầm kín gió và có nhiều cách đơn giản hơn để làm điều xấu.
Ben N

1
@TwistyImpersonator Câu hỏi thú vị! Độ cao im lặng dường như cũng kích hoạt hoạt động Đồng ý ( theo dõi quá trình bắt đầu ) khi được thực hiện trong tài khoản quản trị viên bình thường. Tài khoản Quản trị viên tích hợp không chịu sự điều chỉnh của UAC, vì vậy tất cả các chương trình của tài khoản này đã được nâng lên và sự đồng ý không tham gia. Bạn có thể thay đổi hành vi đó bằng chính sách bảo mật này .
Ben N
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.