understand how the access mask and inheritance work, let’s skip past t dịch - understand how the access mask and inheritance work, let’s skip past t Việt làm thế nào để nói

understand how the access mask and

understand how the access mask and inheritance work, let’s skip past that for now and look at the AccessCheck function. This will be the final architectural-level concept you need to understand before we can start talking about the fun stuff.
The Access Check
This section will not offer complete, exhaustive detail about the Windows AccessCheck function. In fact, we will deliberately leave out details that will be good for you to know eventually, but not critical for you to understand right now. If you’re reading along and you already know about how the AccessCheck function works and find that we’re being misleading about it, just keep reading and we’ll peel back another layer of the onion later in the chapter. We’re eager right now to get to attacks, so will be giving only the minimum detail needed.
The core function of the Windows Access Control model is to handle a request for a certain access right by comparing the access token of the requesting process against the protections provided by the SD of the object requested. Windows implements this logic in a function called AccessCheck. The two phases of the AccessCheck function we are going to talk about in this section are the privilege check and the DACL check.
AccessCheck’s Privilege Check
Remember that the AccessCheck is a generic function that is done before granting access to any securable object or procedure. Our examples so far have been resource and file-system specific, but the first phase of the AccessCheck function is not. Certain APIs require special privilege to call, and Windows makes that access check decision in this same AccessCheck function. For example, anyone who can load a kernel-mode device driver can effectively take over the system, so it’s important to restrict who can load device drivers. There is no DACL on any object that talks about loading device drivers. The API call itself doesn’t have a DACL. Instead, access is granted or denied based on the SeLoadDriverPrivilege in the token of the calling process.
The privilege check inside AccessCheck is straightforward. If the requested privilege is in the token of the calling process, the access request is granted. If it is not, the access request is denied.
AccessCheck’s DACL Check
The DACL check portion of the AccessCheck function is a little more involved. The caller of the AccessCheck function will pass in all the information needed to make the DACL check happen:
• The security descriptor protecting the object, showing who is granted what access
• The token of the process or thread requesting access, showing owner and group membership
• The specific desired access requested, in form of an access mask
TIP Technically, the DACL check passes these things by reference and also passes some other stuff, but that’s not super important right now.
For the purpose of understanding the DACL check, the AccessCheck function will go through something like the process pictured in Figure 24-7 and described in the steps that follow.
Check Explicit Deny ACEs The first step of the DACL check is to compare the desiredAccess mask passed in against the SD’s DACL, looking for any ACEs that apply to the process’s token that explicitly deny access. If any single bit of the desired access is denied, the access check returns “access denied.” Any time you’re testing access, be sure to request only the minimum access rights that you really need. We’ll show an example later of type.exe and notepad.exe returning “access denied” because they open files requesting Generic Read, which is more access than is actually needed. You can read files without some of the access included in Generic Read.
Check Inherited Deny ACEs If no ACE explicitly denies access, the AccessCheck function next looks to the inherited ACEs. If any desiredAccess bit is explicitly denied, AccessCheck will return “access denied.” However, if any inherited ACE denies access, an explicit grant ACE on the object will override the inherited ACE. So, in this step, regardless of whether an inherited ACE denies or does not deny, we move on to the next phase.
Check Allow ACEs With the inherited and explicit deny ACEs checked, the AccessCheck function moves on to the allow ACEs. If every portion of the desiredAccess flag is not granted to the user SID or group SIDs in the access token, the request is denied. If each bit of the desired access is allowed, this request moves on to the next phase.
Check for Presence of Restricted Tokens Even if all the access has been granted through explicit or inherited ACEs, the AccessCheck function still needs to check for restricted SIDs in the token. If we’ve gotten this far and there are no restricted tokens in the SID, access is granted. The AccessCheck function will return a nonzero value and will set the passed-in access mask to the granted result. If any restricted SIDs are present in the token, the AccessCheck function needs to first check those before granting or denying access.
Check Restricted SIDs Access Rights With restricted SIDs in the token, the same allow ACE check made earlier is made again. This time, only the restricted SIDs present in the token are used in the evaluation. That means that for access to be granted, access must be allowed either by an explicit or inherited ACE to one of the restricted SIDs in the token.
Unfortunately, there isn’t a lot of really good documentation on how restricted tokens work. Check the “References” section that follows for blogs and MSDN articles. The idea is that the presence of a restricted SID in the token causes the AccessCheck function to add an additional pass to the check. Any access that would normally be granted must also be granted to the restricted token if the process token has any restricted SIDs. Access will never be broadened by the restricted token check. If the user requests the max allowed permissions to the HKCU registry hive, the first pass will return Full Control, but the restricted SIDs check will narrow that access to read-only.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
hiểu cách truy cập mặt nạ và thừa kế làm việc, hãy bỏ qua quá khứ mà bây giờ và xem xét các chức năng AccessCheck. Điều này sẽ là khái niệm kiến trúc cấp độ cuối cùng bạn cần phải hiểu trước khi chúng tôi có thể bắt đầu nói chuyện về những niềm vui công cụ.Kiểm tra quyền truy cậpPhần này sẽ không cung cấp hoàn toàn, đầy đủ chi tiết về các chức năng Windows AccessCheck. Trong thực tế, chúng tôi sẽ cố ý bỏ ra chi tiết sẽ được tốt để bạn có thể biết cuối cùng, nhưng không quan trọng để bạn có thể hiểu ngay bây giờ. Nếu bạn đang đọc cùng và bạn đã biết về làm thế nào AccessCheck chức năng hoạt động và tìm thấy rằng chúng ta đang gây hiểu lầm về nó, chỉ cần giữ đọc và chúng tôi sẽ lột trở lại một lớp hành tây sau này trong các chương. Chúng tôi đang mong ngay bây giờ để có được để tấn công, do đó, sẽ đưa ra chỉ là các chi tiết tối thiểu cần thiết.Chức năng cốt lõi của mô hình kiểm soát truy cập Windows là xử lý một yêu cầu cho một truy cập nhất định phải bằng cách so sánh kỷ niệm truy cập trình yêu cầu chống lại bảo vệ được cung cấp bởi SD đối tượng yêu cầu. Windows thực hiện điều này logic trong một chức năng gọi là AccessCheck. Hai giai đoạn của các chức năng AccessCheck chúng tôi sẽ nói về trong phần này là đặc quyền kiểm tra và kiểm tra DACL.AccessCheck của đặc quyền kiểm traHãy nhớ rằng AccessCheck là một chức năng chung được thực hiện trước khi cấp quyền truy cập vào bất kỳ đối tượng securable hoặc thủ tục. Ví dụ của chúng tôi cho đến nay có là nguồn lực và hệ thống tập tin cụ thể, nhưng giai đoạn đầu tiên của các chức năng AccessCheck là không. API nhất định đòi hỏi các đặc quyền đặc biệt để gọi, và làm cho Windows tiếp cận kiểm tra quyết định này cùng một chức năng AccessCheck. Ví dụ, bất cứ ai có thể tải trình điều khiển thiết bị chế độ hạt nhân có thể có hiệu quả tiếp nhận hệ thống, do đó, nó là quan trọng để hạn chế những người có thể nạp trình điều khiển thiết bị. Có là không có DACL trên bất kỳ đối tượng nói về tải trình điều khiển thiết bị. Cuộc gọi API chính nó không có một DACL. Thay vào đó, truy cập được cấp hoặc từ chối dựa trên SeLoadDriverPrivilege trong kỷ niệm của quá trình gọi điện thoại.Việc kiểm tra đặc quyền bên trong AccessCheck là đơn giản. Nếu các đặc quyền được yêu cầu trong kỷ niệm của quá trình gọi, yêu cầu truy cập được cấp. Nếu không, yêu cầu truy cập bị từ chối.AccessCheck của DACL phòngPhần DACL phòng của các chức năng AccessCheck là liên quan đến nhiều hơn một chút. Người gọi các chức năng AccessCheck sẽ vượt qua trong tất cả các thông tin cần thiết để thực hiện kiểm tra DACL xảy ra:• Mô tả bảo mật bảo vệ đối tượng, Đang hiển thị những người được cấp quyền truy cập những gì• Kỷ niệm quá trình hoặc chủ đề yêu cầu truy cập, Hiển thị các chủ sở hữu và nhóm thành viên• Cụ thể mong muốn truy cập yêu cầu, trong hình thức của một mặt nạ truy cậpMẹo về mặt kỹ thuật, kiểm tra DACL đi những việc này bằng cách tham khảo và cũng vượt qua một số công cụ khác, nhưng đó không phải là siêu quan trọng ngay bây giờ.Cho các mục đích của sự hiểu biết phòng DACL, AccessCheck chức năng sẽ đi qua một cái gì đó như trình hình trong hình 24-7 và được mô tả trong bước tiếp theo.Kiểm tra rõ ràng từ chối ACEs bước kiểm tra DACL, đầu tiên là để so sánh mặt nạ desiredAccess thông qua tại chống lại của SD DACL, tìm kiếm bất kỳ "Ách" áp dụng cho quá trình mã thông báo đó một cách rõ ràng từ chối truy cập. Nếu bất kỳ bit duy nhất mong muốn truy cập bị từ chối, việc kiểm tra truy cập trở về "truy cập bị từ chối." Bất cứ lúc nào bạn đang thử nghiệm truy cập, hãy chắc chắn để yêu cầu chỉ những quyền truy cập tối thiểu mà bạn thực sự cần. Chúng tôi sẽ hiển thị một ví dụ sau đó của type.exe và notepad.exe trở về "truy cập bị từ chối" bởi vì họ mở tập tin yêu cầu chung đọc, đó là truy cập nhiều hơn thực sự cần thiết. Bạn có thể đọc các tập tin mà không có một số lượng truy cập bao gồm trong chung đọc.Kiểm tra thừa kế từ chối ACEs nếu ACE không rõ ràng từ chối truy cập, AccessCheck chức năng tiếp theo sẽ được thừa kế ACEs. Nếu bất kỳ bit desiredAccess bị từ chối một cách rõ ràng, AccessCheck sẽ trả về "truy cập bị từ chối." Tuy nhiên, nếu bất kỳ ACE được thừa kế từ chối truy cập, một cấp rõ ràng ACE trên đối tượng sẽ ghi đè các ACE được thừa kế. Vì vậy, trong bước này, bất kể cho dù một ACE được thừa kế từ chối hoặc không phủ nhận, chúng tôi chuyển sang giai đoạn tiếp theo.Kiểm tra cho phép "Ách" với các thừa kế và rõ ràng từ chối ACEs kiểm tra, các chức năng AccessCheck chuyển sang các "Ách" cho phép. Nếu mỗi phần của lá cờ desiredAccess không cấp cho người dùng SID hoặc nhóm SIDs trong truy cập mã thông báo, yêu cầu bị từ chối. Nếu mỗi bit của truy cập mong muốn được cho phép, yêu cầu này chuyển sang giai đoạn tiếp theo.Kiểm tra cho sự hiện diện của bị giới hạn thẻ thậm chí nếu tất cả các truy cập đã được cấp thông qua rõ ràng hoặc thừa kế asów, AccessCheck chức năng vẫn còn cần phải kiểm tra SIDs bị giới hạn trong kỷ niệm. Nếu chúng tôi đã nhận này đến nay và có được không có thẻ bị giới hạn trong SID, truy cập được cấp. Chức năng AccessCheck sẽ trả về một giá trị nonzero và sẽ thiết lập mặt nạ thông qua trong truy cập để kết quả được cấp. Nếu bất kỳ hạn chế SIDs có mặt trong mã thông báo, các chức năng AccessCheck cần phải đầu tiên kiểm tra những người trước khi cấp hoặc từ chối truy cập.Kiểm tra giới hạn SIDs truy cập quyền với hạn chế SIDs trong kỷ niệm, như vậy cho phép ACE kiểm tra được thực hiện trước đó thực hiện một lần nữa. Thời gian này, chỉ giới hạn SIDs xuất hiện trong kỷ niệm được sử dụng trong việc đánh giá. Điều đó có nghĩa là để được cấp quyền truy cập, truy cập phải được cho phép hoặc bằng một ACE rõ ràng hoặc được thừa kế một SIDS bị giới hạn trong kỷ niệm.Thật không may, không có rất nhiều tài liệu hướng dẫn thực sự tốt trên làm thế nào hạn chế thẻ làm việc. Kiểm tra phần "Tham khảo" sau cho các blog và bài viết MSDN. Mục đích là sự hiện diện của một SID bị giới hạn trong kỷ niệm gây ra các chức năng AccessCheck để thêm một vượt qua bổ sung để kiểm tra. Bất kỳ đi bình thường sẽ được cấp cũng phải được cho phép để kỷ niệm bị hạn chế nếu mã thông báo quá trình có bất kỳ hạn chế SIDs. Truy cập sẽ không bao giờ được mở rộng bởi việc kiểm tra mã thông báo bị hạn chế. Nếu người dùng yêu cầu sự cho phép tối đa được phép để HKCU đăng ký tổ, đèo đầu tiên sẽ trở lại toàn quyền kiểm soát, nhưng việc kiểm tra SIDs bị giới hạn sẽ thu hẹp đó truy cập vào chỉ-đọc.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
hiểu thế nào là mặt nạ truy cập và làm việc kế thừa, chúng ta hãy bỏ qua quá khứ mà bây giờ và nhìn vào các chức năng AccessCheck. Đây sẽ là những khái niệm kiến trúc cấp cuối cùng bạn cần phải hiểu trước khi chúng ta có thể bắt đầu nói về những thứ vui vẻ.
Việc truy cập Kiểm tra
phần này sẽ không cung cấp đầy đủ, đầy đủ chi tiết về các chức năng của Windows AccessCheck. Trong thực tế, chúng tôi sẽ cố tình bỏ qua các chi tiết đó sẽ tốt cho bạn để biết cuối cùng, nhưng không quan trọng để bạn có thể hiểu ngay bây giờ. Nếu bạn đang đọc cùng và bạn đã biết về cách thức hoạt động và chức năng AccessCheck thấy rằng chúng ta đang bị lừa dối về nó, chỉ cần giữ đọc và chúng tôi sẽ trở lại một lớp vỏ của củ hành sau trong chương này. Chúng tôi mong muốn ngay bây giờ để có được các cuộc tấn công, do đó sẽ được đưa ra chỉ các chi tiết tối thiểu cần thiết.
Các chức năng chính của các mô hình của Windows Access Control là để xử lý một yêu cầu cho một truy cập nhất định ngay bằng cách so sánh các thẻ truy cập của quá trình yêu cầu chống lại các biện pháp bảo vệ được cung cấp bởi các SD của đối tượng yêu cầu. Windows thực hiện logic này trong một chức năng gọi là AccessCheck. Hai giai đoạn của hàm AccessCheck chúng ta sẽ nói về trong phần này là kiểm tra đặc quyền và kiểm tra DACL.
Privilege tra AccessCheck của
Hãy nhớ rằng AccessCheck là một chức năng chung đó được thực hiện trước khi cấp quyền truy cập vào bất kỳ đối tượng securable hoặc thủ tục. Ví dụ của chúng tôi cho đến nay đã được tài nguyên và hệ thống tập tin cụ thể, nhưng giai đoạn đầu tiên của hàm AccessCheck không. Một số API đòi hỏi đặc quyền đặc biệt để gọi, và Windows làm cho rằng quyết định kiểm tra quyền truy cập vào chức năng này AccessCheck cùng. Ví dụ, bất cứ ai có thể tải một trình điều khiển thiết bị hạt nhân-mode có hiệu quả có thể đi qua hệ thống, vì vậy điều quan trọng là để hạn chế những người có thể tải trình điều khiển thiết bị. Không có DACL vào bất kỳ đối tượng mà nói về trình điều khiển thiết bị tải. Các API gọi chính nó không có một DACL. Thay vào đó, truy cập được cấp hoặc từ chối dựa trên các SeLoadDriverPrivilege trong thẻ bài của quá trình gọi.
Việc kiểm tra đặc quyền bên trong AccessCheck là đơn giản. Nếu các yêu cầu đặc quyền là trong các dấu hiệu của quá trình gọi, yêu cầu được phép truy cập. Nếu không, các yêu cầu truy cập bị từ chối.
DACL AccessCheck của Kiểm tra
Phần kiểm tra DACL của hàm AccessCheck là hơn một chút liên quan. Người gọi của hàm AccessCheck sẽ vượt qua trong tất cả các thông tin cần thiết để thực hiện việc kiểm tra DACL xảy ra:
• Các mô tả bảo mật bảo vệ các đối tượng, trưng bày các người được cấp quyền truy cập những gì
• Các dấu hiệu của quá trình hay một chủ đề yêu cầu truy cập, cho thấy chủ sở hữu và các thành viên nhóm
• Các cụ thể truy cập bạn muốn yêu cầu, trong hình thức của một truy cập mask
TIP Về mặt kỹ thuật, việc kiểm tra DACL vượt qua được những bằng những tài liệu tham khảo và cũng đi qua một số công cụ khác, nhưng đó không phải là siêu quan trọng ngay bây giờ.
Đối với mục đích tìm hiểu sự check DACL, các AccessCheck Chức năng này sẽ đi qua một cái gì đó giống như quá trình hình trong hình 24-7 và được mô tả trong các bước tiếp theo.
Kiểm tra Explicit Deny ACEs Bước đầu tiên của việc kiểm tra DACL là để so sánh các mặt nạ desiredAccess qua trong chống DACL của SD, tìm kiếm bất kỳ ACE áp dụng cho thẻ của quá trình đó một cách rõ ràng từ chối truy cập. Nếu bất kỳ bit duy nhất của các truy cập bị từ chối mong muốn, lợi nhuận truy cập kiểm tra "truy cập bị từ chối." Bất cứ lúc nào bạn đang thử nghiệm truy cập, hãy chắc chắn để yêu cầu chỉ có quyền truy cập tối thiểu mà bạn thực sự cần. Chúng tôi sẽ đưa ra một ví dụ sau của type.exe và notepad.exe trở về "truy cập bị từ chối" vì họ mở các tập tin yêu cầu Generic đọc, đó là truy cập nhiều hơn là thực sự cần thiết. Bạn có thể đọc các tập tin mà không có một số các truy cập trong Generic Read.
Kiểm tra di truyền Deny ACEs Nếu không có ACE một cách rõ ràng từ chối truy cập, các chức năng AccessCheck tiếp theo sẽ xem để các ACE được thừa kế. Nếu bất kỳ chút desiredAccess bị từ chối một cách rõ ràng, AccessCheck sẽ trở lại "truy cập bị từ chối." Tuy nhiên, nếu có ACE thừa kế từ chối truy cập, một ACE cấp rõ ràng về đối tượng sẽ ghi đè lên các ACE được thừa kế. Vì vậy, trong bước này, bất kể một ACE được thừa kế từ chối hoặc không phủ nhận, chúng ta chuyển sang giai đoạn tiếp theo.
Kiểm tra Cho phép các ACE Với các ACE thừa kế và rõ ràng từ chối kiểm tra, các chức năng AccessCheck sẽ chuyển sang cho phép ACE. Nếu tất cả các phần của lá cờ desiredAccess không cấp cho những người sử dụng SID hay SIDs nhóm trong thẻ truy cập, yêu cầu bị từ chối. Nếu mỗi bit của các truy cập mong muốn được cho phép, yêu cầu này sẽ chuyển sang giai đoạn tiếp theo.
Kiểm tra sự hiện diện của Restricted Tokens Ngay cả khi tất cả các truy cập đã được cấp thông qua các ACE rõ ràng hoặc được thừa kế, chức năng AccessCheck vẫn cần phải kiểm tra xem có bị hạn chế trong SIDs token. Nếu chúng tôi đã nhận được điều này đến nay và không có thẻ bị giới hạn trong các SID, được phép truy cập. Các chức năng AccessCheck sẽ trả về một giá trị khác không và sẽ thiết lập mặt nạ truy cập thông qua trong để kết quả được cấp. Nếu bất kỳ SIDs hạn chế được hiện diện trong các dấu hiệu, các chức năng AccessCheck cần phải kiểm tra đầu tiên những người trước khi cấp hoặc từ chối truy cập.
Kiểm tra hạn chế truy cập SIDs Quyền Với SIDs giới hạn trong thẻ bài, cùng ACE cho phép kiểm tra được thực hiện trước đó được thực hiện một lần nữa. Lần này, chỉ các SID hạn chế hiện nay trong các token được sử dụng trong việc đánh giá. Điều đó có nghĩa là để truy cập vào được cấp, truy cập phải được cho phép hoặc bằng một ACE rõ ràng hoặc được thừa kế cho một trong những hạn chế SID trong thẻ bài.
Thật không may, không có rất nhiều tài liệu thực sự tốt về cách tokens hạn chế làm việc. Kiểm tra phần "Tham khảo" phần tiếp theo cho các blog và các bài viết MSDN. Ý tưởng là sự hiện diện của một SID giới hạn trong thẻ bài làm cho chức năng AccessCheck để bổ sung thêm một đường chuyền qua việc kiểm tra. Bất kỳ truy cập mà thông thường sẽ được cấp cũng phải được cấp cho một mã thông báo hạn chế nếu các thẻ xử có bất kỳ hạn chế SID. Access sẽ không bao giờ được mở rộng bằng việc kiểm tra dấu hiệu hạn chế. Nếu người sử dụng yêu cầu quyền truy cập tối đa cho phép đối với registry HKCU, vượt qua đầu tiên sẽ trở lại Full Control, nhưng việc kiểm tra SIDs hạn chế sẽ thu hẹp truy cập chỉ đọc.
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: