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

View File

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

View File

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

View File

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

View File

@ -253,6 +253,19 @@ func (c *Client) GetADUserKerberoastable() []ADObject {
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
// @example
// ```javascript