Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ldapserver — 包ldapserver实现LDAP服务器 | Kitploit
工具/GitHubGitHub/projectdiscovery/ldapserver
身份验证与授权加密/解密工具网络安全实用工具与框架身份与访问管理 (IAM)
GitHubprojectdiscovery/ldapserver

ldapserver

包ldapserver实现LDAP服务器

查看仓库
7142年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GoDoc Build Status

此软件包仍在开发中。

ldapserver 是一个辅助库,用于构建能够使用 LDAP 协议进行通信的服务器软件。它可以是 LDAP 的替代实现、自定义 LDAP 代理,甚至是能够将其 API “伪装”成 LDAP 服务器的完全不同的后端。

该软件包支持:

  • 所有基本 LDAP 操作(绑定、搜索、添加、比较、修改、删除、扩展)
  • SSL
  • StartTLS
  • 已实现取消绑定请求,但在内部用于关闭连接。
  • 优雅停止
  • 受 net/http ServeMux 启发的基本请求路由
  • 日志记录器自定义(日志接口)

默认行为

放弃请求

如果您没有设置处理 AbandonRequest 的路由,该软件包将为您处理它(信号发送到 message.Done 通道)。

未找到路由

当没有路由匹配请求时,服务器将首先尝试调用特殊的 NotFound 路由,如果未指定任何内容,它将返回一个 UnwillingToResponse 错误代码(53)。

欢迎贡献、评论 :)

示例代码

root@kitploit:~
// Listen to 10389 port for LDAP Request
// and route bind request to the handleBind func
package main

import (
	"log"
	"os"
	"os/signal"
	"syscall"

	ldap "github.com/vjeantet/ldapserver"
)

func main() {
	//ldap logger
	ldap.Logger = log.New(os.Stdout, "[server] ", log.LstdFlags)

	//Create a new LDAP Server
	server := ldap.NewServer()

	routes := ldap.NewRouteMux()
	routes.Bind(handleBind)
	server.Handle(routes)

	// listen on 10389
	go server.ListenAndServe("127.0.0.1:10389")

	// When CTRL+C, SIGINT and SIGTERM signal occurs
	// Then stop server gracefully
	ch := make(chan os.Signal)
	signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
	<-ch
	close(ch)

	server.Stop()
}

// handleBind return Success if login == mysql
func handleBind(w ldap.ResponseWriter, m *ldap.Message) {
	r := m.GetBindRequest()
	res := ldap.NewBindResponse(ldap.LDAPResultSuccess)

	if string(r.Name()) == "myLogin" {
		w.Write(res)
		return
	}

	log.Printf("Bind failed User=%s, Pass=%s", string(r.Name()), string(r.AuthenticationSimple()))
	res.SetResultCode(ldap.LDAPResultInvalidCredentials)
	res.SetDiagnosticMessage("invalid credentials")
	w.Write(res)
}

更多示例

请查看 "examples" 文件夹

下载工具