Coverage for /private/tmp/im/impacket/impacket/dcerpc/v5/nrpc.py : 83%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved. # # This software is provided under under a slightly modified version # of the Apache Software License. See the accompanying LICENSE file # for more information. # # Author: Alberto Solino (@agsolino) # # Description: # [MS-NRPC] Interface implementation # # Best way to learn how to use these calls is to grab the protocol standard # so you understand what the call does, and then read the test case located # at https://github.com/SecureAuthCorp/impacket/tree/master/tests/SMB_RPC # # Some calls have helper functions, which makes it even easier to use. # They are located at the end of this file. # Helper functions start with "h"<name of the call>. # There are test cases for them too. # NDRUniFixedArray, NDRUniConformantVaryingArray GUID, RPC_UNICODE_STRING, SECURITY_INFORMATION, LPULONG except ImportError: LOG.critical("Warning: You don't have any crypto installed. You need pycryptodomex") LOG.critical("See https://pypi.org/project/pycryptodomex/")
else: return 'NRPC SessionError: unknown error code: 0x%x' % (self.error_code)
################################################################################ # CONSTANTS ################################################################################ # 2.2.1.2.5 NL_DNS_NAME_INFO # Type
# DnsDomainInfoType
# 2.2.1.3.15 NL_OSVERSIONINFO_V1 # wSuiteMask
# wProductType
# 2.2.1.4.18 NETLOGON Specific Access Masks
# 3.5.4.9.1 NetrLogonControl2Ex (Opnum 18) # FunctionCode
################################################################################ # STRUCTURES ################################################################################ # 3.5.4.1 RPC Binding Handles for Netlogon Methods
# 2.2.1.1.1 CYPHER_BLOCK ('Data', '8s=b""'), )
# 2.2.1.1.2 STRING
# 2.2.1.1.3 LM_OWF_PASSWORD
('Data', CYPHER_BLOCK_ARRAY), )
# 2.2.1.1.4 NT_OWF_PASSWORD
# 2.2.1.3.4 NETLOGON_CREDENTIAL
('Data',UCHAR_FIXED_ARRAY), )
# 2.2.1.1.5 NETLOGON_AUTHENTICATOR ('Credential', NETLOGON_CREDENTIAL), ('Timestamp', DWORD), )
('Data', NETLOGON_AUTHENTICATOR), )
# 2.2.1.2.1 DOMAIN_CONTROLLER_INFOW ('DomainControllerName', LPWSTR), ('DomainControllerAddress', LPWSTR), ('DomainControllerAddressType', ULONG), ('DomainGuid', GUID), ('DomainName', LPWSTR), ('DnsForestName', LPWSTR), ('Flags', ULONG), ('DcSiteName', LPWSTR), ('ClientSiteName', LPWSTR), )
('Data', DOMAIN_CONTROLLER_INFOW), )
# 2.2.1.2.2 NL_SITE_NAME_ARRAY
('Data', RPC_UNICODE_STRING_ARRAY), )
('EntryCount', ULONG), ('SiteNames', PRPC_UNICODE_STRING_ARRAY), )
('Data', NL_SITE_NAME_ARRAY), )
# 2.2.1.2.3 NL_SITE_NAME_EX_ARRAY
('EntryCount', ULONG), ('SiteNames', PRPC_UNICODE_STRING_ARRAY), ('SubnetNames', PRPC_UNICODE_STRING_ARRAY), )
('Data', NL_SITE_NAME_EX_ARRAY), )
# 2.2.1.2.4 NL_SOCKET_ADDRESS # 2.2.1.2.4.1 IPv4 Address Structure ('AddressFamily', '<H=0'), ('Port', '<H=0'), ('Address', '<L=0'), ('Padding', '<L=0'), )
('Data', UCHAR_ARRAY), )
('lpSockaddr', PUCHAR_ARRAY), ('iSockaddrLength', ULONG), )
# 2.2.1.2.5 NL_DNS_NAME_INFO ('Type', ULONG), ('DnsDomainInfoType', WSTR), ('Priority', ULONG), ('Weight', ULONG), ('Port', ULONG), ('Register', UCHAR), ('Status', ULONG), )
# 2.2.1.2.6 NL_DNS_NAME_INFO_ARRAY
('Data', NL_DNS_NAME_INFO_ARRAY), )
('EntryCount', ULONG), ('DnsNamesInfo', PNL_DNS_NAME_INFO_ARRAY), )
# 2.2.1.3 Secure Channel Establishment and Maintenance Structures # ToDo
# 2.2.1.3.5 NETLOGON_LSA_POLICY_INFO ('LsaPolicySize', ULONG), ('LsaPolicy', PUCHAR_ARRAY), )
('Data', NETLOGON_LSA_POLICY_INFO), )
# 2.2.1.3.6 NETLOGON_WORKSTATION_INFO ('LsaPolicy', NETLOGON_LSA_POLICY_INFO), ('DnsHostName', LPWSTR), ('SiteName', LPWSTR), ('Dummy1', LPWSTR), ('Dummy2', LPWSTR), ('Dummy3', LPWSTR), ('Dummy4', LPWSTR), ('OsVersion', RPC_UNICODE_STRING), ('OsName', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('WorkstationFlags', ULONG), ('KerberosSupportedEncryptionTypes', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_WORKSTATION_INFO), )
# 2.2.1.3.7 NL_TRUST_PASSWORD return 512
('Buffer', WCHAR_ARRAY), ('Length', LPWSTR), )
# 2.2.1.3.8 NL_PASSWORD_VERSION ('ReservedField', ULONG), ('PasswordVersionNumber', ULONG), ('PasswordVersionPresent', ULONG), )
# 2.2.1.3.9 NETLOGON_WORKSTATION_INFORMATION ('tag', DWORD), )
1 : ('WorkstationInfo', PNETLOGON_WORKSTATION_INFO), 2 : ('LsaPolicyInfo', PNETLOGON_LSA_POLICY_INFO), }
# 2.2.1.3.10 NETLOGON_ONE_DOMAIN_INFO ('DomainName', RPC_UNICODE_STRING), ('DnsDomainName', RPC_UNICODE_STRING), ('DnsForestName', RPC_UNICODE_STRING), ('DomainGuid', GUID), ('DomainSid', PRPC_SID), ('TrustExtension', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_ONE_DOMAIN_INFO_ARRAY), )
# 2.2.1.3.11 NETLOGON_DOMAIN_INFO ('PrimaryDomain', NETLOGON_ONE_DOMAIN_INFO), ('TrustedDomainCount', ULONG), ('TrustedDomains', PNETLOGON_ONE_DOMAIN_INFO_ARRAY), ('LsaPolicy', NETLOGON_LSA_POLICY_INFO), ('DnsHostNameInDs', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('WorkstationFlags', ULONG), ('SupportedEncTypes', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DOMAIN_INFO), )
# 2.2.1.3.12 NETLOGON_DOMAIN_INFORMATION ('tag', DWORD), )
1 : ('DomainInfo', PNETLOGON_DOMAIN_INFO), 2 : ('LsaPolicyInfo', PNETLOGON_LSA_POLICY_INFO), }
# 2.2.1.3.13 NETLOGON_SECURE_CHANNEL_TYPE
# 2.2.1.3.14 NETLOGON_CAPABILITIES ('tag', DWORD), )
1 : ('ServerCapabilities', ULONG), }
# 2.2.1.3.15 NL_OSVERSIONINFO_V1 return 128
('dwOSVersionInfoSize', DWORD), ('dwMajorVersion', DWORD), ('dwMinorVersion', DWORD), ('dwBuildNumber', DWORD), ('dwPlatformId', DWORD), ('szCSDVersion', UCHAR_FIXED_ARRAY), ('wServicePackMajor', USHORT), ('wServicePackMinor', USHORT), ('wSuiteMask', USHORT), ('wProductType', UCHAR), ('wReserved', UCHAR), )
('Data', NL_OSVERSIONINFO_V1), )
# 2.2.1.3.16 NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1 ('Data', LPWSTR), )
('ClientDnsHostName', PLPWSTR), ('OsVersionInfo', PNL_OSVERSIONINFO_V1), ('OsName', PLPWSTR), )
# 2.2.1.3.17 NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES ('tag', DWORD), )
1 : ('V1', NL_IN_CHAIN_SET_CLIENT_ATTRIBUTES_V1), }
# 2.2.1.3.18 NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1 ('HubName', PLPWSTR), ('OldDnsHostName', PLPWSTR), ('SupportedEncTypes', LPULONG), )
# 2.2.1.3.19 NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES ('tag', DWORD), )
1 : ('V1', NL_OUT_CHAIN_SET_CLIENT_ATTRIBUTES_V1), }
# 2.2.1.4.1 LM_CHALLENGE
('Data', CHAR_FIXED_8_ARRAY), )
# 2.2.1.4.15 NETLOGON_LOGON_IDENTITY_INFO ('LogonDomainName', RPC_UNICODE_STRING), ('ParameterControl', ULONG), ('Reserved', OLD_LARGE_INTEGER), ('UserName', RPC_UNICODE_STRING), ('Workstation', RPC_UNICODE_STRING), )
('Data', NETLOGON_LOGON_IDENTITY_INFO), )
# 2.2.1.4.2 NETLOGON_GENERIC_INFO ('Identity', NETLOGON_LOGON_IDENTITY_INFO), ('PackageName', RPC_UNICODE_STRING), ('DataLength', ULONG), ('LogonData', PUCHAR_ARRAY), )
('Data', NETLOGON_GENERIC_INFO), )
# 2.2.1.4.3 NETLOGON_INTERACTIVE_INFO ('Identity', NETLOGON_LOGON_IDENTITY_INFO), ('LmOwfPassword', LM_OWF_PASSWORD), ('NtOwfPassword', NT_OWF_PASSWORD), )
('Data', NETLOGON_INTERACTIVE_INFO), )
# 2.2.1.4.4 NETLOGON_SERVICE_INFO ('Identity', NETLOGON_LOGON_IDENTITY_INFO), ('LmOwfPassword', LM_OWF_PASSWORD), ('NtOwfPassword', NT_OWF_PASSWORD), )
('Data', NETLOGON_SERVICE_INFO), )
# 2.2.1.4.5 NETLOGON_NETWORK_INFO ('Identity', NETLOGON_LOGON_IDENTITY_INFO), ('LmChallenge', LM_CHALLENGE), ('NtChallengeResponse', STRING), ('LmChallengeResponse', STRING), )
('Data', NETLOGON_NETWORK_INFO), )
# 2.2.1.4.16 NETLOGON_LOGON_INFO_CLASS
# 2.2.1.4.6 NETLOGON_LEVEL NETLOGON_LOGON_INFO_CLASS.NetlogonInteractiveInformation : ('LogonInteractive', PNETLOGON_INTERACTIVE_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonInteractiveTransitiveInformation : ('LogonInteractiveTransitive', PNETLOGON_INTERACTIVE_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonServiceInformation : ('LogonService', PNETLOGON_SERVICE_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonServiceTransitiveInformation : ('LogonServiceTransitive', PNETLOGON_SERVICE_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonNetworkInformation : ('LogonNetwork', PNETLOGON_NETWORK_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonNetworkTransitiveInformation : ('LogonNetworkTransitive', PNETLOGON_NETWORK_INFO), NETLOGON_LOGON_INFO_CLASS.NetlogonGenericInformation : ('LogonGeneric', PNETLOGON_GENERIC_INFO), }
# 2.2.1.4.7 NETLOGON_SID_AND_ATTRIBUTES ('Sid', PRPC_SID), ('Attributes', ULONG), )
# 2.2.1.4.8 NETLOGON_VALIDATION_GENERIC_INFO2 ('DataLength', ULONG), ('ValidationData', PUCHAR_ARRAY), )
('Data', NETLOGON_VALIDATION_GENERIC_INFO2), )
# 2.2.1.4.9 USER_SESSION_KEY
# 2.2.1.4.10 GROUP_MEMBERSHIP ('RelativeId', ULONG), ('Attributes', ULONG), )
('Data', GROUP_MEMBERSHIP_ARRAY), )
# 2.2.1.4.11 NETLOGON_VALIDATION_SAM_INFO
('LogonTime', OLD_LARGE_INTEGER), ('LogoffTime', OLD_LARGE_INTEGER), ('KickOffTime', OLD_LARGE_INTEGER), ('PasswordLastSet', OLD_LARGE_INTEGER), ('PasswordCanChange', OLD_LARGE_INTEGER), ('PasswordMustChange', OLD_LARGE_INTEGER), ('EffectiveName', RPC_UNICODE_STRING), ('FullName', RPC_UNICODE_STRING), ('LogonScript', RPC_UNICODE_STRING), ('ProfilePath', RPC_UNICODE_STRING), ('HomeDirectory', RPC_UNICODE_STRING), ('HomeDirectoryDrive', RPC_UNICODE_STRING), ('LogonCount', USHORT), ('BadPasswordCount', USHORT), ('UserId', ULONG), ('PrimaryGroupId', ULONG), ('GroupCount', ULONG), ('GroupIds', PGROUP_MEMBERSHIP_ARRAY), ('UserFlags', ULONG), ('UserSessionKey', USER_SESSION_KEY), ('LogonServer', RPC_UNICODE_STRING), ('LogonDomainName', RPC_UNICODE_STRING), ('LogonDomainId', PRPC_SID), ('ExpansionRoom', LONG_ARRAY), )
('Data', NETLOGON_VALIDATION_SAM_INFO), )
# 2.2.1.4.12 NETLOGON_VALIDATION_SAM_INFO2
('Data', NETLOGON_SID_AND_ATTRIBUTES_ARRAY), )
('LogonTime', OLD_LARGE_INTEGER), ('LogoffTime', OLD_LARGE_INTEGER), ('KickOffTime', OLD_LARGE_INTEGER), ('PasswordLastSet', OLD_LARGE_INTEGER), ('PasswordCanChange', OLD_LARGE_INTEGER), ('PasswordMustChange', OLD_LARGE_INTEGER), ('EffectiveName', RPC_UNICODE_STRING), ('FullName', RPC_UNICODE_STRING), ('LogonScript', RPC_UNICODE_STRING), ('ProfilePath', RPC_UNICODE_STRING), ('HomeDirectory', RPC_UNICODE_STRING), ('HomeDirectoryDrive', RPC_UNICODE_STRING), ('LogonCount', USHORT), ('BadPasswordCount', USHORT), ('UserId', ULONG), ('PrimaryGroupId', ULONG), ('GroupCount', ULONG), ('GroupIds', PGROUP_MEMBERSHIP_ARRAY), ('UserFlags', ULONG), ('UserSessionKey', USER_SESSION_KEY), ('LogonServer', RPC_UNICODE_STRING), ('LogonDomainName', RPC_UNICODE_STRING), ('LogonDomainId', PRPC_SID), ('ExpansionRoom', LONG_ARRAY), ('SidCount', ULONG), ('ExtraSids', PNETLOGON_SID_AND_ATTRIBUTES_ARRAY), )
('Data', NETLOGON_VALIDATION_SAM_INFO2), )
# 2.2.1.4.13 NETLOGON_VALIDATION_SAM_INFO4 ('LogonTime', OLD_LARGE_INTEGER), ('LogoffTime', OLD_LARGE_INTEGER), ('KickOffTime', OLD_LARGE_INTEGER), ('PasswordLastSet', OLD_LARGE_INTEGER), ('PasswordCanChange', OLD_LARGE_INTEGER), ('PasswordMustChange', OLD_LARGE_INTEGER), ('EffectiveName', RPC_UNICODE_STRING), ('FullName', RPC_UNICODE_STRING), ('LogonScript', RPC_UNICODE_STRING), ('ProfilePath', RPC_UNICODE_STRING), ('HomeDirectory', RPC_UNICODE_STRING), ('HomeDirectoryDrive', RPC_UNICODE_STRING), ('LogonCount', USHORT), ('BadPasswordCount', USHORT), ('UserId', ULONG), ('PrimaryGroupId', ULONG), ('GroupCount', ULONG), ('GroupIds', PGROUP_MEMBERSHIP_ARRAY), ('UserFlags', ULONG), ('UserSessionKey', USER_SESSION_KEY), ('LogonServer', RPC_UNICODE_STRING), ('LogonDomainName', RPC_UNICODE_STRING), ('LogonDomainId', PRPC_SID),
('LMKey', CHAR_FIXED_8_ARRAY), ('UserAccountControl', ULONG), ('SubAuthStatus', ULONG), ('LastSuccessfulILogon', OLD_LARGE_INTEGER), ('LastFailedILogon', OLD_LARGE_INTEGER), ('FailedILogonCount', ULONG), ('Reserved4', ULONG),
('SidCount', ULONG), ('ExtraSids', PNETLOGON_SID_AND_ATTRIBUTES_ARRAY), ('DnsLogonDomainName', RPC_UNICODE_STRING), ('Upn', RPC_UNICODE_STRING), ('ExpansionString1', RPC_UNICODE_STRING), ('ExpansionString2', RPC_UNICODE_STRING), ('ExpansionString3', RPC_UNICODE_STRING), ('ExpansionString4', RPC_UNICODE_STRING), ('ExpansionString5', RPC_UNICODE_STRING), ('ExpansionString6', RPC_UNICODE_STRING), ('ExpansionString7', RPC_UNICODE_STRING), ('ExpansionString8', RPC_UNICODE_STRING), ('ExpansionString9', RPC_UNICODE_STRING), ('ExpansionString10', RPC_UNICODE_STRING), )
('Data', NETLOGON_VALIDATION_SAM_INFO4), )
# 2.2.1.4.17 NETLOGON_VALIDATION_INFO_CLASS
# 2.2.1.4.14 NETLOGON_VALIDATION NETLOGON_VALIDATION_INFO_CLASS.NetlogonValidationSamInfo : ('ValidationSam', PNETLOGON_VALIDATION_SAM_INFO), NETLOGON_VALIDATION_INFO_CLASS.NetlogonValidationSamInfo2 : ('ValidationSam2', PNETLOGON_VALIDATION_SAM_INFO2), NETLOGON_VALIDATION_INFO_CLASS.NetlogonValidationGenericInfo2: ('ValidationGeneric2', PNETLOGON_VALIDATION_GENERIC_INFO2), NETLOGON_VALIDATION_INFO_CLASS.NetlogonValidationSamInfo4 : ('ValidationSam4', PNETLOGON_VALIDATION_SAM_INFO4), }
# 2.2.1.5.2 NLPR_QUOTA_LIMITS ('PagedPoolLimit', ULONG), ('NonPagedPoolLimit', ULONG), ('MinimumWorkingSetSize', ULONG), ('MaximumWorkingSetSize', ULONG), ('PagefileLimit', ULONG), ('Reserved', OLD_LARGE_INTEGER), )
# 2.2.1.5.3 NETLOGON_DELTA_ACCOUNTS
('Data', ULONG_ARRAY), )
('PrivilegeEntries', ULONG), ('PrivilegeControl', ULONG), ('PrivilegeAttributes', PULONG_ARRAY), ('PrivilegeNames', PRPC_UNICODE_STRING_ARRAY), ('QuotaLimits', NLPR_QUOTA_LIMITS), ('SystemAccessFlags', ULONG), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_ACCOUNTS), )
# 2.2.1.5.5 NLPR_SID_INFORMATION ('SidPointer', PRPC_SID), )
# 2.2.1.5.6 NLPR_SID_ARRAY
('Data', NLPR_SID_INFORMATION_ARRAY), )
('Count', ULONG), ('Sids', PNLPR_SID_INFORMATION_ARRAY), )
# 2.2.1.5.7 NETLOGON_DELTA_ALIAS_MEMBER ('Members', NLPR_SID_ARRAY), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_ALIAS_MEMBER), )
# 2.2.1.5.8 NETLOGON_DELTA_DELETE_GROUP ('AccountName', LPWSTR), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_DELETE_GROUP), )
# 2.2.1.5.9 NETLOGON_DELTA_DELETE_USER ('AccountName', LPWSTR), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_DELETE_USER), )
# 2.2.1.5.10 NETLOGON_DELTA_DOMAIN ('DomainName', RPC_UNICODE_STRING), ('OemInformation', RPC_UNICODE_STRING), ('ForceLogoff', OLD_LARGE_INTEGER), ('MinPasswordLength', USHORT), ('PasswordHistoryLength', USHORT), ('MaxPasswordAge', OLD_LARGE_INTEGER), ('MinPasswordAge', OLD_LARGE_INTEGER), ('DomainModifiedCount', OLD_LARGE_INTEGER), ('DomainCreationTime', OLD_LARGE_INTEGER), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('DomainLockoutInformation', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('PasswordProperties', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_DOMAIN), )
# 2.2.1.5.13 NETLOGON_DELTA_GROUP ('Name', RPC_UNICODE_STRING), ('RelativeId', ULONG), ('Attributes', ULONG), ('AdminComment', RPC_UNICODE_STRING), ('SecurityInformation', USHORT), ('SecuritySize', ULONG), ('SecurityDescriptor', SECURITY_INFORMATION), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_GROUP), )
# 2.2.1.5.24 NETLOGON_RENAME_GROUP ('OldName', RPC_UNICODE_STRING), ('NewName', RPC_UNICODE_STRING), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_RENAME_GROUP), )
# 2.2.1.5.14 NLPR_LOGON_HOURS
# 2.2.1.5.15 NLPR_USER_PRIVATE_INFO ('SensitiveData', UCHAR), ('DataLength', ULONG), ('Data', PUCHAR_ARRAY), )
# 2.2.1.5.16 NETLOGON_DELTA_USER ('UserName', RPC_UNICODE_STRING), ('FullName', RPC_UNICODE_STRING), ('UserId', ULONG), ('PrimaryGroupId', ULONG), ('HomeDirectory', RPC_UNICODE_STRING), ('HomeDirectoryDrive', RPC_UNICODE_STRING), ('ScriptPath', RPC_UNICODE_STRING), ('AdminComment', RPC_UNICODE_STRING), ('WorkStations', RPC_UNICODE_STRING), ('LastLogon', OLD_LARGE_INTEGER), ('LastLogoff', OLD_LARGE_INTEGER), ('LogonHours', NLPR_LOGON_HOURS), ('BadPasswordCount', USHORT), ('LogonCount', USHORT), ('PasswordLastSet', OLD_LARGE_INTEGER), ('AccountExpires', OLD_LARGE_INTEGER), ('UserAccountControl', ULONG), ('EncryptedNtOwfPassword', PUCHAR_ARRAY), ('EncryptedLmOwfPassword', PUCHAR_ARRAY), ('NtPasswordPresent', UCHAR), ('LmPasswordPresent', UCHAR), ('PasswordExpired', UCHAR), ('UserComment', RPC_UNICODE_STRING), ('Parameters', RPC_UNICODE_STRING), ('CountryCode', USHORT), ('CodePage', USHORT), ('PrivateData', NLPR_USER_PRIVATE_INFO), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('ProfilePath', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_USER), )
# 2.2.1.5.25 NETLOGON_RENAME_USER ('OldName', RPC_UNICODE_STRING), ('NewName', RPC_UNICODE_STRING), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_RENAME_USER), )
# 2.2.1.5.17 NETLOGON_DELTA_GROUP_MEMBER ('Members', PULONG_ARRAY), ('Attributes', PULONG_ARRAY), ('MemberCount', ULONG), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_GROUP_MEMBER), )
# 2.2.1.5.4 NETLOGON_DELTA_ALIAS ('Name', RPC_UNICODE_STRING), ('RelativeId', ULONG), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('Comment', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_ALIAS), )
# 2.2.1.5.23 NETLOGON_RENAME_ALIAS ('OldName', RPC_UNICODE_STRING), ('NewName', RPC_UNICODE_STRING), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_RENAME_ALIAS), )
# 2.2.1.5.19 NETLOGON_DELTA_POLICY ('MaximumLogSize', ULONG), ('AuditRetentionPeriod', OLD_LARGE_INTEGER), ('AuditingMode', UCHAR), ('MaximumAuditEventCount', ULONG), ('EventAuditingOptions', PULONG_ARRAY), ('PrimaryDomainName', RPC_UNICODE_STRING), ('PrimaryDomainSid', PRPC_SID), ('QuotaLimits', NLPR_QUOTA_LIMITS), ('ModifiedId', OLD_LARGE_INTEGER), ('DatabaseCreationTime', OLD_LARGE_INTEGER), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_POLICY), )
# 2.2.1.5.22 NETLOGON_DELTA_TRUSTED_DOMAINS ('DomainName', RPC_UNICODE_STRING), ('NumControllerEntries', ULONG), ('ControllerNames', PRPC_UNICODE_STRING_ARRAY), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_TRUSTED_DOMAINS), )
# 2.2.1.5.20 NLPR_CR_CIPHER_VALUE
('Data', UCHAR_ARRAY2), )
('Length', ULONG), ('MaximumLength', ULONG), ('Buffer', PUCHAR_ARRAY2), )
# 2.2.1.5.21 NETLOGON_DELTA_SECRET ('CurrentValue', NLPR_CR_CIPHER_VALUE), ('CurrentValueSetTime', OLD_LARGE_INTEGER), ('OldValue', NLPR_CR_CIPHER_VALUE), ('OldValueSetTime', OLD_LARGE_INTEGER), ('SecurityInformation', SECURITY_INFORMATION), ('SecuritySize', ULONG), ('SecurityDescriptor', PUCHAR_ARRAY), ('DummyString1', RPC_UNICODE_STRING), ('DummyString2', RPC_UNICODE_STRING), ('DummyString3', RPC_UNICODE_STRING), ('DummyString4', RPC_UNICODE_STRING), ('DummyLong1', ULONG), ('DummyLong2', ULONG), ('DummyLong3', ULONG), ('DummyLong4', ULONG), )
('Data', NETLOGON_DELTA_SECRET), )
# 2.2.1.5.26 NLPR_MODIFIED_COUNT ('ModifiedCount', OLD_LARGE_INTEGER), )
('Data', NLPR_MODIFIED_COUNT), )
# 2.2.1.5.28 NETLOGON_DELTA_TYPE
# 2.2.1.5.27 NETLOGON_DELTA_UNION NETLOGON_DELTA_TYPE.AddOrChangeDomain : ('DeltaDomain', PNETLOGON_DELTA_DOMAIN), NETLOGON_DELTA_TYPE.AddOrChangeGroup : ('DeltaGroup', PNETLOGON_DELTA_GROUP), NETLOGON_DELTA_TYPE.RenameGroup : ('DeltaRenameGroup', PNETLOGON_DELTA_RENAME_GROUP), NETLOGON_DELTA_TYPE.AddOrChangeUser : ('DeltaUser', PNETLOGON_DELTA_USER), NETLOGON_DELTA_TYPE.RenameUser : ('DeltaRenameUser', PNETLOGON_DELTA_RENAME_USER), NETLOGON_DELTA_TYPE.ChangeGroupMembership : ('DeltaGroupMember', PNETLOGON_DELTA_GROUP_MEMBER), NETLOGON_DELTA_TYPE.AddOrChangeAlias : ('DeltaAlias', PNETLOGON_DELTA_ALIAS), NETLOGON_DELTA_TYPE.RenameAlias : ('DeltaRenameAlias', PNETLOGON_DELTA_RENAME_ALIAS), NETLOGON_DELTA_TYPE.ChangeAliasMembership : ('DeltaAliasMember', PNETLOGON_DELTA_ALIAS_MEMBER), NETLOGON_DELTA_TYPE.AddOrChangeLsaPolicy : ('DeltaPolicy', PNETLOGON_DELTA_POLICY), NETLOGON_DELTA_TYPE.AddOrChangeLsaTDomain : ('DeltaTDomains', PNETLOGON_DELTA_TRUSTED_DOMAINS), NETLOGON_DELTA_TYPE.AddOrChangeLsaAccount : ('DeltaAccounts', PNETLOGON_DELTA_ACCOUNTS), NETLOGON_DELTA_TYPE.AddOrChangeLsaSecret : ('DeltaSecret', PNETLOGON_DELTA_SECRET), NETLOGON_DELTA_TYPE.DeleteGroupByName : ('DeltaDeleteGroup', PNETLOGON_DELTA_DELETE_GROUP), NETLOGON_DELTA_TYPE.DeleteUserByName : ('DeltaDeleteUser', PNETLOGON_DELTA_DELETE_USER), NETLOGON_DELTA_TYPE.SerialNumberSkip : ('DeltaSerialNumberSkip', PNLPR_MODIFIED_COUNT), }
# 2.2.1.5.18 NETLOGON_DELTA_ID_UNION NETLOGON_DELTA_TYPE.AddOrChangeDomain : ('Rid', ULONG), NETLOGON_DELTA_TYPE.AddOrChangeGroup : ('Rid', ULONG), NETLOGON_DELTA_TYPE.DeleteGroup : ('Rid', ULONG), NETLOGON_DELTA_TYPE.RenameGroup : ('Rid', ULONG), NETLOGON_DELTA_TYPE.AddOrChangeUser : ('Rid', ULONG), NETLOGON_DELTA_TYPE.DeleteUser : ('Rid', ULONG), NETLOGON_DELTA_TYPE.RenameUser : ('Rid', ULONG), NETLOGON_DELTA_TYPE.ChangeGroupMembership : ('Rid', ULONG), NETLOGON_DELTA_TYPE.AddOrChangeAlias : ('Rid', ULONG), NETLOGON_DELTA_TYPE.DeleteAlias : ('Rid', ULONG), NETLOGON_DELTA_TYPE.RenameAlias : ('Rid', ULONG), NETLOGON_DELTA_TYPE.ChangeAliasMembership : ('Rid', ULONG), NETLOGON_DELTA_TYPE.DeleteGroupByName : ('Rid', ULONG), NETLOGON_DELTA_TYPE.DeleteUserByName : ('Rid', ULONG), NETLOGON_DELTA_TYPE.AddOrChangeLsaPolicy : ('Sid', PRPC_SID), NETLOGON_DELTA_TYPE.AddOrChangeLsaTDomain : ('Sid', PRPC_SID), NETLOGON_DELTA_TYPE.DeleteLsaTDomain : ('Sid', PRPC_SID), NETLOGON_DELTA_TYPE.AddOrChangeLsaAccount : ('Sid', PRPC_SID), NETLOGON_DELTA_TYPE.DeleteLsaAccount : ('Sid', PRPC_SID), NETLOGON_DELTA_TYPE.AddOrChangeLsaSecret : ('Name', LPWSTR), NETLOGON_DELTA_TYPE.DeleteLsaSecret : ('Name', LPWSTR), }
# 2.2.1.5.11 NETLOGON_DELTA_ENUM ('DeltaType', NETLOGON_DELTA_TYPE), ('DeltaID', NETLOGON_DELTA_ID_UNION), ('DeltaUnion', NETLOGON_DELTA_UNION), )
# 2.2.1.5.12 NETLOGON_DELTA_ENUM_ARRAY
('Data', NETLOGON_DELTA_ENUM_ARRAY_ARRAY), )
('CountReturned', DWORD), ('Deltas', PNETLOGON_DELTA_ENUM_ARRAY_ARRAY), )
# 2.2.1.5.29 SYNC_STATE
# 2.2.1.6.1 DOMAIN_NAME_BUFFER ('DomainNameByteCount', ULONG), ('DomainNames', PUCHAR_ARRAY), )
# 2.2.1.6.2 DS_DOMAIN_TRUSTSW ('NetbiosDomainName', LPWSTR), ('DnsDomainName', LPWSTR), ('Flags', ULONG), ('ParentIndex', ULONG), ('TrustType', ULONG), ('TrustAttributes', ULONG), ('DomainSid', PRPC_SID), ('DomainGuid', GUID), )
# 2.2.1.6.3 NETLOGON_TRUSTED_DOMAIN_ARRAY
('Data', DS_DOMAIN_TRUSTSW_ARRAY), )
('DomainCount', DWORD), ('Domains', PDS_DOMAIN_TRUSTSW_ARRAY), )
# 2.2.1.6.4 NL_GENERIC_RPC_DATA ('UlongEntryCount', ULONG), ('UlongData', PULONG_ARRAY), ('UnicodeStringEntryCount', ULONG), ('UnicodeStringData', PRPC_UNICODE_STRING_ARRAY), )
('Data', NL_GENERIC_RPC_DATA), )
# 2.2.1.7.1 NETLOGON_CONTROL_DATA_INFORMATION ('tag', DWORD), )
5 : ('TrustedDomainName', LPWSTR), 6 : ('TrustedDomainName', LPWSTR), 9 : ('TrustedDomainName', LPWSTR), 10 : ('TrustedDomainName', LPWSTR), 65534 : ('DebugFlag', DWORD), 8: ('UserName', LPWSTR), }
# 2.2.1.7.2 NETLOGON_INFO_1 ('netlog1_flags', DWORD), ('netlog1_pdc_connection_status', NET_API_STATUS), )
('Data', NETLOGON_INFO_1), )
# 2.2.1.7.3 NETLOGON_INFO_2 ('netlog2_flags', DWORD), ('netlog2_pdc_connection_status', NET_API_STATUS), ('netlog2_trusted_dc_name', LPWSTR), ('netlog2_tc_connection_status', NET_API_STATUS), )
('Data', NETLOGON_INFO_2), )
# 2.2.1.7.4 NETLOGON_INFO_3 ('netlog3_flags', DWORD), ('netlog3_logon_attempts', DWORD), ('netlog3_reserved1', DWORD), ('netlog3_reserved2', DWORD), ('netlog3_reserved3', DWORD), ('netlog3_reserved4', DWORD), ('netlog3_reserved5', DWORD), )
('Data', NETLOGON_INFO_3), )
# 2.2.1.7.5 NETLOGON_INFO_4 ('netlog4_trusted_dc_name', LPWSTR), ('netlog4_trusted_domain_name', LPWSTR), )
('Data', NETLOGON_INFO_4), )
# 2.2.1.7.6 NETLOGON_CONTROL_QUERY_INFORMATION ('tag', DWORD), )
1 : ('NetlogonInfo1', PNETLOGON_INFO_1), 2 : ('NetlogonInfo2', PNETLOGON_INFO_2), 3 : ('NetlogonInfo3', PNETLOGON_INFO_3), 4 : ('NetlogonInfo4', PNETLOGON_INFO_4), }
# 2.2.1.8.1 NETLOGON_VALIDATION_UAS_INFO ('usrlog1_eff_name', DWORD), ('usrlog1_priv', DWORD), ('usrlog1_auth_flags', DWORD), ('usrlog1_num_logons', DWORD), ('usrlog1_bad_pw_count', DWORD), ('usrlog1_last_logon', DWORD), ('usrlog1_last_logoff', DWORD), ('usrlog1_logoff_time', DWORD), ('usrlog1_kickoff_time', DWORD), ('usrlog1_password_age', DWORD), ('usrlog1_pw_can_change', DWORD), ('usrlog1_pw_must_change', DWORD), ('usrlog1_computer', LPWSTR), ('usrlog1_domain', LPWSTR), ('usrlog1_script_path', LPWSTR), ('usrlog1_reserved1', DWORD), )
('Data', NETLOGON_VALIDATION_UAS_INFO), )
# 2.2.1.8.2 NETLOGON_LOGOFF_UAS_INFO ('Duration', DWORD), ('LogonCount', USHORT), )
# 2.2.1.8.3 UAS_INFO_0 ('ComputerName', '16s=""'), ('TimeCreated', ULONG), ('SerialNumber', ULONG), ) return 4
# 2.2.1.8.4 NETLOGON_DUMMY1 ('tag', DWORD), )
1 : ('Dummy', ULONG), }
# 3.5.4.8.2 NetrLogonComputeServerDigest (Opnum 24) return 16
################################################################################ # SSPI ################################################################################ # Constants
# Structures ('MessageType','<L=0'), ('Flags','<L=0'), ('Buffer',':'), ) Structure.__init__(self, data, alignment) if data is None: self['Buffer'] = '\x00'*4
('SignatureAlgorithm','<H=0'), ('SealAlgorithm','<H=0'), ('Pad','<H=0xffff'), ('Flags','<H=0'), ('SequenceNumber','8s=""'), ('Checksum','8s=""'), ('_Confounder','_-Confounder','8'), ('Confounder',':'), ) Structure.__init__(self, data, alignment) if data is None: self['Confounder'] = ''
('SignatureAlgorithm','<H=0'), ('SealAlgorithm','<H=0'), ('Pad','<H=0xffff'), ('Flags','<H=0'), ('SequenceNumber','8s=""'), ('Checksum','32s=""'), ('_Confounder','_-Confounder','8'), ('Confounder',':'), ) Structure.__init__(self, data, alignment) if data is None: self['Confounder'] = ''
# Section 3.1.4.4.2
# Section 3.1.4.4.1 IV='\x00'*16 Crypt1 = AES.new(Sk, AES.MODE_CFB, IV) return Crypt1.encrypt(inputData)
# Section 3.1.4.3.1 # added the ability to receive hashes already if sharedSecretHash is None: M4SS = ntlm.NTOWFv1(sharedSecret) else: M4SS = sharedSecretHash
hm = hmac.new(key=M4SS, digestmod=hashlib.sha256) hm.update(clientChallenge) hm.update(serverChallenge) sessionKey = hm.digest()
return sessionKey[:16]
# 3.1.4.3.2 Strong-key Session-Key # added the ability to receive hashes already
M4SS = ntlm.NTOWFv1(sharedSecret) else:
sequenceLow = sequenceNum & 0xffffffff sequenceHigh = (sequenceNum >> 32) & 0xffffffff sequenceHigh |= 0x80000000
res = pack('>L', sequenceLow) res += pack('>L', sequenceHigh) return res
# [MS-NRPC] Section 3.3.4.2.1, point 7 hm = hmac.new(key=sessionKey, digestmod=hashlib.sha256) hm.update(str(authSignature)[:8]) # If no confidentiality requested, it should be '' hm.update(confounder) hm.update(str(message)) return hm.digest()[:8]+'\x00'*24
# [MS-NRPC] Section 3.3.4.2.1, point 7 md5 = hashlib.new('md5') md5.update('\x00'*4) md5.update(str(authSignature)[:8]) # If no confidentiality requested, it should be '' md5.update(confounder) md5.update(str(message)) finalMD5 = md5.digest() hm = hmac.new(sessionKey) hm.update(finalMD5) return hm.digest()[:8]
# [MS-NRPC] Section 3.3.4.2.1, point 9
hm = hmac.new(sessionKey) hm.update('\x00'*4) hm2 = hmac.new(hm.digest()) hm2.update(checkSum) encryptionKey = hm2.digest()
cipher = ARC4.new(encryptionKey) return cipher.encrypt(sequenceNum)
# [MS-NRPC] Section 3.3.4.2.2, point 5
return encryptSequenceNumberRC4(sequenceNum, checkSum, sessionKey)
# [MS-NRPC] Section 3.3.4.2.1, point 9 IV = checkSum[:8] + checkSum[:8] Cipher = AES.new(sessionKey, AES.MODE_CFB, IV) return Cipher.encrypt(sequenceNum)
# [MS-NRPC] Section 3.3.4.2.1, point 9 IV = checkSum[:8] + checkSum[:8] Cipher = AES.new(sessionKey, AES.MODE_CFB, IV) return Cipher.decrypt(sequenceNum)
if aes is False: signature = NL_AUTH_SIGNATURE() signature['SignatureAlgorithm'] = NL_SIGNATURE_HMAC_MD5 if confounder == '': signature['SealAlgorithm'] = NL_SEAL_NOT_ENCRYPTED else: signature['SealAlgorithm'] = NL_SEAL_RC4 signature['Checksum'] = ComputeNetlogonSignatureMD5(signature, data, confounder, key) signature['SequenceNumber'] = encryptSequenceNumberRC4(deriveSequenceNumber(sequenceNum), signature['Checksum'], key) return signature else: signature = NL_AUTH_SIGNATURE() signature['SignatureAlgorithm'] = NL_SIGNATURE_HMAC_SHA256 if confounder == '': signature['SealAlgorithm'] = NL_SEAL_NOT_ENCRYPTED else: signature['SealAlgorithm'] = NL_SEAL_AES128 signature['Checksum'] = ComputeNetlogonSignatureAES(signature, data, confounder, key) signature['SequenceNumber'] = encryptSequenceNumberAES(deriveSequenceNumber(sequenceNum), signature['Checksum'], key) return signature
signature = SIGN(data, confounder, sequenceNum, key, aes) sequenceNum = deriveSequenceNumber(sequenceNum) XorKey = [] for i in key: XorKey.append(chr(ord(i) ^ 0xf0))
XorKey = ''.join(XorKey) if aes is False: hm = hmac.new(XorKey) hm.update('\x00'*4) hm2 = hmac.new(hm.digest()) hm2.update(sequenceNum) encryptionKey = hm2.digest()
cipher = ARC4.new(encryptionKey) cfounder = cipher.encrypt(confounder) cipher = ARC4.new(encryptionKey) encrypted = cipher.encrypt(data)
signature['Confounder'] = cfounder
return encrypted, signature else: IV = sequenceNum + sequenceNum cipher = AES.new(XorKey, AES.MODE_CFB, IV) cfounder = cipher.encrypt(confounder) encrypted = cipher.encrypt(data)
signature['Confounder'] = cfounder
return encrypted, signature
auth_data = NL_AUTH_SIGNATURE(auth_data) XorKey = [] for i in key: XorKey.append(chr(ord(i) ^ 0xf0))
XorKey = ''.join(XorKey) if aes is False: sequenceNum = decryptSequenceNumberRC4(auth_data['SequenceNumber'], auth_data['Checksum'], key) hm = hmac.new(XorKey) hm.update('\x00'*4) hm2 = hmac.new(hm.digest()) hm2.update(sequenceNum) encryptionKey = hm2.digest()
cipher = ARC4.new(encryptionKey) cfounder = cipher.encrypt(auth_data['Confounder']) cipher = ARC4.new(encryptionKey) plain = cipher.encrypt(data)
return plain, cfounder else: sequenceNum = decryptSequenceNumberAES(auth_data['SequenceNumber'], auth_data['Checksum'], key) IV = sequenceNum + sequenceNum cipher = AES.new(XorKey, AES.MODE_CFB, IV) cfounder = cipher.decrypt(auth_data['Confounder']) plain = cipher.decrypt(data) return plain, cfounder
auth = NL_AUTH_MESSAGE() auth['Flags'] = 0 auth['Buffer'] = '' auth['Flags'] |= NL_AUTH_MESSAGE_NETBIOS_DOMAIN if domain != '': auth['Buffer'] = auth['Buffer'] + domain + '\x00' else: auth['Buffer'] += 'WORKGROUP\x00'
auth['Flags'] |= NL_AUTH_MESSAGE_NETBIOS_HOST if workstation != '': auth['Buffer'] = auth['Buffer'] + workstation + '\x00' else: auth['Buffer'] += 'MYHOST\x00'
auth['Flags'] |= NL_AUTH_MESSAGE_NETBIOS_HOST_UTF8 if workstation != '': auth['Buffer'] += pack('<B',len(workstation)) + workstation + '\x00' else: auth['Buffer'] += '\x06MYHOST\x00'
return auth
################################################################################ # RPC CALLS ################################################################################ # 3.5.4.3.1 DsrGetDcNameEx2 (Opnum 34) ('ComputerName',PLOGONSRV_HANDLE), ('AccountName', LPWSTR), ('AllowableAccountControlBits', ULONG), ('DomainName',LPWSTR), ('DomainGuid',PGUID), ('SiteName',LPWSTR), ('Flags',ULONG), )
('DomainControllerInfo',PDOMAIN_CONTROLLER_INFOW), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.2 DsrGetDcNameEx (Opnum 27) ('ComputerName',PLOGONSRV_HANDLE), ('DomainName',LPWSTR), ('DomainGuid',PGUID), ('SiteName',LPWSTR), ('Flags',ULONG), )
('DomainControllerInfo',PDOMAIN_CONTROLLER_INFOW), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.3 DsrGetDcName (Opnum 20) ('ComputerName',PLOGONSRV_HANDLE), ('DomainName',LPWSTR), ('DomainGuid',PGUID), ('SiteGuid',PGUID), ('Flags',ULONG), )
('DomainControllerInfo',PDOMAIN_CONTROLLER_INFOW), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.4 NetrGetDCName (Opnum 11) ('ServerName',LOGONSRV_HANDLE), ('DomainName',LPWSTR), )
('Buffer',LPWSTR), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.5 NetrGetAnyDCName (Opnum 13) ('ServerName',PLOGONSRV_HANDLE), ('DomainName',LPWSTR), )
('Buffer',LPWSTR), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.6 DsrGetSiteName (Opnum 28) ('ComputerName',PLOGONSRV_HANDLE), )
('SiteName',LPWSTR), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.7 DsrGetDcSiteCoverageW (Opnum 38) ('ServerName',PLOGONSRV_HANDLE), )
('SiteNames',PNL_SITE_NAME_ARRAY), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.8 DsrAddressToSiteNamesW (Opnum 33) ('ComputerName',PLOGONSRV_HANDLE), ('EntryCount',ULONG), ('SocketAddresses',NL_SOCKET_ADDRESS_ARRAY), )
('SiteNames',PNL_SITE_NAME_ARRAY), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.9 DsrAddressToSiteNamesExW (Opnum 37) ('ComputerName',PLOGONSRV_HANDLE), ('EntryCount',ULONG), ('SocketAddresses',NL_SOCKET_ADDRESS_ARRAY), )
('SiteNames',PNL_SITE_NAME_EX_ARRAY), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.10 DsrDeregisterDnsHostRecords (Opnum 41) ('ServerName',PLOGONSRV_HANDLE), ('DnsDomainName',LPWSTR), ('DomainGuid',PGUID), ('DsaGuid',PGUID), ('DnsHostName',WSTR), )
('ErrorCode',NET_API_STATUS), )
# 3.5.4.3.11 DSRUpdateReadOnlyServerDnsRecords (Opnum 48) ('ServerName',PLOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('SiteName',LPWSTR), ('DnsTtl',ULONG), ('DnsNames',NL_DNS_NAME_INFO_ARRAY), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DnsNames',NL_DNS_NAME_INFO_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.1 NetrServerReqChallenge (Opnum 4) ('PrimaryName',PLOGONSRV_HANDLE), ('ComputerName',WSTR), ('ClientChallenge',NETLOGON_CREDENTIAL), )
('ServerChallenge',NETLOGON_CREDENTIAL), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.2 NetrServerAuthenticate3 (Opnum 26) ('PrimaryName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('SecureChannelType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('ClientCredential',NETLOGON_CREDENTIAL), ('NegotiateFlags',ULONG), )
('ServerCredential',NETLOGON_CREDENTIAL), ('NegotiateFlags',ULONG), ('AccountRid',ULONG), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.3 NetrServerAuthenticate2 (Opnum 15) ('PrimaryName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('SecureChannelType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('ClientCredential',NETLOGON_CREDENTIAL), ('NegotiateFlags',ULONG), )
('ServerCredential',NETLOGON_CREDENTIAL), ('NegotiateFlags',ULONG), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.4 NetrServerAuthenticate (Opnum 5) ('PrimaryName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('SecureChannelType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('ClientCredential',NETLOGON_CREDENTIAL), )
('ServerCredential',NETLOGON_CREDENTIAL), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.5 NetrServerPasswordSet2 (Opnum 30)
# 3.5.4.4.6 NetrServerPasswordSet (Opnum 6)
# 3.5.4.4.7 NetrServerPasswordGet (Opnum 31) ('PrimaryName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('AccountType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('EncryptedNtOwfPassword',ENCRYPTED_NT_OWF_PASSWORD), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.8 NetrServerTrustPasswordsGet (Opnum 42) ('TrustedDcName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('SecureChannelType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('EncryptedNewOwfPassword',ENCRYPTED_NT_OWF_PASSWORD), ('EncryptedOldOwfPassword',ENCRYPTED_NT_OWF_PASSWORD), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.9 NetrLogonGetDomainInfo (Opnum 29) ('ServerName',LOGONSRV_HANDLE), ('ComputerName',LPWSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('Level',DWORD), ('WkstaBuffer',NETLOGON_WORKSTATION_INFORMATION), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DomBuffer',NETLOGON_DOMAIN_INFORMATION), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.10 NetrLogonGetCapabilities (Opnum 21) ('ServerName',LOGONSRV_HANDLE), ('ComputerName',LPWSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('QueryLevel',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('ServerCapabilities',NETLOGON_CAPABILITIES), ('ErrorCode',NTSTATUS), )
# 3.5.4.4.11 NetrChainSetClientAttributes (Opnum 49)
# 3.5.4.5.1 NetrLogonSamLogonEx (Opnum 39) ('LogonServer',LPWSTR), ('ComputerName',LPWSTR), ('LogonLevel',NETLOGON_LOGON_INFO_CLASS), ('LogonInformation',NETLOGON_LEVEL), ('ValidationLevel',NETLOGON_VALIDATION_INFO_CLASS), ('ExtraFlags',ULONG), )
('ValidationInformation',NETLOGON_VALIDATION), ('Authoritative',UCHAR), ('ExtraFlags',ULONG), ('ErrorCode',NTSTATUS), )
# 3.5.4.5.2 NetrLogonSamLogonWithFlags (Opnum 45) ('LogonServer',LPWSTR), ('ComputerName',LPWSTR), ('Authenticator',PNETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('LogonLevel',NETLOGON_LOGON_INFO_CLASS), ('LogonInformation',NETLOGON_LEVEL), ('ValidationLevel',NETLOGON_VALIDATION_INFO_CLASS), ('ExtraFlags',ULONG), )
('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('ValidationInformation',NETLOGON_VALIDATION), ('Authoritative',UCHAR), ('ExtraFlags',ULONG), ('ErrorCode',NTSTATUS), )
# 3.5.4.5.3 NetrLogonSamLogon (Opnum 2) ('LogonServer',LPWSTR), ('ComputerName',LPWSTR), ('Authenticator',PNETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('LogonLevel',NETLOGON_LOGON_INFO_CLASS), ('LogonInformation',NETLOGON_LEVEL), ('ValidationLevel',NETLOGON_VALIDATION_INFO_CLASS), )
('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('ValidationInformation',NETLOGON_VALIDATION), ('Authoritative',UCHAR), ('ErrorCode',NTSTATUS), )
# 3.5.4.5.4 NetrLogonSamLogoff (Opnum 3) ('LogonServer',LPWSTR), ('ComputerName',LPWSTR), ('Authenticator',PNETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('LogonLevel',NETLOGON_LOGON_INFO_CLASS), ('LogonInformation',NETLOGON_LEVEL), )
('ReturnAuthenticator',PNETLOGON_AUTHENTICATOR), ('ErrorCode',NTSTATUS), )
# 3.5.4.6.1 NetrDatabaseDeltas (Opnum 7) ('PrimaryName',LOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DatabaseID',DWORD), ('DomainModifiedCount',NLPR_MODIFIED_COUNT), ('PreferredMaximumLength',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DomainModifiedCount',NLPR_MODIFIED_COUNT), ('DeltaArray',PNETLOGON_DELTA_ENUM_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.6.2 NetrDatabaseSync2 (Opnum 16) ('PrimaryName',LOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DatabaseID',DWORD), ('RestartState',SYNC_STATE), ('SyncContext',ULONG), ('PreferredMaximumLength',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('SyncContext',ULONG), ('DeltaArray',PNETLOGON_DELTA_ENUM_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.6.3 NetrDatabaseSync (Opnum 8) ('PrimaryName',LOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DatabaseID',DWORD), ('SyncContext',ULONG), ('PreferredMaximumLength',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('SyncContext',ULONG), ('DeltaArray',PNETLOGON_DELTA_ENUM_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.6.4 NetrDatabaseRedo (Opnum 17) ('PrimaryName',LOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('ChangeLogEntry',PUCHAR_ARRAY), ('ChangeLogEntrySize',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('DeltaArray',PNETLOGON_DELTA_ENUM_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.1 DsrEnumerateDomainTrusts (Opnum 40) ('ServerName',PLOGONSRV_HANDLE), ('Flags',ULONG), )
('Domains',NETLOGON_TRUSTED_DOMAIN_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.2 NetrEnumerateTrustedDomainsEx (Opnum 36) ('ServerName',PLOGONSRV_HANDLE), )
('Domains',NETLOGON_TRUSTED_DOMAIN_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.3 NetrEnumerateTrustedDomains (Opnum 19) ('ServerName',PLOGONSRV_HANDLE), )
('DomainNameBuffer',DOMAIN_NAME_BUFFER), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.4 NetrGetForestTrustInformation (Opnum 44) ('ServerName',PLOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('Flags',DWORD), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('ForestTrustInfo',PLSA_FOREST_TRUST_INFORMATION), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.5 DsrGetForestTrustInformation (Opnum 43) ('ServerName',PLOGONSRV_HANDLE), ('TrustedDomainName',LPWSTR), ('Flags',DWORD), )
('ForestTrustInfo',PLSA_FOREST_TRUST_INFORMATION), ('ErrorCode',NTSTATUS), )
# 3.5.4.7.6 NetrServerGetTrustInfo (Opnum 46) ('TrustedDcName',PLOGONSRV_HANDLE), ('AccountName',WSTR), ('SecureChannelType',NETLOGON_SECURE_CHANNEL_TYPE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('EncryptedNewOwfPassword',ENCRYPTED_NT_OWF_PASSWORD), ('EncryptedOldOwfPassword',ENCRYPTED_NT_OWF_PASSWORD), ('TrustInfo',PNL_GENERIC_RPC_DATA), ('ErrorCode',NTSTATUS), )
# 3.5.4.8.1 NetrLogonGetTrustRid (Opnum 23) ('ServerName',PLOGONSRV_HANDLE), ('DomainName',LPWSTR), )
('Rid',ULONG), ('ErrorCode',NTSTATUS), )
# 3.5.4.8.2 NetrLogonComputeServerDigest (Opnum 24) ('ServerName',PLOGONSRV_HANDLE), ('Rid',ULONG), ('Message',UCHAR_ARRAY), ('MessageSize',ULONG), )
('NewMessageDigest',CHAR_FIXED_16_ARRAY), ('OldMessageDigest',CHAR_FIXED_16_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.8.3 NetrLogonComputeClientDigest (Opnum 25) ('ServerName',PLOGONSRV_HANDLE), ('DomainName',LPWSTR), ('Message',UCHAR_ARRAY), ('MessageSize',ULONG), )
('NewMessageDigest',CHAR_FIXED_16_ARRAY), ('OldMessageDigest',CHAR_FIXED_16_ARRAY), ('ErrorCode',NTSTATUS), )
# 3.5.4.8.4 NetrLogonSendToSam (Opnum 32) ('PrimaryName',PLOGONSRV_HANDLE), ('ComputerName',WSTR), ('Authenticator',NETLOGON_AUTHENTICATOR), ('OpaqueBuffer',UCHAR_ARRAY), ('OpaqueBufferSize',ULONG), )
('ReturnAuthenticator',NETLOGON_AUTHENTICATOR), ('ErrorCode',NTSTATUS), )
# 3.5.4.8.5 NetrLogonSetServiceBits (Opnum 22) ('ServerName',PLOGONSRV_HANDLE), ('ServiceBitsOfInterest',DWORD), ('ServiceBits',DWORD), )
('ErrorCode',NTSTATUS), )
# 3.5.4.8.6 NetrLogonGetTimeServiceParentDomain (Opnum 35) ('ServerName',PLOGONSRV_HANDLE), )
('DomainName',LPWSTR), ('PdcSameSite',LONG), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.9.1 NetrLogonControl2Ex (Opnum 18) ('ServerName',PLOGONSRV_HANDLE), ('FunctionCode',DWORD), ('QueryLevel',DWORD), ('Data',NETLOGON_CONTROL_DATA_INFORMATION), )
('Buffer',NETLOGON_CONTROL_DATA_INFORMATION), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.9.2 NetrLogonControl2 (Opnum 14) ('ServerName',PLOGONSRV_HANDLE), ('FunctionCode',DWORD), ('QueryLevel',DWORD), ('Data',NETLOGON_CONTROL_DATA_INFORMATION), )
('Buffer',NETLOGON_CONTROL_DATA_INFORMATION), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.9.3 NetrLogonControl (Opnum 12) ('ServerName',PLOGONSRV_HANDLE), ('FunctionCode',DWORD), ('QueryLevel',DWORD), ('Data',NETLOGON_CONTROL_DATA_INFORMATION), )
('Buffer',NETLOGON_CONTROL_DATA_INFORMATION), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.10.1 NetrLogonUasLogon (Opnum 0) ('ServerName',PLOGONSRV_HANDLE), ('UserName',WSTR), ('Workstation',WSTR), )
('ValidationInformation',PNETLOGON_VALIDATION_UAS_INFO), ('ErrorCode',NET_API_STATUS), )
# 3.5.4.10.2 NetrLogonUasLogoff (Opnum 1) ('ServerName',PLOGONSRV_HANDLE), ('UserName',WSTR), ('Workstation',WSTR), )
('LogoffInformation',NETLOGON_LOGOFF_UAS_INFO), ('ErrorCode',NET_API_STATUS), )
################################################################################ # OPNUMs and their corresponding structures ################################################################################ 0 : (NetrLogonUasLogon, NetrLogonUasLogonResponse), 1 : (NetrLogonUasLogoff, NetrLogonUasLogoffResponse), 2 : (NetrLogonSamLogon, NetrLogonSamLogonResponse), 3 : (NetrLogonSamLogoff, NetrLogonSamLogoffResponse), 4 : (NetrServerReqChallenge, NetrServerReqChallengeResponse), 5 : (NetrServerAuthenticate, NetrServerAuthenticateResponse), # 6 : (NetrServerPasswordSet, NetrServerPasswordSetResponse), 7 : (NetrDatabaseDeltas, NetrDatabaseDeltasResponse), 8 : (NetrDatabaseSync, NetrDatabaseSyncResponse), # 9 : (NetrAccountDeltas, NetrAccountDeltasResponse), # 10 : (NetrAccountSync, NetrAccountSyncResponse), 11 : (NetrGetDCName, NetrGetDCNameResponse), 12 : (NetrLogonControl, NetrLogonControlResponse), 13 : (NetrGetAnyDCName, NetrGetAnyDCNameResponse), 14 : (NetrLogonControl2, NetrLogonControl2Response), 15 : (NetrServerAuthenticate2, NetrServerAuthenticate2Response), 16 : (NetrDatabaseSync2, NetrDatabaseSync2Response), 17 : (NetrDatabaseRedo, NetrDatabaseRedoResponse), 18 : (NetrLogonControl2Ex, NetrLogonControl2ExResponse), 19 : (NetrEnumerateTrustedDomains, NetrEnumerateTrustedDomainsResponse), 20 : (DsrGetDcName, DsrGetDcNameResponse), 21 : (NetrLogonGetCapabilities, NetrLogonGetCapabilitiesResponse), 22 : (NetrLogonSetServiceBits, NetrLogonSetServiceBitsResponse), 23 : (NetrLogonGetTrustRid, NetrLogonGetTrustRidResponse), 24 : (NetrLogonComputeServerDigest, NetrLogonComputeServerDigestResponse), 25 : (NetrLogonComputeClientDigest, NetrLogonComputeClientDigestResponse), 26 : (NetrServerAuthenticate3, NetrServerAuthenticate3Response), 27 : (DsrGetDcNameEx, DsrGetDcNameExResponse), 28 : (DsrGetSiteName, DsrGetSiteNameResponse), 29 : (NetrLogonGetDomainInfo, NetrLogonGetDomainInfoResponse), # 30 : (NetrServerPasswordSet2, NetrServerPasswordSet2Response), 31 : (NetrServerPasswordGet, NetrServerPasswordGetResponse), 32 : (NetrLogonSendToSam, NetrLogonSendToSamResponse), 33 : (DsrAddressToSiteNamesW, DsrAddressToSiteNamesWResponse), 34 : (DsrGetDcNameEx2, DsrGetDcNameEx2Response), 35 : (NetrLogonGetTimeServiceParentDomain, NetrLogonGetTimeServiceParentDomainResponse), 36 : (NetrEnumerateTrustedDomainsEx, NetrEnumerateTrustedDomainsExResponse), 37 : (DsrAddressToSiteNamesExW, DsrAddressToSiteNamesExWResponse), 38 : (DsrGetDcSiteCoverageW, DsrGetDcSiteCoverageWResponse), 39 : (NetrLogonSamLogonEx, NetrLogonSamLogonExResponse), 40 : (DsrEnumerateDomainTrusts, DsrEnumerateDomainTrustsResponse), 41 : (DsrDeregisterDnsHostRecords, DsrDeregisterDnsHostRecordsResponse), 42 : (NetrServerTrustPasswordsGet, NetrServerTrustPasswordsGetResponse), 43 : (DsrGetForestTrustInformation, DsrGetForestTrustInformationResponse), 44 : (NetrGetForestTrustInformation, NetrGetForestTrustInformationResponse), 45 : (NetrLogonSamLogonWithFlags, NetrLogonSamLogonWithFlagsResponse), 46 : (NetrServerGetTrustInfo, NetrServerGetTrustInfoResponse), # 48 : (DsrUpdateReadOnlyServerDnsRecords, DsrUpdateReadOnlyServerDnsRecordsResponse), # 49 : (NetrChainSetClientAttributes, NetrChainSetClientAttributesResponse), }
################################################################################ # HELPER FUNCTIONS ################################################################################
else:
else: request['ReturnAuthenticator'] = returnAuthenticator
else: request['WkstaBuffer']['tag'] = 2 request['WkstaBuffer']['LsaPolicyInfo']['LsaPolicy'] = NULL
else: request['ReturnAuthenticator'] = returnAuthenticator
|