mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
111 lines
8.6 KiB
Markdown
111 lines
8.6 KiB
Markdown
# Linux Active Directory
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
Linux-машина також може бути присутня в середовищі Active Directory.
|
||
|
||
Linux-машина в AD може **зберігати різні CCACHE квитки всередині файлів. Ці квитки можуть бути використані та зловживані так само, як і будь-який інший kerberos квиток**. Щоб прочитати ці квитки, вам потрібно бути власником квитка або **root** на машині.
|
||
|
||
## Enumeration
|
||
|
||
### AD enumeration from linux
|
||
|
||
Якщо у вас є доступ до AD в linux (або bash в Windows), ви можете спробувати [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) для перерахунку AD.
|
||
|
||
Ви також можете перевірити наступну сторінку, щоб дізнатися **інші способи перерахунку AD з linux**:
|
||
|
||
{{#ref}}
|
||
../../network-services-pentesting/pentesting-ldap.md
|
||
{{#endref}}
|
||
|
||
### FreeIPA
|
||
|
||
FreeIPA є відкритим **альтернативою** Microsoft Windows **Active Directory**, головним чином для **Unix** середовищ. Він поєднує в собі повний **LDAP каталог** з MIT **Kerberos** Центром Розподілу Ключів для управління, подібним до Active Directory. Використовуючи систему сертифікатів Dogtag для управління CA та RA сертифікатами, він підтримує **багатофакторну** аутентифікацію, включаючи смарт-карти. SSSD інтегровано для процесів аутентифікації Unix. Дізнайтеся більше про це на:
|
||
|
||
{{#ref}}
|
||
../freeipa-pentesting.md
|
||
{{#endref}}
|
||
|
||
## Playing with tickets
|
||
|
||
### Pass The Ticket
|
||
|
||
На цій сторінці ви знайдете різні місця, де ви могли б **знайти kerberos квитки всередині linux хоста**, на наступній сторінці ви можете дізнатися, як перетворити ці формати CCache квитків у Kirbi (формат, який вам потрібно використовувати в Windows) і також як виконати атаку PTT:
|
||
|
||
{{#ref}}
|
||
../../windows-hardening/active-directory-methodology/pass-the-ticket.md
|
||
{{#endref}}
|
||
|
||
### CCACHE ticket reuse from /tmp
|
||
|
||
CCACHE файли є бінарними форматами для **зберігання Kerberos облікових даних**, зазвичай зберігаються з правами 600 у `/tmp`. Ці файли можна ідентифікувати за їх **форматом імені, `krb5cc_%{uid}`,** що відповідає UID користувача. Для перевірки квитка аутентифікації, **змінна середовища `KRB5CCNAME`** повинна бути встановлена на шлях до бажаного файлу квитка, що дозволяє його повторне використання.
|
||
|
||
Перерахуйте поточний квиток, що використовується для аутентифікації, за допомогою `env | grep KRB5CCNAME`. Формат є портативним, і квиток може бути **повторно використаний, встановивши змінну середовища** за допомогою `export KRB5CCNAME=/tmp/ticket.ccache`. Формат імені квитка Kerberos є `krb5cc_%{uid}`, де uid - це UID користувача.
|
||
```bash
|
||
# Find tickets
|
||
ls /tmp/ | grep krb5cc
|
||
krb5cc_1000
|
||
|
||
# Prepare to use it
|
||
export KRB5CCNAME=/tmp/krb5cc_1000
|
||
```
|
||
### CCACHE повторне використання квитків з keyring
|
||
|
||
**Квитки Kerberos, збережені в пам'яті процесу, можуть бути витягнуті**, особливо коли захист ptrace на машині вимкнено (`/proc/sys/kernel/yama/ptrace_scope`). Корисний інструмент для цієї мети можна знайти за адресою [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), який полегшує витяг, інжектуючи в сесії та скидаючи квитки в `/tmp`.
|
||
|
||
Щоб налаштувати та використовувати цей інструмент, слід виконати наведені нижче кроки:
|
||
```bash
|
||
git clone https://github.com/TarlogicSecurity/tickey
|
||
cd tickey/tickey
|
||
make CONF=Release
|
||
/tmp/tickey -i
|
||
```
|
||
Ця процедура спробує інжектувати в різні сесії, вказуючи на успіх, зберігаючи витягнуті квитки в `/tmp` з іменуванням `__krb_UID.ccache`.
|
||
|
||
### Повторне використання квитків CCACHE з SSSD KCM
|
||
|
||
SSSD підтримує копію бази даних за шляхом `/var/lib/sss/secrets/secrets.ldb`. Відповідний ключ зберігається як прихований файл за шляхом `/var/lib/sss/secrets/.secrets.mkey`. За замовчуванням, ключ доступний для читання лише якщо у вас є **root** права.
|
||
|
||
Виклик **`SSSDKCMExtractor`** з параметрами --database та --key розпарсить базу даних та **дешифрує секрети**.
|
||
```bash
|
||
git clone https://github.com/fireeye/SSSDKCMExtractor
|
||
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey
|
||
```
|
||
**Кеш облікових даних Kerberos blob можна перетворити на використовуваний файл Kerberos CCache**, який можна передати до Mimikatz/Rubeus.
|
||
|
||
### Повторне використання квитка CCACHE з keytab
|
||
```bash
|
||
git clone https://github.com/its-a-feature/KeytabParser
|
||
python KeytabParser.py /etc/krb5.keytab
|
||
klist -k /etc/krb5.keytab
|
||
```
|
||
### Витягти облікові записи з /etc/krb5.keytab
|
||
|
||
Ключі облікових записів служб, які є необхідними для служб, що працюють з привілеями root, надійно зберігаються у файлах **`/etc/krb5.keytab`**. Ці ключі, подібно до паролів для служб, вимагають суворої конфіденційності.
|
||
|
||
Щоб перевірити вміст файлу keytab, можна використовувати **`klist`**. Інструмент призначений для відображення деталей ключа, включаючи **NT Hash** для автентифікації користувачів, особливо коли тип ключа визначено як 23.
|
||
```bash
|
||
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
|
||
# Output includes service principal details and the NT Hash
|
||
```
|
||
Для користувачів Linux, **`KeyTabExtract`** пропонує функціональність для витягування хешу RC4 HMAC, який можна використовувати для повторного використання хешу NTLM.
|
||
```bash
|
||
python3 keytabextract.py krb5.keytab
|
||
# Expected output varies based on hash availability
|
||
```
|
||
На macOS **`bifrost`** слугує інструментом для аналізу файлів keytab.
|
||
```bash
|
||
./bifrost -action dump -source keytab -path /path/to/your/file
|
||
```
|
||
Використовуючи витягнуту інформацію про облікові записи та хеші, можна встановити з'єднання з серверами за допомогою інструментів, таких як **`crackmapexec`**.
|
||
```bash
|
||
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
|
||
```
|
||
## Посилання
|
||
|
||
- [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/)
|
||
- [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
|
||
- [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|