Việc chạy các ứng dụng trên Windows đôi khi đòi hỏi quyền quản trị viên, đặc biệt là trong quá trình cài đặt. Tuy nhiên, có một giải pháp ít người biết đến sử dụng __COMPAT_LAYER=RunAsInvoker
cho phép người dùng không phải quản trị viên cài đặt hoặc chạy các ứng dụng mà không cần quyền nâng cao. Bài viết này sẽ giải thích cách thức hoạt động của kỹ thuật này, tại sao nó có thể được sử dụng thành công, những rủi ro tiềm ẩn, cách nó có thể được lưu trong các tệp .bat
để dễ dàng sử dụng và cách quản trị viên hệ thống có thể bảo vệ hệ thống của họ chống lại việc lạm dụng nó.
__COMPAT_LAYER=RunAsInvoker
Biến môi trường __COMPAT_LAYER=RunAsInvoker
là một phần của Lớp Tương Thích Windows, cung cấp khả năng tương thích ngược và giúp các ứng dụng chạy trên các phiên bản Windows khác nhau mà không cần sửa đổi. Đặt biến này thành RunAsInvoker
yêu cầu Windows thực thi một ứng dụng với các đặc quyền của người dùng hiện tại, bất kể tệp thực thi thường yêu cầu nâng cấp hay không.
Mở Command Prompt (không cần quyền quản trị viên).
Nhập lệnh sau:
set __COMPAT_LAYER=RunAsInvoker
start application.exe
Thay thế application.exe
bằng tên của chương trình bạn muốn chạy. Ứng dụng bây giờ sẽ chạy như thể nó không yêu cầu quyền quản trị viên, cho phép một người dùng tiêu chuẩn bỏ qua hộp thoại Kiểm Soát Tài Khoản Người Dùng (UAC) thường yêu cầu thông tin đăng nhập quản trị.
.bat
Để làm cho việc này dễ dàng hơn, bạn có thể lưu các lệnh này trong một tệp .bat
, cho phép bạn hoặc người khác chỉ cần nhấp đúp vào tệp để chạy ứng dụng mà không cần quyền quản trị.
@echo off
set __COMPAT_LAYER=RunAsInvoker
start application.exe
.bat
, ví dụ: RunAppWithoutAdmin.bat
.Giờ đây, nhấp đúp vào tệp .bat
này sẽ thực thi ứng dụng mà không yêu cầu quyền quản trị viên. Sử dụng các tệp .bat
để chạy ứng dụng với RunAsInvoker
có thể đơn giản hóa quy trình, đặc biệt nếu bạn cần liên tục bỏ qua các yêu cầu quản trị.
Để hiểu tại sao RunAsInvoker
hoạt động, chúng ta cần xem xét cách Windows xử lý các ứng dụng có lớp tương thích.
Windows sử dụng các lớp tương thích để điều chỉnh cách chương trình hoạt động dựa trên các vấn đề tương thích quan sát được với các ứng dụng khác nhau trên các phiên bản Windows khác nhau. Bằng cách đặt __COMPAT_LAYER
thành RunAsInvoker
, bạn đang yêu cầu Windows bỏ qua cấp đặc quyền được chỉ định của chương trình và chỉ cần chạy nó với quyền của người dùng đang gọi.
Thông thường, các ứng dụng cần đặc quyền cao hơn sẽ kích hoạt hộp thoại UAC nếu người dùng hiện tại không có đủ quyền. Tuy nhiên, khi RunAsInvoker
được áp dụng, Windows bỏ qua hộp thoại UAC và chạy ứng dụng mà không cố gắng nâng cao nó, tôn trọng các đặc quyền hiện tại của người dùng.
Lệnh set __COMPAT_LAYER=RunAsInvoker
tạm thời sửa đổi biến môi trường trong suốt phiên command prompt đó, chỉ ảnh hưởng đến ứng dụng được gọi trong đó. Biến này được đặt lại khi phiên đóng.
Lý do phương pháp này hoạt động là do Windows tin tưởng cấu hình lớp tương thích do người dùng cung cấp, vì nó giả định rằng các cài đặt tương thích sẽ được sử dụng một cách có trách nhiệm. Trong trường hợp này, RunAsInvoker
về cơ bản thuyết phục Windows rằng ứng dụng nên chạy mà không cần đặc quyền nâng cao, ngay cả khi nó được mã hóa để yêu cầu chúng. Đối với các ứng dụng tiêu chuẩn, điều này có thể hữu ích, nhưng nó cũng có thể tạo ra một lỗ hổng bảo mật.
.bat
cho phép người dùng nhanh chóng chạy lại các ứng dụng mà không cần nhập lại các lệnh trong Command Prompt.Thật không may, thủ thuật RunAsInvoker
có thể bị các tác nhân độc hại khai thác để phá vỡ các hạn chế do quản trị viên hệ thống đặt ra.
RunAsInvoker
để chạy phần mềm trái phép dưới các đặc quyền hạn chế, điều này vẫn có thể cho phép hoạt động có hại.RunAsInvoker
, theo các quyền không được nâng cao, cài đặt phần mềm độc hại hoặc phần mềm gián điệp trong thư mục hồ sơ của người dùng (bỏ qua nhu cầu về các thư mục quản trị).RunAsInvoker
, người dùng có thể bỏ qua các hộp thoại UAC nếu không có thể ngăn họ cài đặt hoặc chạy một số ứng dụng nhất định. Điều này có thể dẫn đến các lỗ hổng bảo mật, đặc biệt nếu các hộp thoại UAC được định cấu hình để hạn chế cài đặt phần mềm nhất định trên các hệ thống của công ty.RunAsInvoker
Vì RunAsInvoker
là một tính năng hợp pháp trong Windows, việc chặn nó đòi hỏi một phương pháp nhiều lớp:
RunAsInvoker
được sử dụng.__COMPAT_LAYER=RunAsInvoker
.RunAsInvoker
.RunAsInvoker
.RunAsInvoker
.Sử dụng set __COMPAT_LAYER=RunAsInvoker
cung cấp một cách giải quyết tiện dụng để chạy các ứng dụng mà không cần quyền quản trị viên trong các môi trường mà các hộp thoại UAC là phổ biến. Mặc dù nó có thể hữu ích để chạy các ứng dụng không quan trọng mà không yêu cầu thông tin đăng nhập quản trị, nhưng nó cũng gây ra rủi ro bảo mật khi bị lạm dụng. Bằng cách tạo một tệp .bat
với lệnh này, người dùng có thể dễ dàng chạy lại các ứng dụng mà không cần sự can thiệp của quản trị viên. Quản trị viên hệ thống nên nhận thức được các vectơ khai thác tiềm năng và áp dụng các biện pháp bảo mật nhiều lớp để giảm thiểu rủi ro.
Tuyên bố từ chối trách nhiệm: Hướng dẫn này chỉ dành cho mục đích giáo dục. Sử dụng kỹ thuật RunAsInvoker
một cách có trách nhiệm và luôn tuân thủ các chính sách bảo mật của tổ chức bạn.
Chuyên mục: Cybersecurity, Ethical Hacking, System Administrator Guides, Windows Administration
Cập nhật lần cuối: 05 tháng 11, 2024
Từ khóa: __COMPAT_LAYER, __COMPAT_LAYER set RunAsInvoker, admin rights, admin rights bypass, application control, application installation, application installation without admin access, AppLocker, bypass admin rights Windows, bypass UAC prompt, command line tools, compatibility layer, cybersecurity, endpoint protection, privilege escalation, RunAsInvoker, UAC bypass, windows
Bài viết liên quan