Class: Rex::Proto::Kerberos::Pac::Krb5ValidationInfo

Inherits:
RubySMB::Dcerpc::Ndr::NdrStruct
  • Object
show all
Defined in:
lib/rex/proto/kerberos/pac/krb5_pac.rb

Overview

Direct Known Subclasses

Krb5ValidationInfoPtr

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#bad_password_countInteger

Returns User account’s badPwdCount attribute.

Returns:

  • (Integer)

    User account’s badPwdCount attribute



444
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 444

ndr_uint16 :bad_password_count

#effective_nameRpcUnicodeString

Returns User account’s samAccountName attribute.

Returns:

  • (RpcUnicodeString)

    User account’s samAccountName attribute



416
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 416

rpc_unicode_string :effective_name

#extra_sidsInteger

corresponding to groups in domains other than the account domain to which the principal belongs

Returns:

  • (Integer)

    A list of KERB_SID_AND_ATTRIBUTES structures that contain a list of SIDs



527
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 527

krb5_sid_and_attributes_ptr :extra_sids

#failed_i_logon_countInteger

Returns User account’s msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon.

Returns:

  • (Integer)

    User account’s msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon



514
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 514

ndr_uint32 :failed_i_logon_count

#full_nameRpcUnicodeString

Returns User account’s full name for interactive logon.

Returns:

  • (RpcUnicodeString)

    User account’s full name for interactive logon



420
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 420

rpc_unicode_string :full_name

#group_countInteger

Returns Number of groups within the account domain to which the account belongs.

Returns:

  • (Integer)

    Number of groups within the account domain to which the account belongs



456
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 456

ndr_uint32 :group_count, initial_value: -> { group_memberships.length }

#group_membershipsInteger

Returns List of GROUP_MEMBERSHIP structures that contains the groups to which the account belongs in the account domain.

Returns:

  • (Integer)

    List of GROUP_MEMBERSHIP structures that contains the groups to which the account belongs in the account domain



460
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 460

pgroup_membership_array :group_memberships, type: [:group_membership, { byte_align: 4 }]

#home_directoryRpcUnicodeString

Returns User account’s HomeDirectory attribute.

Returns:

  • (RpcUnicodeString)

    User account’s HomeDirectory attribute



432
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 432

rpc_unicode_string :home_directory

#home_directory_driveRpcUnicodeString

Returns User account’s HomeDrive attribute.

Returns:

  • (RpcUnicodeString)

    User account’s HomeDrive attribute



436
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 436

rpc_unicode_string :home_directory_drive

#kick_off_timeFileTime

Returns logoff_time minus the user account’s forceLogoff attribute.

Returns:

  • (FileTime)

    logoff_time minus the user account’s forceLogoff attribute



400
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 400

ndr_file_time :kick_off_time, initial_value: NEVER_EXPIRE

#last_failed_i_logonFileTime

Returns User account’s msDS-LastFailedInteractiveLogonTime.

Returns:

  • (FileTime)

    User account’s msDS-LastFailedInteractiveLogonTime



510
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 510

ndr_file_time :last_failed_i_logon

#last_successful_i_logonFileTime

Returns User account’s msDS-LastSuccessfulInteractiveLogonTime.

Returns:

  • (FileTime)

    User account’s msDS-LastSuccessfulInteractiveLogonTime



506
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 506

ndr_file_time :last_successful_i_logon

#logoff_timeFileTime

Returns Time the client’s logon session is set to expire.

Returns:

  • (FileTime)

    Time the client’s logon session is set to expire



396
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 396

ndr_file_time :logoff_time, initial_value: NEVER_EXPIRE

#logon_countInteger

Returns User account’s LogonCount attribute.

Returns:

  • (Integer)

    User account’s LogonCount attribute



440
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 440

ndr_uint16 :logon_count

#logon_domain_idInteger

Returns SID for the domain specified in LogonDomainName.

Returns:

  • (Integer)

    SID for the domain specified in LogonDomainName



489
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 489

prpc_sid :logon_domain_id

#logon_domain_nameRpcUnicodeString

Returns NetBIOS name of the domain to which this account belongs.

Returns:

  • (RpcUnicodeString)

    NetBIOS name of the domain to which this account belongs



485
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 485

rpc_unicode_string :logon_domain_name

#logon_scriptRpcUnicodeString

Returns User account’s scriptPath attribute.

Returns:

  • (RpcUnicodeString)

    User account’s scriptPath attribute



424
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 424

rpc_unicode_string :logon_script

#logon_serverRpcUnicodeString

Returns NetBIOS name of the Kerberos KDC that performed the authentication server (AS) ticket request.

Returns:

  • (RpcUnicodeString)

    NetBIOS name of the Kerberos KDC that performed the authentication server (AS) ticket request



481
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 481

rpc_unicode_string :logon_server

#logon_timeFileTime

Returns User account’s lastLogon attributeÏ.

Returns:

  • (FileTime)

    User account’s lastLogon attributeÏ



392
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 392

ndr_file_time :logon_time

#password_can_changeFileTime

Returns Time at which the client’s password is allowed to change.

Returns:

  • (FileTime)

    Time at which the client’s password is allowed to change



408
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 408

ndr_file_time :password_can_change

#password_last_setFileTime

Returns User account’s pwdLastSet attribute.

Returns:

  • (FileTime)

    User account’s pwdLastSet attribute



404
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 404

ndr_file_time :password_last_set

#password_must_changeFileTime

Returns Time at which the client’s password expires.

Returns:

  • (FileTime)

    Time at which the client’s password expires



412
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 412

ndr_file_time :password_must_change, initial_value: NEVER_EXPIRE

#primary_group_idInteger

Returns RID for the primary group to which this account belongs.

Returns:

  • (Integer)

    RID for the primary group to which this account belongs



452
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 452

ndr_uint32 :primary_group_id

#profile_pathRpcUnicodeString

Returns User account’s profilePath attribute.

Returns:

  • (RpcUnicodeString)

    User account’s profilePath attribute



428
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 428

rpc_unicode_string :profile_path

#reserved_1Integer

Returns This member is reserved.

Returns:

  • (Integer)

    This member is reserved



494
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 494

ndr_fix_array :reserved_1, initial_length: 2, type: :ndr_uint32

#reserved_3Integer

Returns This member is reserved.

Returns:

  • (Integer)

    This member is reserved



518
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 518

ndr_uint32 :reserved_3

#resource_group_countInteger

Returns Number of resource group identifiers stored in ResourceGroupIds.

Returns:

  • (Integer)

    Number of resource group identifiers stored in ResourceGroupIds



535
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 535

ndr_uint32 :resource_group_count

#resource_group_domain_sidInteger

Returns SID of the domain for the server whose resources the client is authenticating to.

Returns:

  • (Integer)

    SID of the domain for the server whose resources the client is authenticating to



531
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 531

prpc_sid :resource_group_domain_sid

#resource_group_ids_ptrInteger

account’s groups in the resource domain

Returns:

  • (Integer)

    Pointer to list of GROUP_MEMBERSHIP structures that contain the RIDs and attributes of the



540
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 540

pgroup_membership_array :resource_group_ids_ptr, type: [:group_membership, { byte_align: 4 }]

#sid_countInteger

Returns Total number of SIDs present in the ExtraSids member.

Returns:

  • (Integer)

    Total number of SIDs present in the ExtraSids member



522
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 522

ndr_uint32 :sid_count, initial_value: -> { extra_sids.length }

#sub_auth_statusInteger

Returns Subauthentication package’s status code.

Returns:

  • (Integer)

    Subauthentication package’s status code



502
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 502

ndr_uint32 :sub_auth_status

#user_account_controlInteger

Returns Set of bit flags that represent information about this account.

Returns:

  • (Integer)

    Set of bit flags that represent information about this account



498
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 498

ndr_uint32 :user_account_control, initial_value:  | USER_DONT_EXPIRE_PASSWORD

#user_flagsInteger

Returns A set of bit flags that describe the user’s logon information.

Returns:

  • (Integer)

    A set of bit flags that describe the user’s logon information



465
466
467
468
469
470
471
472
473
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 465

ndr_uint32 :user_flags,
initial_value: -> do
  value = 0
  # Bit D: Indicates that the ExtraSids field is populated and contains additional SIDs.
  value |= (1 << 5) if self.sid_count > 0
  # Bit H: Indicates that the ResourceGroupIds field is populated.
  value |= (1 << 9) if self.resource_group_count > 0
  value
end

#user_idInteger

Returns RID of the account.

Returns:

  • (Integer)

    RID of the account



448
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 448

ndr_uint32 :user_id

#user_session_keyInteger

Returns A session key that is used for cryptographic operations on a session.

Returns:

  • (Integer)

    A session key that is used for cryptographic operations on a session



477
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 477

user_session_key :user_session_key

Instance Method Details

#group_ids=(group_ids) ⇒ Object



542
543
544
545
546
# File 'lib/rex/proto/kerberos/pac/krb5_pac.rb', line 542

def group_ids=(group_ids)
  self.group_memberships = group_ids.map do |id|
    { relative_id: id, attributes: SE_GROUP_ALL }
  end
end