Skip to main content

类: Client

ldap.Client Client 是 nuclei 中用于 ldap 协议的客户端 示例
const ldap = require('nuclei/ldap');
// 这里 ldap.example.com 是 ldap 服务器,acme.com 是域
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
示例
const ldap = require('nuclei/ldap');
const cfg = new ldap.Config();
cfg.Timeout = 10;
cfg.ServerName = 'ldap.internal.acme.com';
// 可选配置可以作为第三个参数传递
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com', cfg);

目录

构造函数

属性

方法

构造函数

constructor

new Client(ldapUrl, realm, config?): Client

参数

名称类型
ldapUrlstring
realmstring
config?Config

返回

Client

定义于

ldap.ts:198

属性

BaseDN

Optional BaseDN: string

定义于

ldap.ts:194

Host

Optional Host: string

定义于

ldap.ts:182

Port

Optional Port: number

定义于

ldap.ts:186

Realm

Optional Realm: string

定义于

ldap.ts:190

config

Optional config: Config

定义于

ldap.ts:198

ldapUrl

ldapUrl: string

定义于

ldap.ts:198

realm

realm: string

定义于

ldap.ts:198

方法

AdvancedSearch

AdvancedSearch(Scope, TypesOnly, Filter, Attributes, Controls): SearchResult AdvancedSearch 接受搜索请求类型的所有值并返回 Ldap Entry 由用户处理响应

参数

名称类型
Scopenumber
TypesOnlyboolean
Filterstring
Attributesstring[]
Controlsany

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const results = client.AdvancedSearch(ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, '(objectClass=*)', ['cn', 'mail'], []);

定义于

ldap.ts:446

Authenticate

Authenticate(username): boolean Authenticate 使用给定的用户名和密码向 ldap 服务器进行身份验证 首先执行 NTLMBind,如果 NTLMBind 失败,则执行 Bind/UnauthenticatedBind

参数

名称类型
usernamestring

返回

boolean 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
client.Authenticate('user', 'password');

定义于

ldap.ts:402

AuthenticateWithNTLMHash

AuthenticateWithNTLMHash(username): boolean AuthenticateWithNTLMHash 使用给定的用户名和 NTLM 哈希向 ldap 服务器进行身份验证

参数

名称类型
usernamestring

返回

boolean 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
client.AuthenticateWithNTLMHash('pdtm', 'hash');

定义于

ldap.ts:416

Close

Close(): void 关闭 ldap 连接

返回

void 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
client.Close();

定义于

ldap.ts:475

CollectMetadata

CollectMetadata(): Metadata CollectLdapMetadata 从 ldap 服务器收集元数据。

返回

Metadata 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const metadata = client.CollectMetadata();
log(to_json(metadata));

定义于

ldap.ts:461

FindADObjects

FindADObjects(filter): SearchResult FindADObjects 根据过滤器查找 AD 对象 并将它们作为 ADObject 列表返回

参数

名称类型
filterstring

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.FindADObjects(ldap.FilterIsPerson);
log(to_json(users));

定义于

ldap.ts:212

GetADActiveUsers

GetADActiveUsers(): SearchResult GetADActiveUsers 返回所有 AD 用户 使用 FilterIsPerson 和 FilterAccountEnabled 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.GetADActiveUsers();
log(to_json(users));

定义于

ldap.ts:244

GetADAdmins

GetADAdmins(): SearchResult GetADAdmins 返回所有 AD 管理员 使用 FilterIsPerson、FilterAccountEnabled 和 FilterIsAdmin 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const admins = client.GetADAdmins();
log(to_json(admins));

定义于

ldap.ts:340

GetADDCList

GetADDCList(): SearchResult GetADDCList 返回所有 AD 域控制器 使用 FilterIsComputer、FilterAccountEnabled 和 FilterServerTrustAccount 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const dcs = client.GetADDCList();
log(to_json(dcs));

定义于

ldap.ts:324

GetADDomainSID

GetADDomainSID(): string GetADDomainSID 返回 AD 域的 SID

返回

string 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const domainSID = client.GetADDomainSID();
log(domainSID);

定义于

ldap.ts:387

GetADGroups

GetADGroups(): SearchResult GetADGroups 返回所有 AD 组 使用 FilterIsGroup 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const groups = client.GetADGroups();
log(to_json(groups));

定义于

ldap.ts:308

GetADUserAsRepRoastable

GetADUserAsRepRoastable(): SearchResult GetADUserAsRepRoastable 返回所有可 AsRepRoastable 的 AD 用户 使用 FilterIsPerson 和 FilterDontRequirePreauth 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const AsRepRoastable = client.GetADUserAsRepRoastable();
log(to_json(AsRepRoastable));

定义于

ldap.ts:372

GetADUserKerberoastable

GetADUserKerberoastable(): SearchResult GetADUserKerberoastable 返回所有可 kerberoastable 的 AD 用户 使用 FilterIsPerson、FilterAccountEnabled 和 FilterHasServicePrincipalName 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const kerberoastable = client.GetADUserKerberoastable();
log(to_json(kerberoastable));

定义于

ldap.ts:356

GetADUserTrustedForDelegation

GetADUserTrustedForDelegation(): SearchResult GetADUserTrustedForDelegation 返回所有受信任可委派的 AD 用户 使用 FilterIsPerson 和 FilterTrustedForDelegation 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.GetADUserTrustedForDelegation();
log(to_json(users));

定义于

ldap.ts:276

GetADUserWithNeverExpiringPasswords

GetADUserWithNeverExpiringPasswords(): SearchResult GetAdUserWithNeverExpiringPasswords 返回所有 AD 用户 使用 FilterIsPerson 和 FilterDontExpirePassword 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.GetADUserWithNeverExpiringPasswords();
log(to_json(users));

定义于

ldap.ts:260

GetADUserWithPasswordNotRequired

GetADUserWithPasswordNotRequired(): SearchResult GetADUserWithPasswordNotRequired 返回所有不需要密码的 AD 用户 使用 FilterIsPerson 和 FilterPasswordNotRequired 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.GetADUserWithPasswordNotRequired();
log(to_json(users));

定义于

ldap.ts:292

GetADUsers

GetADUsers(): SearchResult GetADUsers 返回所有 AD 用户 使用 FilterIsPerson 过滤查询

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const users = client.GetADUsers();
log(to_json(users));

定义于

ldap.ts:228
Search(filter, attributes): SearchResult Search 接受任何过滤器并返回一个映射列表,其中提供的属性 作为键,关联的值反映 ldap 返回的值

参数

名称类型
filterstring
attributesany

返回

SearchResult 示例
const ldap = require('nuclei/ldap');
const client = new ldap.Client('ldap://ldap.example.com', 'acme.com');
const results = client.Search('(objectClass=*)', 'cn', 'mail');

定义于

ldap.ts:431