Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ldapserver — ldapserver 패키지는 LDAP 서버를 구현합니다. | Kitploit
도구/GitHubGitHub/projectdiscovery/ldapserver
Authentication & AuthorizationEncryption/Decryption ToolsNetwork SecurityUtilities & FrameworksIdentity & Access Management (IAM)
GitHubprojectdiscovery/ldapserver

ldapserver

ldapserver 패키지는 LDAP 서버를 구현합니다.

저장소 보기
712년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GoDoc Build Status

이 패키지는 작업 진행 중입니다.

ldapserver는 LDAP 프로토콜을 구사할 수 있는 서버 소프트웨어를 구축하기 위한 헬퍼 라이브러리입니다. LDAP의 대체 구현, 사용자 정의 LDAP 프록시, 또는 API를 LDAP 서버로 "가장"할 수 있는 완전히 다른 백엔드가 될 수도 있습니다.

이 패키지는 다음을 지원합니다:

  • 모든 기본 LDAP 작업 (bind, search, add, compare, modify, delete, extended)
  • SSL
  • StartTLS
  • Unbind 요청이 구현되어 있지만, 연결을 닫기 위해 내부적으로 처리됩니다.
  • 정상 종료
  • net/http ServeMux에서 영감을 받은 기본 요청 라우팅
  • 로거 사용자 정의 (log 인터페이스)

기본 동작

Abandon 요청

AbandonRequest를 처리할 라우트를 설정하지 않으면 패키지가 대신 처리합니다. (message.Done chan으로 신호가 전송됩니다)

라우트를 찾을 수 없는 경우

요청과 일치하는 라우트가 없으면 서버는 먼저 특별한 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" 폴더를 살펴보세요.

도구 다운로드