feat: added asreproastable (#4990)

* feat: added asreproastable

* ldap: remove FilterAccountEnabled from AsRepRoastable

* run 'make jsupdate'

---------

Co-authored-by: Tarun Koyalwar <tarun@projectdiscovery.io>
dev
Muhammad Daffa 2024-04-08 05:01:30 +07:00 committed by GitHub
parent 8c27ca2591
commit ffbe5deebb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 128 additions and 99 deletions

View File

@ -200,9 +200,9 @@ export interface AuthorizationDataEntry {
*/ */
export interface BitString { export interface BitString {
Bytes?: Uint8Array,
BitLength?: number, BitLength?: number,
Bytes?: Uint8Array,
} }
@ -212,9 +212,9 @@ export interface BitString {
*/ */
export interface BitString { export interface BitString {
Bytes?: Uint8Array,
BitLength?: number, BitLength?: number,
Bytes?: Uint8Array,
} }
@ -236,17 +236,15 @@ export interface Config {
*/ */
export interface EncTicketPart { export interface EncTicketPart {
RenewTill?: Date,
CRealm?: string,
AuthTime?: Date, AuthTime?: Date,
StartTime?: Date, StartTime?: Date,
EndTime?: Date, EndTime?: Date,
Transited?: TransitedEncoding, RenewTill?: Date,
CRealm?: string,
CAddr?: HostAddress, CAddr?: HostAddress,
@ -257,6 +255,8 @@ export interface EncTicketPart {
Key?: EncryptionKey, Key?: EncryptionKey,
CName?: PrincipalName, CName?: PrincipalName,
Transited?: TransitedEncoding,
} }
@ -266,11 +266,11 @@ export interface EncTicketPart {
*/ */
export interface EncryptedData { export interface EncryptedData {
KVNO?: number,
Cipher?: Uint8Array, Cipher?: Uint8Array,
EType?: number, EType?: number,
KVNO?: number,
} }
@ -318,15 +318,41 @@ export interface HostAddress {
*/ */
export interface LibDefaults { export interface LibDefaults {
NoAddresses?: boolean,
RealmTryDomains?: number,
DNSLookupKDC?: boolean,
DefaultRealm?: string,
SafeChecksumType?: number,
VerifyAPReqNofail?: boolean,
AllowWeakCrypto?: boolean,
DefaultTGSEnctypes?: string[],
DefaultTktEnctypeIDs?: number[],
IgnoreAcceptorHostname?: boolean,
K5LoginAuthoritative?: boolean,
PermittedEnctypes?: string[],
/** /**
* time in nanoseconds * time in nanoseconds
*/ */
Clockskew?: number, Clockskew?: number,
KDCTimeSync?: number, DNSCanonicalizeHostname?: boolean,
SafeChecksumType?: number, Proxiable?: boolean,
RDNS?: boolean,
/** /**
* time in nanoseconds * time in nanoseconds
@ -334,51 +360,31 @@ export interface LibDefaults {
TicketLifetime?: number, TicketLifetime?: number,
Forwardable?: boolean,
K5LoginAuthoritative?: boolean,
AllowWeakCrypto?: boolean,
DefaultClientKeytabName?: string, DefaultClientKeytabName?: string,
DefaultTktEnctypes?: string[], PermittedEnctypeIDs?: number[],
ExtraAddresses?: Uint8Array,
K5LoginDirectory?: string,
PreferredPreauthTypes?: number[],
RDNS?: boolean,
DefaultKeytabName?: string,
DefaultRealm?: string,
DefaultTGSEnctypeIDs?: number[],
DNSCanonicalizeHostname?: boolean,
PermittedEnctypes?: string[],
VerifyAPReqNofail?: boolean,
DNSLookupRealm?: boolean,
UDPPreferenceLimit?: number, UDPPreferenceLimit?: number,
Canonicalize?: boolean, DefaultTGSEnctypeIDs?: number[],
DefaultTktEnctypes?: string[],
CCacheType?: number, CCacheType?: number,
DefaultTGSEnctypes?: string[], DNSLookupRealm?: boolean,
Proxiable?: boolean, ExtraAddresses?: Uint8Array,
DNSLookupKDC?: boolean, PreferredPreauthTypes?: number[],
RealmTryDomains?: number, Canonicalize?: boolean,
Forwardable?: boolean,
K5LoginDirectory?: string,
KDCTimeSync?: number,
/** /**
* time in nanoseconds * time in nanoseconds
@ -386,13 +392,7 @@ export interface LibDefaults {
RenewLifetime?: number, RenewLifetime?: number,
DefaultTktEnctypeIDs?: number[], DefaultKeytabName?: string,
IgnoreAcceptorHostname?: boolean,
NoAddresses?: boolean,
PermittedEnctypeIDs?: number[],
KDCDefaultOptions?: BitString, KDCDefaultOptions?: BitString,
} }
@ -404,9 +404,9 @@ export interface LibDefaults {
*/ */
export interface PrincipalName { export interface PrincipalName {
NameType?: number,
NameString?: string[], NameString?: string[],
NameType?: number,
} }
@ -416,8 +416,6 @@ export interface PrincipalName {
*/ */
export interface Realm { export interface Realm {
Realm?: string,
AdminServer?: string[], AdminServer?: string[],
DefaultDomain?: string, DefaultDomain?: string,
@ -427,6 +425,8 @@ export interface Realm {
KPasswdServer?: string[], KPasswdServer?: string[],
MasterKDC?: string[], MasterKDC?: string[],
Realm?: string,
} }
@ -450,10 +450,10 @@ export interface TGS {
*/ */
export interface Ticket { export interface Ticket {
Realm?: string,
TktVNO?: number, TktVNO?: number,
Realm?: string,
SName?: PrincipalName, SName?: PrincipalName,
EncPart?: EncryptedData, EncPart?: EncryptedData,

View File

@ -358,6 +358,22 @@ export class Client {
} }
/**
* GetADUserAsRepRoastable returns all AD users that are AsRepRoastable
* using FilterIsPerson, and FilterDontRequirePreauth filter query
* @example
* ```javascript
* const ldap = require('nuclei/ldap');
* const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
* const AsRepRoastable = client.GetADUserAsRepRoastable();
* log(to_json(AsRepRoastable));
* ```
*/
public GetADUserAsRepRoastable(): ADObject[] {
return [];
}
/** /**
* GetADDomainSID returns the SID of the AD domain * GetADDomainSID returns the SID of the AD domain
* @example * @example

View File

@ -209,9 +209,9 @@ export interface MySQLOptions {
*/ */
export interface SQLResult { export interface SQLResult {
Columns?: string[],
Count?: number, Count?: number,
Columns?: string[],
} }

View File

@ -137,10 +137,6 @@ export interface NegotiationLog {
*/ */
export interface SMBCapabilities { export interface SMBCapabilities {
DFSSupport?: boolean,
Leasing?: boolean,
LargeMTU?: boolean, LargeMTU?: boolean,
MultiChan?: boolean, MultiChan?: boolean,
@ -150,6 +146,10 @@ export interface SMBCapabilities {
DirLeasing?: boolean, DirLeasing?: boolean,
Encryption?: boolean, Encryption?: boolean,
DFSSupport?: boolean,
Leasing?: boolean,
} }
@ -159,6 +159,8 @@ export interface SMBCapabilities {
*/ */
export interface SMBLog { export interface SMBLog {
SupportV1?: boolean,
NativeOs?: string, NativeOs?: string,
NTLM?: string, NTLM?: string,
@ -167,15 +169,13 @@ export interface SMBLog {
HasNTLM?: boolean, HasNTLM?: boolean,
SupportV1?: boolean, Version?: SMBVersions,
Capabilities?: SMBCapabilities, Capabilities?: SMBCapabilities,
NegotiationLog?: NegotiationLog, NegotiationLog?: NegotiationLog,
SessionSetupLog?: SessionSetupLog, SessionSetupLog?: SessionSetupLog,
Version?: SMBVersions,
} }
@ -185,13 +185,13 @@ export interface SMBLog {
*/ */
export interface SMBVersions { export interface SMBVersions {
VerString?: string,
Major?: number, Major?: number,
Minor?: number, Minor?: number,
Revision?: number, Revision?: number,
VerString?: string,
} }
@ -201,10 +201,6 @@ export interface SMBVersions {
*/ */
export interface ServiceSMB { export interface ServiceSMB {
SigningEnabled?: boolean,
SigningRequired?: boolean,
OSVersion?: string, OSVersion?: string,
NetBIOSComputerName?: string, NetBIOSComputerName?: string,
@ -216,6 +212,10 @@ export interface ServiceSMB {
DNSDomainName?: string, DNSDomainName?: string,
ForestName?: string, ForestName?: string,
SigningEnabled?: boolean,
SigningRequired?: boolean,
} }
@ -225,12 +225,12 @@ export interface ServiceSMB {
*/ */
export interface SessionSetupLog { export interface SessionSetupLog {
NegotiateFlags?: number,
SetupFlags?: number, SetupFlags?: number,
TargetName?: string, TargetName?: string,
NegotiateFlags?: number,
HeaderLog?: HeaderLog, HeaderLog?: HeaderLog,
} }

View File

@ -133,9 +133,9 @@ export interface Algorithms {
HostKey?: string, HostKey?: string,
W?: DirectionAlgorithms,
R?: DirectionAlgorithms, R?: DirectionAlgorithms,
W?: DirectionAlgorithms,
} }
@ -197,34 +197,34 @@ export interface HandshakeLog {
*/ */
export interface KexInitMsg { export interface KexInitMsg {
CiphersServerClient?: string[],
MACsClientServer?: string[],
MACsServerClient?: string[],
LanguagesClientServer?: string[],
KexAlgos?: string[],
CiphersClientServer?: string[],
Reserved?: number, Reserved?: number,
CompressionClientServer?: string[],
CompressionServerClient?: string[],
LanguagesServerClient?: string[],
FirstKexFollows?: boolean,
/** /**
* fixed size array of length: [16] * fixed size array of length: [16]
*/ */
Cookie?: Uint8Array, Cookie?: Uint8Array,
CiphersClientServer?: string[],
MACsClientServer?: string[],
MACsServerClient?: string[],
CompressionServerClient?: string[],
LanguagesClientServer?: string[],
FirstKexFollows?: boolean,
KexAlgos?: string[],
CiphersServerClient?: string[],
CompressionClientServer?: string[],
LanguagesServerClient?: string[],
ServerHostKeyAlgos?: string[], ServerHostKeyAlgos?: string[],
} }

View File

@ -253,6 +253,19 @@ func (c *Client) GetADUserKerberoastable() []ADObject {
return c.FindADObjects(JoinFilters(FilterIsPerson, FilterAccountEnabled, FilterHasServicePrincipalName)) return c.FindADObjects(JoinFilters(FilterIsPerson, FilterAccountEnabled, FilterHasServicePrincipalName))
} }
// GetADUserAsRepRoastable returns all AD users that are AsRepRoastable
// using FilterIsPerson, and FilterDontRequirePreauth filter query
// @example
// ```javascript
// const ldap = require('nuclei/ldap');
// const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
// const AsRepRoastable = client.GetADUserAsRepRoastable();
// log(to_json(AsRepRoastable));
// ```
func (c *Client) GetADUserAsRepRoastable() []ADObject {
return c.FindADObjects(JoinFilters(FilterIsPerson, FilterDontRequirePreauth))
}
// GetADDomainSID returns the SID of the AD domain // GetADDomainSID returns the SID of the AD domain
// @example // @example
// ```javascript // ```javascript