Атака ASREPROast ищет пользователей с атрибутом без предварительной аутентификации Kerberos (DONT_REQ_PREAUTH). Это означает, что любой может отправить запрос AS_REQ на контроллер домена от имени любого из этих пользователей и получить сообщение AS_REP. Этот тип сообщения содержит фрагмент данных, зашифрованных исходным ключом пользователя, полученным из его пароля. Затем, используя это сообщение, пароль пользователя может быть взломан в автономном режиме.
Кроме того, для выполнения этой атаки не требуется учетная запись домена , только подключение к контроллеру домена. Однако с доменной учетной записью можно использовать запрос LDAP для извлечения пользователей без предварительной аутентификации Kerberos в домене. В противном случае имена пользователей должны быть подобраны.
| Объект атаки | Active Directory |
| Приложения | Rubeus, Impacket |
| Тактика ATT&CK | Credential Access |
| Техника ATT&CK | T1558.004 |
Входные данные:
| Виртуальные машины | Kali linux (192.168.0.114) Windows 10 (192.168.0.111) Windows Server 2019 (192.168.0.113) |
| Учетные записи | usertest — пользователь без административных привилегий adtester — пользователь без административных привилегий, с включенным параметром — «do not require kerberos preauthentication» |
| Настройки журналирования | Расширенные настройки аудита windows Sysmon Wireshark |

Данная статья носит исключительно ознакомительный характер и не является руководством к действию.
Этапы атаки
Поиск учетной записи с включенным «not require kerberos preauthentication» и ответ AS_REP
# Impacket Linux
impacket-GetNPUsers home.local/usertest -request -dc-ip 192.168.0.113

#Rubeus Windows
Rubeus.exe asreproast

Инструменты Kerberoasting обычно запрашивают при выполнении атаки RC4 encryption — это связано с тем, что он слабее и его легче взломать в автономном режиме с помощью таких инструментов, как Hashcat, чем другие алгоритмы шифрования, такие как AES-128 и AES-256. Хэши RC4 (тип 23) , а AES-256 (тип 18). Примеры $krb5tgs$23$* и $krb5tgs$18$*.
Подбор пароля
# Windows
hashcat64.exe -m 18200 c:Hashes.txt rockyou.txt
# Linux
john --wordlist rockyou.txt Hashes.txt
# Linux
hashcat -m 18200 -a 3 Hashes.txt rockyou.txt
Обнаружение
| Коммуникация | Источник | Команда | Место | Информация |
| Windows 10 (192.168.0.111) -> Windows Server 2019 (192.168.0.113) | Source host Windows 10 (192.168.0.111) | Rubeus.exe asreproast | Event log — Security | Event ID: 4688 New Process Name: C:\test\Rubeus.exe Process Command line: Rubeus.exe asreproast |
| Event log — Sysmon | Event ID: 1 Image:C:\test\Rubeus.exe OriginalFileName:Rubeus.exe CommandLine:Rubeus.exe asreproast | |||
| Prefetcher | Расположение C:\Windows\Prefetch\RUBEUS.EXE-D0DC83CC.pf | |||
| Destination host Windows Server 2019 (192.168.0.113) | Rubeus.exe asreproast | Event log — Security | Event ID: 4738 User Account Control: ‘Don’t Require Preauth’ — Enable | |
| Event ID: 4768 Ticket Encryption Type: 0x17 Pre-Authentication Type: 0 | ||||
| Network | Запрос 15 объектов LDAP: subschemaSubentry dsServiceName namingContexts defaultNamingContext schemaNamingContext configurationNamingContext rootDomainNamingContext supportedControl supportedLDAPVersion supportedLDAPPolicies supportedSASLMechanisms dnsHostName ldapServiceName serverName supportedCapabilities | |||
| Kali linux (192.168.0.114) -> Windows Server 2019 (192.168.0.113) | Source host Kali linux (192.168.0.114) | impacket-GetUserSPNs -request -dc-ip 192.168.0.113 home.local/usertest | Linux command history | Команда: cat .zsh_history |
| Destination host Windows Server 2019 (192.168.0.113) | impacket-GetUserSPNs -request -dc-ip 192.168.0.113 home.local/usertest | Event log — Security | Event ID: 4738 User Account Control: ‘Don’t Require Preauth’ — Enable | |
| Event ID: 4768 Ticket Encryption Type: 0x17 Pre-Authentication Type: 0 | ||||
| Network | Поисковый LDAP запрос wholeSubtree с параметрами UserAccountControl=4194304 (значение DONT_REQ_PREAUTH в десятичном формате) и objectCategory=computer |
Критерии для правил корреляции
Событие Event ID 4738:
Обнаруживать User Account Control, где будет активирован атрибут пользователя без предварительной аутентификации Kerberos (Don’t Require Preauth’ -Enabled).
# PowerShell
Get-WinEvent -FilterHashtable @{Logname='Security';ID=4738} | where {$_.Message -like "*Don't Require Preauth' -Enabled*"}

Событие Event ID 4768:
- Обнаруживать Ticket Encryption Type: 0x17 (шифрование RC4), в основном используется значение Ticket Encryption Type: 0x12 (AES). События с Ticket Encryption Type: 0x17 будут редкими, но могут быть ложные срабатывания
- Обнаруживать параметр входа без предварительной аутентификации (Pre-Authentication Type: 0)
# PowerShell
Get-WinEvent -FilterHashtable @{Logname='Security';ID=4768} | where {$_.Message -Like "*0x17*" -and $_.Message -like "*Pre-Authentication Type: 0*"}

Сетевой трафик:


Противодействие
1) Если есть возможность не использовать «Do not require Kerberos preauthentication», то необходимо отключить параметр на всех учетных записях в Active Directory.
# PowerShell — поиск учетных записей с включенным параметром «Do not require Kerberos preauthentication»
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true}

2) Если есть необходимость использовать учетные записи в Active Directory с включенным параметром «Do not require Kerberos preauthentication», то нужно использовать пароль больше 25 символов.
3) Если отказаться от использования учетных записей с включенным параметром «Do not require Kerberos preauthentication» нет возможности, то для обнаружения нелегитимной активности нужно создать учетную запись с включенным параметром, которая не будет использоваться в организации. Ни один пользователь никогда не должен использовать эту учетную запись. Учетная запись для злоумышленника должна выглядит как настоящая, можно скопировать или создать по аналогии с существующими, например, добавить в привилегированные группы, обязательно нужно убиться, что установлен сильный пароль, больше 25 символов. Дополнительно, обязательно обновляйте время последнего входа в систему(LastLogonTimeStamp), чтобы учетная запись не была заброшенной.
Реагирование
При обнаружении AS-REP Roasting следует предпринять следующие действия:
- Активируйте процесс реагирования на инциденты и предупредите группу реагирования на инциденты
- Поместите в карантин любые затронутые компьютеры (например, хост, на который заходили под скомпрометированной учетной записью ) для проведения анализа, устранения и восстановления.
- Сбросьте пароль для учетной записи пользователя, у которой включен параметр «Do not require Kerberos preauthentication».
Источники:
https://blog.netwrix.com/2022/11/03/cracking_ad_password_with_as_rep_roasting/
Файлы логов:
- EnableKPre+impacket+rubeus.evtx — события Windows Server 2019 (192.168.0.113)
- Impacker.pcap и rubeus.pcap — сетевой трафик Windows Server 2019 (192.168.0.113)
Запуск программ:
- Активация параметра «Do not require Kerberos preauthentication» в 23.04.2023 в 11:08:52 от имени УЗ администратора домена
- 23.04.2023 в 11:08:59 запуск программы с аргументами Rubeus.exe asreproast
- 23.04.2023 в 11:09:05 запуск программы с аргументами impacket-GetUserSPNs -request -dc-ip 192.168.0.113 home.local/usertest



