Generated from Manticore v1.1.5 • 201 packages. View on pkg.go.dev

rpcinterface_123457781234abcdef000123456789ac_1_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/12345778-1234-abcd-ef00-0123456789ac/1.0"

Package rpcinterface_123457781234abcdef000123456789ac_1_0 is the descriptor for the Security Account Manager (SAM) Remote Protocol (samr) RPC interface, abstract syntax 12345778-1234-abcd-ef00-0123456789ac version 1.0 ([MS-SAMR]).

An RPC interface is identified by its UUID and version, never by the named pipe it is reached over: the “\samr” pipe carries this interface (note the UUID differs from lsarpc’s only in the last nibble, …ac vs …ab); the directory is named after the interface UUID with the version in the nested 1.0/ directory.

This package holds only the interface-level descriptor: the abstract syntax identifier, the transport endpoint (PipeName), the opnum constants and opnum<->name maps, and the NTSTATUS return codes. NDR types live in the structures subpackage and the method stubs in functions; both depend on this package, never the reverse.

References:

Index

Constants

Opnums for the on-the-wire methods ([MS-SAMR] section 3.1.5). Opnums 4, 42, 43, 59-61, 63, 68-72, 75, 76 are “not used on the wire” and are omitted.

const (
    OpnumSamrConnect                                 uint16 = 0
    OpnumSamrCloseHandle                             uint16 = 1
    OpnumSamrSetSecurityObject                       uint16 = 2
    OpnumSamrQuerySecurityObject                     uint16 = 3
    OpnumSamrLookupDomainInSamServer                 uint16 = 5
    OpnumSamrEnumerateDomainsInSamServer             uint16 = 6
    OpnumSamrOpenDomain                              uint16 = 7
    OpnumSamrQueryInformationDomain                  uint16 = 8
    OpnumSamrSetInformationDomain                    uint16 = 9
    OpnumSamrCreateGroupInDomain                     uint16 = 10
    OpnumSamrEnumerateGroupsInDomain                 uint16 = 11
    OpnumSamrCreateUserInDomain                      uint16 = 12
    OpnumSamrEnumerateUsersInDomain                  uint16 = 13
    OpnumSamrCreateAliasInDomain                     uint16 = 14
    OpnumSamrEnumerateAliasesInDomain                uint16 = 15
    OpnumSamrGetAliasMembership                      uint16 = 16
    OpnumSamrLookupNamesInDomain                     uint16 = 17
    OpnumSamrLookupIdsInDomain                       uint16 = 18
    OpnumSamrOpenGroup                               uint16 = 19
    OpnumSamrQueryInformationGroup                   uint16 = 20
    OpnumSamrSetInformationGroup                     uint16 = 21
    OpnumSamrAddMemberToGroup                        uint16 = 22
    OpnumSamrDeleteGroup                             uint16 = 23
    OpnumSamrRemoveMemberFromGroup                   uint16 = 24
    OpnumSamrGetMembersInGroup                       uint16 = 25
    OpnumSamrSetMemberAttributesOfGroup              uint16 = 26
    OpnumSamrOpenAlias                               uint16 = 27
    OpnumSamrQueryInformationAlias                   uint16 = 28
    OpnumSamrSetInformationAlias                     uint16 = 29
    OpnumSamrDeleteAlias                             uint16 = 30
    OpnumSamrAddMemberToAlias                        uint16 = 31
    OpnumSamrRemoveMemberFromAlias                   uint16 = 32
    OpnumSamrGetMembersInAlias                       uint16 = 33
    OpnumSamrOpenUser                                uint16 = 34
    OpnumSamrDeleteUser                              uint16 = 35
    OpnumSamrQueryInformationUser                    uint16 = 36
    OpnumSamrSetInformationUser                      uint16 = 37
    OpnumSamrChangePasswordUser                      uint16 = 38
    OpnumSamrGetGroupsForUser                        uint16 = 39
    OpnumSamrQueryDisplayInformation                 uint16 = 40
    OpnumSamrGetDisplayEnumerationIndex              uint16 = 41
    OpnumSamrGetUserDomainPasswordInformation        uint16 = 44
    OpnumSamrRemoveMemberFromForeignDomain           uint16 = 45
    OpnumSamrQueryInformationDomain2                 uint16 = 46
    OpnumSamrQueryInformationUser2                   uint16 = 47
    OpnumSamrQueryDisplayInformation2                uint16 = 48
    OpnumSamrGetDisplayEnumerationIndex2             uint16 = 49
    OpnumSamrCreateUser2InDomain                     uint16 = 50
    OpnumSamrQueryDisplayInformation3                uint16 = 51
    OpnumSamrAddMultipleMembersToAlias               uint16 = 52
    OpnumSamrRemoveMultipleMembersFromAlias          uint16 = 53
    OpnumSamrOemChangePasswordUser2                  uint16 = 54
    OpnumSamrUnicodeChangePasswordUser2              uint16 = 55
    OpnumSamrGetDomainPasswordInformation            uint16 = 56
    OpnumSamrConnect2                                uint16 = 57
    OpnumSamrSetInformationUser2                     uint16 = 58
    OpnumSamrConnect4                                uint16 = 62
    OpnumSamrConnect5                                uint16 = 64
    OpnumSamrRidToSid                                uint16 = 65
    OpnumSamrSetDSRMPassword                         uint16 = 66
    OpnumSamrValidatePassword                        uint16 = 67
    OpnumSamrUnicodeChangePasswordUser4              uint16 = 73
    OpnumSamrValidateComputerAccountReuseAttempt     uint16 = 74
    OpnumSamrAccountIsDelegatedManagedServiceAccount uint16 = 77
)

Common NTSTATUS codes returned by samr methods ([MS-ERREF] 2.3.1). samr methods return an NTSTATUS (the IDL “long” return value).

const (
    StatusSuccess            uint32 = 0x00000000
    StatusMoreEntries        uint32 = 0x00000105
    StatusSomeNotMapped      uint32 = 0x00000107
    StatusNoMoreEntries      uint32 = 0x8000001A
    StatusInvalidHandle      uint32 = 0xC0000008
    StatusInvalidParameter   uint32 = 0xC000000D
    StatusAccessDenied       uint32 = 0xC0000022
    StatusObjectNameNotFound uint32 = 0xC0000034
    StatusNoSuchUser         uint32 = 0xC0000064
    StatusNoneMapped         uint32 = 0xC0000073
    StatusNoSuchDomain       uint32 = 0xC00000DF
    StatusNoSuchAlias        uint32 = 0xC0000151
    StatusNoSuchGroup        uint32 = 0xC0000066
    StatusUserExists         uint32 = 0xC0000063
    StatusGroupExists        uint32 = 0xC0000065
    StatusAliasExists        uint32 = 0xC0000154
    StatusWrongPassword      uint32 = 0xC000006A
    StatusNotSupported       uint32 = 0xC00000BB
)

PipeName is the IPC$-relative named pipe for the samr interface.

const PipeName = `\samr`

Variables

NameToOpnum is the reverse of OpnumToName, built at init so the two never drift.

var NameToOpnum = func() map[string]uint16 {
    m := make(map[string]uint16, len(OpnumToName))
    for op, name := range OpnumToName {
        m[name] = op
    }
    return m
}()

OpnumToName maps each on-the-wire opnum to its [MS-SAMR] method name; the single source of truth.

var OpnumToName = map[uint16]string{
    OpnumSamrConnect:                                 "SamrConnect",
    OpnumSamrCloseHandle:                             "SamrCloseHandle",
    OpnumSamrSetSecurityObject:                       "SamrSetSecurityObject",
    OpnumSamrQuerySecurityObject:                     "SamrQuerySecurityObject",
    OpnumSamrLookupDomainInSamServer:                 "SamrLookupDomainInSamServer",
    OpnumSamrEnumerateDomainsInSamServer:             "SamrEnumerateDomainsInSamServer",
    OpnumSamrOpenDomain:                              "SamrOpenDomain",
    OpnumSamrQueryInformationDomain:                  "SamrQueryInformationDomain",
    OpnumSamrSetInformationDomain:                    "SamrSetInformationDomain",
    OpnumSamrCreateGroupInDomain:                     "SamrCreateGroupInDomain",
    OpnumSamrEnumerateGroupsInDomain:                 "SamrEnumerateGroupsInDomain",
    OpnumSamrCreateUserInDomain:                      "SamrCreateUserInDomain",
    OpnumSamrEnumerateUsersInDomain:                  "SamrEnumerateUsersInDomain",
    OpnumSamrCreateAliasInDomain:                     "SamrCreateAliasInDomain",
    OpnumSamrEnumerateAliasesInDomain:                "SamrEnumerateAliasesInDomain",
    OpnumSamrGetAliasMembership:                      "SamrGetAliasMembership",
    OpnumSamrLookupNamesInDomain:                     "SamrLookupNamesInDomain",
    OpnumSamrLookupIdsInDomain:                       "SamrLookupIdsInDomain",
    OpnumSamrOpenGroup:                               "SamrOpenGroup",
    OpnumSamrQueryInformationGroup:                   "SamrQueryInformationGroup",
    OpnumSamrSetInformationGroup:                     "SamrSetInformationGroup",
    OpnumSamrAddMemberToGroup:                        "SamrAddMemberToGroup",
    OpnumSamrDeleteGroup:                             "SamrDeleteGroup",
    OpnumSamrRemoveMemberFromGroup:                   "SamrRemoveMemberFromGroup",
    OpnumSamrGetMembersInGroup:                       "SamrGetMembersInGroup",
    OpnumSamrSetMemberAttributesOfGroup:              "SamrSetMemberAttributesOfGroup",
    OpnumSamrOpenAlias:                               "SamrOpenAlias",
    OpnumSamrQueryInformationAlias:                   "SamrQueryInformationAlias",
    OpnumSamrSetInformationAlias:                     "SamrSetInformationAlias",
    OpnumSamrDeleteAlias:                             "SamrDeleteAlias",
    OpnumSamrAddMemberToAlias:                        "SamrAddMemberToAlias",
    OpnumSamrRemoveMemberFromAlias:                   "SamrRemoveMemberFromAlias",
    OpnumSamrGetMembersInAlias:                       "SamrGetMembersInAlias",
    OpnumSamrOpenUser:                                "SamrOpenUser",
    OpnumSamrDeleteUser:                              "SamrDeleteUser",
    OpnumSamrQueryInformationUser:                    "SamrQueryInformationUser",
    OpnumSamrSetInformationUser:                      "SamrSetInformationUser",
    OpnumSamrChangePasswordUser:                      "SamrChangePasswordUser",
    OpnumSamrGetGroupsForUser:                        "SamrGetGroupsForUser",
    OpnumSamrQueryDisplayInformation:                 "SamrQueryDisplayInformation",
    OpnumSamrGetDisplayEnumerationIndex:              "SamrGetDisplayEnumerationIndex",
    OpnumSamrGetUserDomainPasswordInformation:        "SamrGetUserDomainPasswordInformation",
    OpnumSamrRemoveMemberFromForeignDomain:           "SamrRemoveMemberFromForeignDomain",
    OpnumSamrQueryInformationDomain2:                 "SamrQueryInformationDomain2",
    OpnumSamrQueryInformationUser2:                   "SamrQueryInformationUser2",
    OpnumSamrQueryDisplayInformation2:                "SamrQueryDisplayInformation2",
    OpnumSamrGetDisplayEnumerationIndex2:             "SamrGetDisplayEnumerationIndex2",
    OpnumSamrCreateUser2InDomain:                     "SamrCreateUser2InDomain",
    OpnumSamrQueryDisplayInformation3:                "SamrQueryDisplayInformation3",
    OpnumSamrAddMultipleMembersToAlias:               "SamrAddMultipleMembersToAlias",
    OpnumSamrRemoveMultipleMembersFromAlias:          "SamrRemoveMultipleMembersFromAlias",
    OpnumSamrOemChangePasswordUser2:                  "SamrOemChangePasswordUser2",
    OpnumSamrUnicodeChangePasswordUser2:              "SamrUnicodeChangePasswordUser2",
    OpnumSamrGetDomainPasswordInformation:            "SamrGetDomainPasswordInformation",
    OpnumSamrConnect2:                                "SamrConnect2",
    OpnumSamrSetInformationUser2:                     "SamrSetInformationUser2",
    OpnumSamrConnect4:                                "SamrConnect4",
    OpnumSamrConnect5:                                "SamrConnect5",
    OpnumSamrRidToSid:                                "SamrRidToSid",
    OpnumSamrSetDSRMPassword:                         "SamrSetDSRMPassword",
    OpnumSamrValidatePassword:                        "SamrValidatePassword",
    OpnumSamrUnicodeChangePasswordUser4:              "SamrUnicodeChangePasswordUser4",
    OpnumSamrValidateComputerAccountReuseAttempt:     "SamrValidateComputerAccountReuseAttempt",
    OpnumSamrAccountIsDelegatedManagedServiceAccount: "SamrAccountIsDelegatedManagedServiceAccount",
}

func StatusString

func StatusString(status uint32) string

StatusString returns a mnemonic for the documented status codes, otherwise the hex value.

func SyntaxID

func SyntaxID() syntax.SyntaxID

SyntaxID returns the samr abstract syntax identifier: 12345778-1234-abcd-ef00-0123456789ac, version 1.0.

Subpackages