diff options
Diffstat (limited to 'sid.ml')
-rw-r--r-- | sid.ml | 134 |
1 files changed, 125 insertions, 9 deletions
@@ -224,22 +224,138 @@ module PacketRep = struct (* [MS-DTYP] 2.4.22 *) end (* [module PacketRep] *) module WellKnown = struct + let cu = create_unsafe + let sa = U32.of_int + let ia = U64.of_int + (* * see also * https://docs.microsoft.com/en-us/windows/desktop/secauthz/well-known-sids *) - - let null = create_unsafe [| U32.zero |] U64.zero - let everyone = create_unsafe [| U32.zero |] U64.one + let null = cu [| U32.zero |] U64.zero + let everyone = cu [| U32.zero |] U64.one let world = everyone - let local = create_unsafe [| U32.zero |] (U64.of_int 2) - let creator_owner_id = create_unsafe [| U32.zero |] (U64.of_int 3) - let creator_group_id = create_unsafe [| U32.one |] (U64.of_int 3) - let elite = create_unsafe [| U32.of_int 3 ; U32.of_int 3; U32.of_int 7 |] U64.one - module Prefix = struct - type toplevel_auth = ?sa:sub_auths -> unit -> sid + (* 1-2-… *) + let local = cu [| U32.zero |] (U64.of_int 2) + let console_logon = cu [| U32.one |] (U64.of_int 2) + + (* 1-3-… *) + let creator_owner_id = cu [| U32.zero |] (U64.of_int 3) + let creator_group_id = cu [| U32.one |] (U64.of_int 3) + let creator_owner_server = cu [| U32.of_int 2 |] (U64.of_int 3) + let creator_group_server = cu [| U32.of_int 3 |] (U64.of_int 3) + let owner_rights = cu [| U32.of_int 4 |] (U64.of_int 3) + let elite = cu [| U32.of_int 3 ; U32.of_int 3; U32.of_int 7 |] U64.one + + (* 1-5-… *) + let nt_authority = cu [| |] (U64.of_int 5) + let dialup = cu [| U32.one |] (U64.of_int 5) + let network = cu [| U32.of_int 2 |] (U64.of_int 5) + let batch = cu [| U32.of_int 3 |] (U64.of_int 5) + let interactive = cu [| U32.of_int 4 |] (U64.of_int 5) + let logon_id = cu [| U32.of_int 5 |] (U64.of_int 5) + let service = cu [| U32.of_int 6 |] (U64.of_int 5) + let anonymous = cu [| U32.of_int 7 |] (U64.of_int 5) + let proxy = cu [| U32.of_int 8 |] (U64.of_int 5) + let enterprise_domain_controllers = cu [| U32.of_int 9 |] (U64.of_int 5) + let principal_self = cu [| U32.of_int 10 |] (U64.of_int 5) + let authenticated_users = cu [| U32.of_int 11 |] (U64.of_int 5) + let restricted_code = cu [| U32.of_int 12 |] (U64.of_int 5) + let terminal_server_user = cu [| U32.of_int 13 |] (U64.of_int 5) + let remote_interactive_logon = cu [| U32.of_int 14 |] (U64.of_int 5) + let this_organisation = cu [| U32.of_int 15 |] (U64.of_int 5) + let iusr = cu [| U32.of_int 17 |] (U64.of_int 5) + let local_system = cu [| U32.of_int 18 |] (U64.of_int 5) + let local_service = cu [| U32.of_int 19 |] (U64.of_int 5) + let network_service = cu [| U32.of_int 20 |] (U64.of_int 5) + + let compounded_authentication = cu [| sa 21; U32.zero; U32.zero; U32.zero; sa 496 |] (ia 5) + let claims_valid = cu [| sa 21; U32.zero; U32.zero; U32.zero; sa 497 |] (ia 5) + + let administrator machine = cu [| sa 21; machine; sa 500 |] (ia 5) + let guest machine = cu [| sa 21; machine; sa 501 |] (ia 5) + let krbtgt domain = cu [| sa 21; domain; sa 502 |] (ia 5) + let domain_admins domain = cu [| sa 21; domain; sa 512 |] (ia 5) + let domain_users domain = cu [| sa 21; domain; sa 513 |] (ia 5) + let domain_guests domain = cu [| sa 21; domain; sa 514 |] (ia 5) + let domain_computers domain = cu [| sa 21; domain; sa 515 |] (ia 5) + let domain_domain_controllers domain = cu [| sa 21; domain; sa 516 |] (ia 5) + let cert_publishers domain = cu [| sa 21; domain; sa 517 |] (ia 5) + let schema_administrators root_domain = cu [| sa 21; root_domain; sa 518 |] (ia 5) + let enterprise_admins root_domain = cu [| sa 21; root_domain; sa 519 |] (ia 5) + let group_policy_creator_owners domain = cu [| sa 21; domain; sa 520 |] (ia 5) + let readonly_domain_controllers domain = cu [| sa 21; domain; sa 521 |] (ia 5) + let cloneable_controllers domain = cu [| sa 21; domain; sa 522 |] (ia 5) + let protected_users domain = cu [| sa 21; domain; sa 525 |] (ia 5) + let key_admins domain = cu [| sa 21; domain; sa 526 |] (ia 5) + let enterprise_key_admins domain = cu [| sa 21; domain; sa 527 |] (ia 5) + let ras_servers domain = cu [| sa 21; domain; sa 553 |] (ia 5) + let allowed_rodc_password_replication_group domain = cu [| sa 21; domain; sa 571 |] (ia 5) + let denied_rodc_password_replication_group domain = cu [| sa 21; domain; sa 572 |] (ia 5) + + let builtin_administrators = cu [| sa 32; sa 544 |] (ia 5) + let builtin_users = cu [| sa 32; sa 545 |] (ia 5) + let builtin_guests = cu [| sa 32; sa 546 |] (ia 5) + let power_users = cu [| sa 32; sa 547 |] (ia 5) + let account_operators = cu [| sa 32; sa 548 |] (ia 5) + let server_operators = cu [| sa 32; sa 549 |] (ia 5) + let printer_operators = cu [| sa 32; sa 550 |] (ia 5) + let backup_operators = cu [| sa 32; sa 551 |] (ia 5) + let replicator = cu [| sa 32; sa 552 |] (ia 5) + let alias_prew2kcompacc = cu [| sa 32; sa 554 |] (ia 5) + let remote_desktop = cu [| sa 32; sa 555 |] (ia 5) + let network_configuration_ops = cu [| sa 32; sa 556 |] (ia 5) + let incoming_forest_trust_builders = cu [| sa 32; sa 557 |] (ia 5) + let perfmon_users = cu [| sa 32; sa 558 |] (ia 5) + let perflog_users = cu [| sa 32; sa 559 |] (ia 5) + let windows_authorization_access_group = cu [| sa 32; sa 560 |] (ia 5) + let terminal_server_license_servers = cu [| sa 32; sa 561 |] (ia 5) + let distributed_com_users = cu [| sa 32; sa 562 |] (ia 5) + let iis_iusrs = cu [| sa 32; sa 568 |] (ia 5) + let cryptographic_operators = cu [| sa 32; sa 569 |] (ia 5) + let event_log_readers = cu [| sa 32; sa 573 |] (ia 5) + let certificate_service_dcom_access = cu [| sa 32; sa 574 |] (ia 5) + let rds_remote_access_servers = cu [| sa 32; sa 575 |] (ia 5) + let rds_endpoint_servers = cu [| sa 32; sa 576 |] (ia 5) + let rds_management_servers = cu [| sa 32; sa 577 |] (ia 5) + let hyper_v_admins = cu [| sa 32; sa 578 |] (ia 5) + let access_control_assistance_ops = cu [| sa 32; sa 579 |] (ia 5) + let remote_management_users = cu [| sa 32; sa 580 |] (ia 5) + + let write_restricted_code = cu [| sa 33 |] (ia 5) + let ntlm_authentication = cu [| sa 64; sa 10 |] (ia 5) + let schannel_authentication = cu [| sa 64; sa 14 |] (ia 5) + let digest_authentication = cu [| sa 64; sa 21 |] (ia 5) + let this_organization_certificate = cu [| sa 65; sa 1 |] (ia 5) + let nt_service = cu [| sa 80 |] (ia 5) + let user_mode_drivers = cu [| sa 84; U32.zero; U32.zero; U32.zero; U32.zero; U32.zero |] (ia 5) + let local_account = cu [| sa 113 |] (ia 5) + let local_account_and_member_of_administrators_group = cu [| sa 114 |] (ia 5) + let other_organization = cu [| sa 1000 |] (ia 5) + + (* 1-15-… *) + let all_app_packages = cu [| sa 2; U32.one |] (ia 15) + + (* 1-16-… *) + let ml_untrusted = cu [| U32.zero |] (ia 16) + let ml_low = cu [| sa 4096 |] (ia 16) + let ml_medium = cu [| sa 8192 |] (ia 16) + let ml_medium_plus = cu [| sa 8448 |] (ia 16) + let ml_high = cu [| sa 12288 |] (ia 16) + let ml_system = cu [| sa 16384 |] (ia 16) + let ml_protected_process = cu [| sa 20480 |] (ia 16) + let ml_secure_process = cu [| sa 28672 |] (ia 16) + + (* 1-18-… *) + let authentication_authority_asserted_identity = cu [| U32.one |] (ia 18) + let service_asserted_identity = cu [| sa 2 |] (ia 18) + let fresh_public_key_identity = cu [| sa 3 |] (ia 18) + let key_trust_identity = cu [| sa 4 |] (ia 18) + let key_property_mfa = cu [| sa 5 |] (ia 18) + let key_property_attestation = cu [| sa 6 |] (ia 18) + module Prefix = struct let security_null_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x00) let security_world_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x01) let security_local_sid_authority ?(sa=[||]) () = create_unsafe sa (U64.of_int 0x02) |