UNPKG

ntlm-parser

Version:

Check and understand the content of a NTLM message

86 lines (85 loc) 2.63 kB
export interface Props { [key: string]: unknown; } export interface Flag { label: string; value: number; } export interface NtlmParseOptions { encoding: 'hex' | 'base64'; } export declare enum NTLMMessageType { NEGOTIATE_MESSAGE = "NEGOTIATE_MESSAGE (type 1)", CHALLENGE_MESSAGE = "CHALLENGE_MESSAGE (type 2)", AUTHENTICATE_MESSAGE = "NEGOTIATE_MESSAGE (type 3)", UNKNOWN = "unknown (or not yet implemented)" } export interface SecurityBuffer { length: number; allocated: number; offset: number; } export declare type NTLMEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'latin1' | 'binary' | 'hex'; export interface OSVersionStructure { majorVersion: number; minorVersion: number; buildNumber: number; unknown: number; } export interface NTLMMessage { messageType: NTLMMessageType; } export interface NTLMType1 extends NTLMMessage { messageType: NTLMMessageType.NEGOTIATE_MESSAGE; flags: string; suppliedDomain?: SecurityBuffer; suppliedWorkstation?: SecurityBuffer; osVersionStructure?: OSVersionStructure; suppliedDomainData?: string; suppliedWorkstationData?: string; } export interface NTLMType2 extends NTLMMessage { messageType: NTLMMessageType.CHALLENGE_MESSAGE; targetNameSecBuf: SecurityBuffer; flags: string; challenge: string; context?: string; targetInfoSecBuf?: SecurityBuffer; osVersionStructure?: OSVersionStructure; targetNameData: string; targetInfoData?: TargetInfo; } export interface NTLMType3v1 extends NTLMMessage { messageType: NTLMMessageType.AUTHENTICATE_MESSAGE; version: number; lmResponse: SecurityBuffer; ntlmResponse: SecurityBuffer; targetName: SecurityBuffer; userName: SecurityBuffer; workstationName: SecurityBuffer; lmResponseData: LMResponseData; ntlmResponseData: NTLMResponseData; targetNameData: string; userNameData: string; workstationNameData: string; } export interface NTLMType3v2 extends NTLMType3v1 { sessionKey: SecurityBuffer; flags: string; } export interface NTLMType3v3 extends NTLMType3v2 { osVersionStructure: OSVersionStructure; } export declare type NTLMType3 = NTLMType3v1 | NTLMType3v2 | NTLMType3v3; export declare type TargetInfo = Array<TargetInfoSubBlock>; export interface TargetInfoSubBlock { type: number; length: number; content: string; } export interface LMResponseData { hex: string; } export interface NTLMResponseData { hex: string; }