Documentation
¶
Index ¶
- Constants
- func EncodeDERTRequest(msgs []Message, authInfo string, pubKeyAuth string) []byte
- func HMAC_MD5(key, data []byte) []byte
- func LMOWFv2(password, user, domain string) []byte
- func MD4(data []byte) []byte
- func MD5(data []byte) []byte
- func MIC(exportedSessionKey []byte, ...) []byte
- func NTOWFv2(password, user, domain string) []byte
- func RC4K(key, src []byte) []byte
- func SIGNKEY(exportedSessionKey []byte, isClient bool) []byte
- func UnicodeEncode(p string) []byte
- type AVPair
- type AuthenticateMessage
- type ChallengeMessage
- type Message
- type NTLMv2
- type NVersion
- type NegoToken
- type NegotiateMessage
- type OpenSSLRSAPublicKey
- type TSCredentials
- type TSCspDataDetail
- type TSPasswordCreds
- type TSRequest
- type TSSmartCardCreds
Constants ¶
View Source
const ( MsvAvEOL = 0x0000 MsvAvNbComputerName = 0x0001 MsvAvNbDomainName = 0x0002 MsvAvDnsComputerName = 0x0003 MsvAvDnsDomainName = 0x0004 MsvAvDnsTreeName = 0x0005 MsvAvFlags = 0x0006 MsvAvTimestamp = 0x0007 MsvAvSingleHost = 0x0008 MsvAvTargetName = 0x0009 MsvChannelBindings = 0x000A )
View Source
const ( NTLMSSP_NEGOTIATE_56 = 0x80000000 NTLMSSP_NEGOTIATE_KEY_EXCH = 0x40000000 NTLMSSP_NEGOTIATE_128 = 0x20000000 NTLMSSP_NEGOTIATE_VERSION = 0x02000000 NTLMSSP_NEGOTIATE_TARGET_INFO = 0x00800000 NTLMSSP_REQUEST_NON_NT_SESSION_KEY = 0x00400000 NTLMSSP_NEGOTIATE_IDENTIFY = 0x00100000 NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY = 0x00080000 NTLMSSP_TARGET_TYPE_SERVER = 0x00020000 NTLMSSP_TARGET_TYPE_DOMAIN = 0x00010000 NTLMSSP_NEGOTIATE_ALWAYS_SIGN = 0x00008000 NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED = 0x00002000 NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED = 0x00001000 NTLMSSP_NEGOTIATE_NTLM = 0x00000200 NTLMSSP_NEGOTIATE_LM_KEY = 0x00000080 NTLMSSP_NEGOTIATE_DATAGRAM = 0x00000040 NTLMSSP_NEGOTIATE_SEAL = 0x00000020 NTLMSSP_NEGOTIATE_SIGN = 0x00000010 NTLMSSP_REQUEST_TARGET = 0x00000004 NTLM_NEGOTIATE_OEM = 0x00000002 NTLMSSP_NEGOTIATE_UNICODE = 0x00000001 )
Variables ¶
This section is empty.
Functions ¶
func EncodeDERTRequest ¶
Types ¶
type AuthenticateMessage ¶
type AuthenticateMessage struct {
Signature [8]byte
MessageType uint32 `struc:"little"`
LmChallengeResponseLen uint16 `struc:"little"`
LmChallengeResponseMaxLen uint16 `struc:"little"`
LmChallengeResponseBufferOffset uint32 `struc:"little"`
NtChallengeResponseLen uint16 `struc:"little"`
NtChallengeResponseMaxLen uint16 `struc:"little"`
NtChallengeResponseBufferOffset uint32 `struc:"little"`
DomainNameLen uint16 `struc:"little"`
DomainNameMaxLen uint16 `struc:"little"`
DomainNameBufferOffset uint32 `struc:"little"`
UserNameLen uint16 `struc:"little"`
UserNameMaxLen uint16 `struc:"little"`
UserNameBufferOffset uint32 `struc:"little"`
WorkstationLen uint16 `struc:"little"`
WorkstationMaxLen uint16 `struc:"little"`
WorkstationBufferOffset uint32 `struc:"little"`
EncryptedRandomSessionLen uint16 `struc:"little"`
EncryptedRandomSessionMaxLen uint16 `struc:"little"`
EncryptedRandomSessionBufferOffset uint32 `struc:"little"`
NegotiateFlags uint32 `struc:"little"`
Version NVersion
MIC [16]byte
Payload []byte `struc:"skip"`
}
func NewAuthenticateMessage ¶
func NewAuthenticateMessage(negFlag uint32, domain, user, workstation string, lmchallResp, ntchallResp, enRandomSessKey []byte) *AuthenticateMessage
func (*AuthenticateMessage) BaseLen ¶
func (m *AuthenticateMessage) BaseLen() uint32
func (*AuthenticateMessage) Serialize ¶
func (m *AuthenticateMessage) Serialize() []byte
type ChallengeMessage ¶
type ChallengeMessage struct {
Signature [8]byte
MessageType uint32 `struc:"little"`
TargetNameLen uint16 `struc:"little"`
TargetNameMaxLen uint16 `struc:"little"`
TargetNameBufferOffset uint32 `struc:"little"`
NegotiateFlags uint32 `struc:"little"`
ServerChallenge [8]byte
Reserved [8]byte
TargetInfoLen uint16 `struc:"little"`
TargetInfoMaxLen uint16 `struc:"little"`
TargetInfoBufferOffset uint32 `struc:"little"`
Version NVersion
Payload []byte `struc:"skip"`
}
func NewChallengeMessage ¶
func NewChallengeMessage() *ChallengeMessage
func (*ChallengeMessage) BaseLen ¶
func (m *ChallengeMessage) BaseLen() uint32
total len - payload len
func (*ChallengeMessage) Serialize ¶
func (m *ChallengeMessage) Serialize() []byte
type NTLMv2 ¶
type NTLMv2 struct {
// contains filtered or unexported fields
}
func (*NTLMv2) ComputeResponse ¶
func (n *NTLMv2) ComputeResponse(respKeyNT, respKeyLM, serverChallenge, clientChallenge, timestamp, serverName []byte) (ntChallResp, lmChallResp, SessBaseKey []byte)
process NTLMv2 Authenticate hash
func (*NTLMv2) GetAuthenticateMessage ¶
func (n *NTLMv2) GetAuthenticateMessage(s []byte) *AuthenticateMessage
func (*NTLMv2) GetNegotiateMessage ¶
func (n *NTLMv2) GetNegotiateMessage() *NegotiateMessage
generate first handshake messgae
type NegotiateMessage ¶
type NegotiateMessage struct {
Signature [8]byte
MessageType uint32 `struc:"little"`
NegotiateFlags uint32 `struc:"little"`
DomainNameLen uint16 `struc:"little"`
DomainNameMaxLen uint16 `struc:"little"`
DomainNameBufferOffset uint32 `struc:"little"`
WorkstationLen uint16 `struc:"little"`
WorkstationMaxLen uint16 `struc:"little"`
WorkstationBufferOffset uint32 `struc:"little"`
Varsion NVersion
Payload []byte `struc:"skip"`
}
func NewNegotiateMessage ¶
func NewNegotiateMessage() *NegotiateMessage
func (*NegotiateMessage) Serialize ¶
func (m *NegotiateMessage) Serialize() []byte
type OpenSSLRSAPublicKey ¶
type OpenSSLRSAPublicKey struct {
}
type TSCredentials ¶
type TSCredentials struct {
}
type TSCspDataDetail ¶
type TSCspDataDetail struct {
}
type TSPasswordCreds ¶
type TSPasswordCreds struct {
}
type TSRequest ¶
type TSRequest struct {
Version int `asn1:"explicit,tag:0"`
NegoTokens []NegoToken `asn1:"optional,explicit,tag:1"`
AuthInfo string `asn1:"optional,explicit,tag:2"`
PubKeyAuth string `asn1:"optional,explicit,tag:3"`
ErrorCode int `asn1:"optional,explicit,tag:4"`
}
func DecodeDERTRequest ¶
type TSSmartCardCreds ¶
type TSSmartCardCreds struct {
}
Click to show internal directories.
Click to hide internal directories.