Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket
Поймите, как злоумышленники повторно используют хеши NTLM и билеты Kerberos для горизонтального перемещения без знания паролей в открытом виде, и изучите средства защиты от таких атак.
«Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Перемещение внутри сети: распространение по сети
Перемещение внутри сети — это методы, с помощью которых атакующие постепенно перемещаются по сети после закрепления, стремясь получить доступ к более ценным целям, таким как контроллеры домена, базы данных и рабочие станции администраторов. В отличие от первоначального доступа, который обычно направлен на одну конечную точку, перемещение внутри сети использует отношения доверия между системами: механизмы аутентификации, общие учётные данные, сетевое подключение и административные инструменты, на которые легитимные пользователи ежедневно опираются. Эффективное перемещение внутри сети позволяет одной скомпрометированной учётной записи с низкими привилегиями в итоге получить доступ ко всем системам среды.
Как работает аутентификация Windows: NTLM
NTLM (диспетчер локальной сети NT) — устаревший протокол аутентификации Windows, основанный на механизме запроса и ответа. Когда клиент проходит аутентификацию на сервере, сервер отправляет случайный запрос, а клиент отвечает, хэшируя этот запрос с хэшем NT пользователя (фиксированным хэшем, полученным из пароля). Критический недостаток конструкции заключается в том, что для аутентификации достаточно самого хэша NT, а не пароля. Хэш NT хранится в базе данных диспетчера учётных записей безопасности (SAM) на рабочих станциях и в NTDS.DIT на контроллерах домена. Если атакующий получает хэш NT, он может пройти аутентификацию от имени пользователя, не зная его пароль.
# NT hash example: MD4 of Unicode password
# Password 'Password123' -> NT hash: 58a478135a93ac3bf058a5ea0e8fdb71
# This hash alone is sufficient for NTLM authentication
# An attacker with the hash can authenticate to any service accepting NTLMPass-the-Hash (PtH): аутентификация без пароля
Pass-the-Hash (PtH) — это метод атаки, при котором атакующий использует захваченный хэш NTLM для аутентификации в других системах, не зная исходного пароля в открытом виде. После взлома одной системы и извлечения хэшей из памяти (LSASS) или базы данных SAM атакующий подставляет украденный хэш вместо собственных данных учётной записи в запросах аутентификации. Это особенно опасно, поскольку общие пароли локальных администраторов (распространённые в средах без LAPS) позволяют с помощью одного хэша скомпрометировать сотни или тысячи компьютеров. Такие инструменты, как Mimikatz, psexec.py из Impacket и CrackMapExec, автоматизируют атаки PtH.
# PtH attack using Impacket's psexec (attacker tool - for understanding defenses)
# psexec.py -hashes :58a478135a93ac3bf058a5ea0e8fdb71 administrator@192.168.1.100
# This grants an interactive shell on 192.168.1.100 WITHOUT knowing the password
# Using only the NTLM hash extracted from a previously compromised systemЗащита от Pass-the-Hash
Несколько мер снижают эффективность атак PtH: Local Administrator Password Solution (LAPS) — инструмент Microsoft, который назначает каждой машине уникальные регулярно меняющиеся пароли локального администратора, поэтому украденный с одной машины хэш открывает доступ только к ней; Credential Guard (Windows 10/11) — использует безопасность на основе виртуализации, чтобы изолировать LSASS в защищённой области, откуда невозможно извлечь хэши; отключение NTLM в пользу Kerberos, где это возможно; ограничение административного доступа с помощью рабочих станций привилегированного доступа (PAW) и многоуровневых моделей администрирования; а также группа безопасности Protected Users в Active Directory, запрещающая кэширование хэшей для учётных записей участников.
# Check if LAPS is deployed on a domain
# Look for the ms-Mcs-AdmPwd attribute on computer objects
Get-ADComputer -Filter * -Properties ms-Mcs-AdmPwd |
Where {$_.'ms-Mcs-AdmPwd' -ne $null} |
Select-Object Name, 'ms-Mcs-AdmPwd'Обзор Kerberos: как работают билеты
Kerberos — протокол аутентификации по умолчанию в средах Active Directory, который не передаёт пароли или хэши по сети, а использует зашифрованные билеты. Процесс выглядит так: (1) клиент проходит аутентификацию в центре распределения ключей (KDC) — роли, выполняемой контроллером домена, — и получает билет на выдачу билетов (TGT), зашифрованный хэшем учётной записи KRBTGT; (2) когда клиенту требуется доступ к службе, он предъявляет TGT и получает билет службы (TGS/ST), зашифрованный ключом целевой службы; (3) клиент предъявляет билет службы целевой системе, которая проверяет его без обращения к KDC. Срок действия билетов по умолчанию составляет 10 часов.
# View current Kerberos tickets on Windows
klist
# Output shows:
# Ticket cache: API:...
# Server: krbtgt/DOMAIN.COM
# Encryption type: AES-256
# Expiration date: <timestamp>Pass-the-Ticket (PtT): кража билетов Kerberos
Pass-the-Ticket (PtT) — аналог Pass-the-Hash для Kerberos: атакующий извлекает действительный билет Kerberos из памяти скомпрометированной системы и импортирует его в собственный сеанс, чтобы пройти аутентификацию от имени владельца билета. Билеты Kerberos хранятся в памяти Windows и могут быть извлечены с помощью команд kerberos::list и kerberos::ptt из Mimikatz. Украденные TGT наиболее ценны, поскольку их можно использовать для запроса билетов службы для любой службы, к которой имеет доступ владелец билета. Украденные билеты службы (TGS) более ограничены: они предоставляют доступ только к конкретной службе, для которой были выданы.
# PtT attack: export and import tickets with Mimikatz
# On compromised system:
# mimikatz# kerberos::list /export <- dumps all tickets to .kirbi files
# On attacker system:
# mimikatz# kerberos::ptt ticket.kirbi <- injects stolen ticket
# Now authenticated as the ticket's owner for its serviceOver-Pass-the-Hash: преобразование хэша в билет
Over-Pass-the-Hash (oPtH), также называемый Pass-the-Key, устраняет разрыв между кражей хэша NT и получением билета Kerberos. Атакующий использует украденный хэш NT или ключ AES, чтобы запросить TGT Kerberos у контроллера домена, даже не зная пароль в открытом виде. Это превращает украденный хэш в полноценный TGT Kerberos и предоставляет все возможности атак PtT. Этот метод особенно ценен потому, что многие организации отключили NTLM в пользу Kerberos: oPtH позволяет атакам на основе хэшей работать в средах, где используется только Kerberos. Mimikatz реализует этот метод как sekurlsa::pth.
Протоколы перемещения внутри сети: SMB, WMI и RDP
Атакующие используют несколько протоколов для перемещения внутри сети с украденными учётными данными или билетами: SMB (блок сообщений сервера) позволяет удалённо выполнять команды через PsExec, получать удалённый доступ к файлам и создавать службы; WMI (инструментарий управления Windows) позволяет удалённо выполнять команды и широко используется как администраторами, так и атакующими благодаря повсеместному распространению и пробелам в журналировании; RDP (протокол удалённого рабочего стола) предоставляет интерактивный сеанс рабочего стола; а WinRM/удалённое управление PowerShell позволяет выполнять команды PowerShell на удалённых системах. Специалистам по защите следует определить, какие системы легитимно используют эти протоколы, и реагировать на аномальные модели их применения.
# Detection: look for unusual SMB authentication from workstations
# Windows Security Event ID 4624: successful logon
# Windows Security Event ID 4648: explicit credential use
# Splunk query:
# index=windows EventCode=4624 LogonType=3 WorkstationName!='DOMAIN\server*'
# NOT [whitelist of servers]
# | stats count by Computer, AccountName, IpAddressBloodHound: визуализация путей атаки
BloodHound — инструмент с открытым исходным кодом, который используют и специалисты по наступательной безопасности, и специалисты по защите для визуализации путей повышения привилегий и перемещения внутри сети в Active Directory. Он собирает данные об отношениях (кто входит в какую группу, у кого есть права администратора на конкретной машине, для каких учётных записей включено делегирование) и отображает их в виде графа, где узлами являются пользователи, машины и группы, а рёбрами — разрешения. Запрос BloodHound 'Find Shortest Paths to Domain Admins' может показать атакующим и специалистам по защите точную последовательность взломов, которая способна привести к полному контролю над доменом. Специалисты по защите используют BloodHound, чтобы устранить ненужные пути повышения привилегий до того, как ими воспользуются атакующие.
# Run BloodHound collector (SharpHound) on domain
# SharpHound.exe -c All --outputdirectory C:\Temp
# Outputs JSON files imported into BloodHound Neo4j database
# Key queries for defenders:
# - Find all Domain Admins
# - Find Shortest Paths to Domain Admins
# - Find Principals with DCSync RightsОбнаружение перемещения внутри сети
Для обнаружения перемещения внутри сети необходимо сопоставлять события в нескольких системах. Ключевые сигналы обнаружения: Windows Event ID 4648 (вход с явными учётными данными — распространённый признак PtH/PtT); Event ID 4769 (запрос билета службы Kerberos — аномалия, если запрашиваются билеты для редко используемых служб); Event ID 7045/4697 (установлена новая служба — распространённый признак перемещения внутри сети на основе PsExec); необычное использование административных инструментов с рабочих станций, не являющихся административными (wmic.exe, psexec.exe); а также аномалии аутентификации SMB, когда рабочие станции проходят аутентификацию на других рабочих станциях (обычный трафик идёт от рабочих станций к серверам, а не между равноправными узлами). Платформы EDR с поведенческим обнаружением выявляют эти закономерности по всей сети.
Многоуровневая модель администрирования
Многоуровневая модель администрирования (рекомендуемая Microsoft конструкция Active Directory) предотвращает кражу учётных данных на одном уровне, которая могла бы скомпрометировать уровни выше: уровень 0 (плоскость управления идентификацией — контроллеры домена, Azure AD) — администрировать эти системы могут только учётные записи администраторов уровня 0, и эти учётные записи никогда не входят в системы уровней 1 или 2; уровень 1 (серверы и облачные службы) — выделенные учётные записи администраторов уровня 1; уровень 2 (рабочие станции и устройства) — учётные записи службы поддержки и обычных администраторов. Изоляция учётных данных по уровням не позволяет использовать скомпрометированную учётную запись администратора рабочей станции для атаки на контроллеры домена. Это непосредственно противодействует перемещению внутри сети с использованием PtH и PtT.
Быстрая проверка
Проверьте своё понимание концепций CompTIA Security+ (SY0-701) из этого урока.
Повторение урока
В этом уроке Вы узнали: Pass-the-Hash использует особенности NTLM, при которых хеш выступает в роли учётных данных — одного NT-хеша достаточно для аутентификации без пароля; главным образом этому противодействуют LAPS и Credential Guard. Pass-the-Ticket крадёт действительные билеты Kerberos из памяти, чтобы аутентифицироваться от имени другого пользователя; особенно опасны украденные TGT, поскольку с их помощью можно создавать сервисные билеты для любой службы. Кроме того, модель многоуровневого администрирования не позволяет краже учётных данных на одном уровне обеспечить боковое перемещение на уровни с более высокими привилегиями. Далее Вы изучите атаки Kerberoasting и Golden Ticket, нацеленные на реализацию Kerberos в Active Directory.
Часто задаваемые вопросы
Урок «Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket» бесплатный?
Да — полный текст урока «Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket»?
Поймите, как злоумышленники повторно используют хеши NTLM и билеты Kerberos для горизонтального перемещения без знания паролей в открытом виде, и изучите средства защиты от таких атак. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Жизненный цикл APT: от первоначального доступа до закрепления
- Горизонтальное перемещение: Pass-the-Hash и Pass-the-Ticket
- Kerberoasting и атаки Golden Ticket
- Фреймворк MITRE ATT&CK для обнаружения и реагирования