KoreanHackerTeam
Moderator
1 目录服务简介
일상 생활에 사용 된 전화 번호부는 친척과 친구의 이름, 전화 번호 및 주소를 기록하며 전화 번호부입니다. 컴퓨터의 파일 시스템은 파일 이름, 크기, 날짜 및 파일의 기타 데이터를 기록하며 파일 디렉토리입니다.이러한 디렉토리의 데이터를 시스템별로 정렬 할 수있는 경우 사용자는 필요한 데이터를 쉽고 빠르게 찾을 수 있으며 Directory Service에서 제공하는 서비스 (디렉토리 서비스)는이 목표를 달성하기위한 것입니다.
디렉토리 서비스는 설명, 속성 기반 세부 사항을 저장하고 필터링을 지원하는 데 사용되는 특수 비 관계형 데이터베이스입니다. 이러한 종류의 데이터베이스와 공통 관계형 데이터베이스 (MySQL, SQL Server, Oracle 등)의 차이점은 디렉토리 서비스가 Linux/UNIX 시스템의 파일 디렉토리와 마찬가지로 트리와 같은 계층 구조에 데이터를 저장한다는 것입니다. 또한 디렉토리 서비스는 검색 및 탐색에 최적화 된 데이터베이스입니다. 읽기 성능이 우수하지만 쓰기 성능이 좋지 않으며 트랜잭션 처리 및 롤백과 같은 복잡한 기능이 없으므로 데이터를 저장하고 자주 수정하는 데 적합하지 않습니다.
요약하면, 디렉토리 서비스는 조직 구조와 같은 정보를 저장하는 데 더 적합합니다.
2 LDAP 简介
LDAP (Light Directory Access Portocol)는 X.500 표준을 기반으로 한 경량 디렉토리 액세스 프로토콜입니다. LDAP 프로토콜은 X.500 DAP 프로토콜 사양을 갖는 데 사용되었습니다. 이 프로토콜은 매우 복잡하며 헤비급 프로토콜입니다. 나중에 X.500이 단순화되고 LDAP 프로토콜이 탄생했습니다. X.500과 비교하여 X.500보다 가벼워졌습니다. 실제로 LDAP 프로토콜은 여전히 복잡합니다.LDAP는 정보 상호 작용 형식, 사용 된 포트 번호, 인증 방법 및 클라이언트와 서버 간의 기타 컨텐츠에 동의합니다. LDAP 프로토콜의 구현에는 여러 버전이 있습니다. 예를 들어 Microsoft의 Active Directory는 Windows에서 LDAP를 구현 한 것입니다. AD는 LDAP에 필요한 트리 데이터베이스를 구현하고 요청 된 데이터를 구문 분석하고 데이터베이스에 쿼리 한 다음 결과를 반환하는 방법을 구현합니다. 예를 들어 OpenLDAP는 Linux에서 실행할 수있는 LDAP 프로토콜의 오픈 소스 구현입니다. 우리가 일반적으로 언급하는 LDAP 서버는 일반적으로 Active Directory 및 OpenLDAP와 같은 프로그램을 설치하고 구성하는 서버를 나타냅니다.
3 LDAP 的基本模型
모든 시스템과 프로토콜에는 자체 모델이 있으며 LDAP 예외는 아닙니다. LDAP의 기본 모델을 이해하기 전에 LDAP:의 여러 디렉토리 트리 개념을 이해해야합니다.디렉토리 트리 : 디렉토리 서비스 시스템에서 전체 디렉토리 정보 세트는 디렉토리 정보 트리로 표시 될 수 있으며 트리의 각 노드는 항목입니다.
항목 : 각 항목은 레코드이며 각 항목에는 고유하고 독특한 이름 (DN)이 있습니다.
객체 클래스 : ObjectClass, 특정 엔티티 유형에 해당하는 일련의 속성. 객체 클래스는 상속 될 수 있으므로 부모 클래스는
섹스는 상속 될 것입니다.
속성 : 항목의 측면을 설명하는 정보. 속성은 속성 유형과 하나 이상의 속성 값으로 구성됩니다. 속성은 필요하고 비정규 속성이 필요합니다.
LDAP 디렉토리는 데이터를 트리와 같은 계층 구조로 저장합니다. 최상층 인 루트는 "Base DN"이라고하며 DC=Geekby, DC=XYZ 또는 OU=Geekby.xyz와 같습니다. 전자 방법은 더 유연하며 Windows AD에 사용되는 방법이기도합니다. 루트 디렉토리 아래에는 많은 파일과 디렉토리가 있습니다. 이러한 대량의 데이터를 논리적으로 분리하기 위해 LDAP는 다른 디렉토리 서비스 계약과 같이 OU (조직 단위)를 사용하며, 부서 등과 같은 회사의 내부 조직을 대표하는 데 사용될 수 있으며 동시에 장비, 인사 등을 대표 할 수도 있습니다. LDAP의 각 레코드에는 다른 레코드와 다른 고유 한 이름 DN (Distinguished Name)이 있습니다. "잎"위치의 부분을 RDN이라고합니다. 예를 들어, dn:cn=tom, ou=동물, dc=geekby, dc=xyz, tom은 rdn; RDN은 OU에서 독특해야합니다.
LDAP 데이터는 "트리"형태이며 트리의 레코드를 원한다고 가정하면이 트리를 무한히 연장 할 수 있으므로 어떻게 위치를 찾을 수 있습니까? 물론 우선, 우리는 어떤 나무 (DC), 뿌리에서 사과로 전달되는 모든 "포크"(OU) 와이 사과 (CN)의 이름을 설명해야합니다. 나무 (dc=geekby, dc=xyz), 포킹 (ou=it, ou=worker, ou=pentester) 및 Apple (CN=ABC)을 알면 다음과 같은 사과를 찾을 수 있습니다.
1
DN:CN=ABC, OU=IT, OU=Worker, OU=Pentester, DC=Geekby, DC=XYZ
LDAP 프로토콜을 사용하는 일련의 작업은 LDAP의 기능 모델에 정의됩니다. 세 부분이 포함되어 있습니다
심문 작업 : 디렉토리 쿼리 및 데이터를 얻을 수 있습니다. 검색 작동 및 비교 작업이 포함되어 있습니다.
업데이트 작업 : 추가 (추가), 삭제 (삭제), 이름 바꾸기 (이름 바꾸기) 및 변경 디렉토리 (Modify)가 허용됩니다.
인증 및 제어 작업을 통해 고객은 디렉토리에서 자신을 인식하고 세션의 특성을 제어 할 수 있습니다.
4 LDAP 和 AD 的关系
Active Directory는 LDAP 프로토콜을 기반으로 한 솔루션 세트 (LDAP 서버 + 응용 프로그램)이며 LDAP는 AD와 상호 작용하는 프로토콜 중 하나입니다.Active Directory는 "What"에 "무엇"을 "액세스하는"세분화 된 권한 통제를 해결합니다. AD는 또한 계정 잠금, 비밀번호 만료 등과 같은 LDAP V3 사양 위에 사용자 정의 확장 기능이 있습니다.
5 利用 LDAP 收集域信息
일반적으로 모든 인증 된 사용자는 LDAP를 통해 많은 양의 흥미로운 도메인 정보를 얻을 수 있습니다. 따라서 정보 수집 단계에서 LDAP를 사용하여 도메인 환경에 대한 관련 정보를 쿼리하고 구성 할 수 있습니다.5.1 相关工具
ADFIND 명령에 따라 도메인의 자세한 정보를 얻을 수 있습니다. 참조 : http://www.joeware.net/freetools/tools/adfind/usage.htmAdexplorer는 설치가 필요하지 않은 독립형 실행 가능한 소프트웨어입니다. 도메인 정보를 쿼리하는 것 외에도 Adexplorer는 로컬로 저장할 수 있으며 Adexplorer를 사용하여 열 수있는 스냅 샷을 찍을 수 있습니다.
ldapsearch
LDAPDOMAINDUMP는 Python 용으로 개발되었으며 LDAP를 통해 데이터를 수집하고 파싱하여 인간 읽을 수있는 HTML 형식 및 기계 읽을 수있는 JSON 및 CSV/TSV 형식으로 출력 할 수 있습니다.
1
2
3
4
5
Domain_groups: Groups3360 그룹 목록 대상 도메인
Domain_users: 대상 도메인의 사용자 목록
Domain_computers: 대상 도메인의 컴퓨터 계정 목록
Domain_policy: 비밀번호가 필요한지 여부 등과 같은 도메인 정책
Domain_trusts: 수신 및 나가는 도메인 속성 및 신뢰할 수 있는지 여부
5.2 获取域信息实例
환경 :1
2
3
도메인 제어 :192.168.66.26 (dc.company.com)
도메인 사용자 자격 증명 : Pentest \ win7user:123456ab
도구 adfind.exe를 사용하십시오
다음은 Adfind의 몇 가지 사용 예를 나열하여 주로 도구 매개 변수를 소개합니다. 우리는 우리의 요구에 따라 명령을 수정하고 우리가 우려하는 모든 정보를 쿼리 할 수 있습니다. 예를 들어, 제어 된 자격 증명이 속한 그룹을 쿼리하고, 특정 그룹의 구성원을 쿼리하고, 컴퓨터 이름 등에 따라 사용자가 허가 할 수있는 컴퓨터를 추론합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
스물 하나
스물 두 번째
스물 셋
24
25
26
27
28
29
#도메인의 모든 사용자의 자세한 정보를 쿼리
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc U:*
#도메인의 특정 사용자 세부 사항
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc U:test
#도메인의 특정 사용자 별 정보 (메일)
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc U:Test 메일
#도메인의 모든 사용자 DN 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc U:* -dn
#도메인의 사용자 수를 쿼리하십시오
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc U:* -C
#도메인의 모든 그룹의 세부 사항을 정기하십시오
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc G:*
#도메인 내 그룹 이름에 "admin"을 포함하는 모든 그룹 세부 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc G:* admin* #Query 도메인의 모든 ou 세부 사항
Adfind -H 10.1.26.128 -U Company \ Test -UP Geekby -Sc O:* #도메인의 모든 컴퓨터의 자세한 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc C:* #도메인의 모든 사이트의 세부 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc Site:* #Query 도메인의 모든 서브넷의 자세한 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc Subnet:* #Query 도메인의 신뢰 관계
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc TrustDMP #Query 도메인에서 SPN의 자세한 정보
Adfind -H 10.1.26.128 -U Company \ Test -up Geekby -Sc SPN:*
#장애가있는 사용자를위한 검색 DN
adfind -h 10.1.26.128 -u 회사 \ test -up geekby -b dc=company, dc=com -f userAccountControl3:=514 -dn